![]() |
Переделать TLabel в URLСоздано Срд-09-Апр-2008 in 22:23 category Delphi - СсылкаПриложение содержит ссылку, которая позволяет запускать Браузер и сразу перейти по указанному в ссылке адресу. Процесс создания URL заключается в переделке компоненты TLabel в URL.Следующие 3 шага показывают как переделать TLabel в URL. Шаг 1 Установите в свойствах шрифта подчёркивание и цвет ссылки. Шаг 2 Установите свойства курсора. Когда мышка попадает на URL, то курсор должен превращаться в ручку. Шаг 3 Записываем событие OnClick для ссылки. Когда пользователь нажимает на ссылку, то запускается браузер, который автоматически переходит на заданный адрес. Однако этого мало! Нужно будет добавить в приложение ещё одну строчку Та самая строчка: ShellExecute(0,'open',pChar(URL),NIL,NIL,SW_SHOWNORMAL); Пример приложения : unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ShellAPI; type TForm1 = class(TForm) URLLabel: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); procedure URLLabelClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Close; end; procedure TForm1.URLLabelClick(Sender: TObject); Const URL : String = 'http://blogs.cetki.com/Arch1S'; begin ShellExecute(0,'open',pChar(URL),NIL,NIL,SW_SHOWNORMAL); end; end. Преобразование BMP в JPEGСоздано Пнд-07-Апр-2008 in 17:17 category Delphi - СсылкаДопустим, Image1 - компонент TImage, содержащий растровое изображение. Используйте следующий фрагмент кода для конвертации вашего изображения в JPEG-файл:var MyJpeg: TJpegImage; Image1: TImage; begin Image1:= TImage.Create; MyJpeg:= TJpegImage.Create; Image1.LoadFromFile('TestImage.BMP'); MyJpeg.Assign(Image1.Picture.Bitmap); MyJpeg.SaveToFile('MyJPEGImage.JPG'); end; Прозрачность окнаСоздано Чтв-03-Апр-2008 in 15:51 category Delphi - Ссылкаproperty AlphaBlend:
Boolean; property AlphaBlendValue:
Byte; Свойство AlphaBlend указывает, следует ли (значение True) выводить форму в полупрозрачном режиме, а свойство AlphaBlendValue задает степень ее непрозрачности целочисленным значением от 0 (полностью прозрачна) до 255 (полностью непрозрачна). Атрибуты прозрачности устанавливаются не только для окна, но и для всех элементов управления, которые в нем расположены. Причем при значениях непрозрачности, больших нуля, сохраняется возможность взаимодействия с окном и визуальными компонентами в полном объеме, даже когда окна не видно на экране (например, когда свойство AlphaBlendValue имеет значение 1). Полупрозрачные окна могут быть применены для организации панелей инструментов, сквозь которые видно редактируемые документы. Также предусмотрена возможность полной прозрачности точек формы, имеющих один цвет, задаваемый свойством TransparentColorValue: property TransparentColorValue: TColor; Все точки формы, которые имеют заданный этим свойством цвет, могут быть полностью прозрачны, причем не только визуально, но также и для событий, связанных с манипуляциями мышью. Для включения такого поведения окна предназначено свойство TransparentColor: property TransparentColor: Boolean; Показано окно, в котором находится визуальный компонент Shape, отображающий эллипс белого цвета. Белый цвет также установлен в качестве значения свойства TransparentColorValue формы, а свойству TransparentColor присвоено значение True. При выводе формы над приложением Microsoft Word пользователь имеет возможность видеть часть окна редактора сквозь область компонента, имеющую белый цвет. Также при щелчке мышью в эту область, активным станет приложение MS Word. Заметим, что подпись формы «Form1», выведенная белым цветом, также является прозрачной. Возможность использования «прозрачного цвета» для формы позволяет легко создавать окна приложений непрямоугольной формы. Для этого следует присвоить одинаковые цвета форме (с помощью свойства Color) и свойству TransparentColorValue, расположив при этом на форме изображение, в котором не используется такой цвет. В результате область, занятая изображением, будет выводиться на экран, а остальная часть окна будет скрыта. При изменениях в изображении, происходящих во время выполнения программы, соответствующим образом будет изменяться форма окна. И, наконец, отметим, что полупрозрачность формы и полная прозрачность ее цвета не исключают друг друга, что позволяет реализовывать различные графические эффекты, например, плавную потерю видимости окна, имеющего непрямоугольную форму. Простая база данных (запись в файл)Создано Пнд-25-Фев-2008 in 14:45 category Delphi - Ссылкаunit pogoda_; interface uses Windows, Messages,
SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; // дата Edit2: TEdit; // температура Button1: TButton; // кнопка Добавить Label1: TLabe1; Label2: TLabe1; procedure FormActivate(Sender:
TObject); procedure ButtonlClick(Sender:
TObject); procedure FormClose(Sender:
TObject; var Action:
TCloseAction); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} const DBNAME = 'a:\pogoda. db'; var db: TextFile;
// файл — база данных procedure TForm1.FormActivate(Sender: TObject); begin AssignFile(db,
DBNAME);. {$I-} Append(db);
if IOResult = 0 then begin Edit1.Text := DateToStr(Date); // получить текущую дату Edit2.SetFocus; // курсор в поле Edit2 end else begin Rewrite(db);
if IOResult <> 0 then begin // сделать недоступными поля ввода // и командную кнопку Edit1.Enabled := False; Edit2.Enabled := False; Buttonl.Enabled
:= False; ShowMessage('Ошибка
создания '+DBNAME); end; end; end; // щелчок на кнопке Добавить procedure TForml.Button1Click(Sender: TObject); begin if (Length(edit1.text)=0)
or (Length(edit2.text)=0) then ShowMessage('Ошибка ввода данных.' +#13+'Bce поля должны быть заполнены.') else writeln(db, editl.text,' ',edit2.text); end; // Событие OnClose возникает при
закрытии формы procedure TForm1.FormClose(Sender: TObject; var Action:
TCloseAction); begin CloseFile(db);
// закрыть файл БД end; end. Бинарный поиск в массивеСоздано Вск-17-Фев-2008 in 15:21 category Delphi - Ссылкаunit b_found_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Button1: TButton; Label3: TLabel; CheckBox1: TCheckBox; StringGrid1: TStringGrid; Editl: TEdit; procedure ButtonlClick(Sender: TObject); procedure StringGridlKeyPress(Sender: TObject; var Key: Char); procedure EditlKeyPress(Sender: TObject; var Key: Char); private {Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} { Бинарным поиск в массиве } procedure TForm1.Button1Click(Sender: TObject); const SIZE=10; var a:array[1..SIZE] of integer; { массив ) obr:integer; { образец для поиска} verh:integer; { верхняя граница поиска } niz: integer; { нижняя граница поиска } sred:integer; { номер среднего элемента ) found:boolean; { TRUE — совпадение образца с элементом массива } n:integer; / число сравнений с образцом } i:integer; begin // ввод массива и образца for i:=l to SIZE do a[i]:=StrToInt(StringGridl.Cells[i-l,0] ) ; obr := StrToInt(Editl.text); // поиск verh:=1; niz:=SIZE; n:=0; found:=FALSE; labels.caption:=''; if CheckBoxl.State = cbChecked then Labels.caption: ='verh'+#9+'niz'#9'sred' #13; // бинарный поиск в массиве repeat sred:=Trunc ( (niz-verh) /2)+verh; if CheckBox1.Checked then Labels.caption:=label3.caption +IntToStr(yerh) + #9 +IntToStr(niz) + #9 +IntToStr(sred) + #13; n:=n+1; if a[sred] = obr then found:=TRUE else if obr < a[sred] then niz:=sred-1 else verh:=sred+1; until (verh > niz) or found; if found then labels.caption:=label3.caption +'Совпадение с элементом номер ' + IntToStr(sred)+#13 + 'Сравнений ' + IntToStr(n) else label3.caption:=label3.caption +'Образец в массиве не найден.'; end; // нажатие клавиши в ячейке StringGrid procedure TForml.StringGridlKeyPress(Sender: TObject; var Key: Char), begin if Key = #13 then // нажата клавиша <Enter> if StringGrid1.Col < StringGridl.ColCount - 1 then // курсор в следующую ячейку таблицы StringGridl.Col := StringGrid1.Col +1 else // курсор в поле Editl, в поле ввода образца Editl.SetFocus; end; // нажатие клавиши в поле Editl procedure TForm1.Edit1KeyPress(Sender: TObject;. var Key: Char); begin if Key = #13 // нажата клавиша <Enter> then // сделать активной командную кнопку Button1.SetFocus; end; end.
|
![]() |