Для полного счастья :-), чтобы закончить предварительный разговор о создании собственных компонентов, начатый в уроках 9 и 10, мне не хватает только одного - рассказать о том, как создать компонент гиперссылку. Вообще-то, темами последних уроков я постепенно подводил моего читателя к теме создания формы “О программе”, разговор о которой уже близок, а затем и компонента на ее основе.
Поскольку, на предыдущих уроках, я подробно рассказал и показал, как создаются модули компонентов, как создаются пакеты, компилируются и инсталлируются, то мне ничего не остается сделать, как привести в этом уроке исходный текст модуля компонента гиперссылки, который Вы можете выделить и скопировать в файл, открытый в среде разработки Delphi.
Вот он, выделен цветом для удобства:
unit PrDLinkLabel; // дайте файлу имя PrDLinkLabel.pas
interface // Область объявлений
uses
SysUtils
, Classes
, Controls
, StdCtrls
, Windows
, Messages
, Variants
, Graphics
, Forms
, Dialogs
, SHELLAPI
;
SysUtils
, Classes
, Controls
, StdCtrls
, Windows
, Messages
, Variants
, Graphics
, Forms
, Dialogs
, SHELLAPI
;
type
TPrDLinkLabel = class(TLabel) // Объявление нового класса, предком которого
// выбран компонент TLabel
private
procedure PrDLinkLabelClick(Sender: TObject); // Тем и хороши объекты,
// что инкапсулируют в себе данные и методы
protected // В этой области ничего не объявлено
public
Constructor Create( AOwner: TComponent); override; // Конструктор компонента,
// как и в предыдущих случаях, устанавливается
// общий предок - предок визуальных компонентов
// TComponent.
published // В этой области ничего не объявлено
end; // Окончание объявления класса
TPrDLinkLabel = class(TLabel) // Объявление нового класса, предком которого
// выбран компонент TLabel
private
procedure PrDLinkLabelClick(Sender: TObject); // Тем и хороши объекты,
// что инкапсулируют в себе данные и методы
protected // В этой области ничего не объявлено
public
Constructor Create( AOwner: TComponent); override; // Конструктор компонента,
// как и в предыдущих случаях, устанавливается
// общий предок - предок визуальных компонентов
// TComponent.
published // В этой области ничего не объявлено
end; // Окончание объявления класса
procedure Register; // Объявление процедуры Register, которая
// установит компонент в среду разработки Delphi
// установит компонент в среду разработки Delphi
implementation // Область, где расположены
// тексты процедур и функций
// тексты процедур и функций
constructor TPrDLinkLabel.Create( AOwner: TComponent );
begin
inherited Create(AOwner); // Оператор, создающий компонент на основе предка
AutoSize:=False; // Перекрытие свойства AutoSize
Cursor:=crHandPoint; // Назначение вида курсора
Font.Color:=clNavy; // Изменения цвета надписи
Font.Style:=[fsBold]; // Перекрытие стиля надписи (шрифт станет жирным)
onClick:=PrDLinkLabelClick; // Назначение метода PrDLinkLabelClick; событию onClick
Hint:='http://pro-delphi.ru/'; // Всплывающая подсказка
Caption:='http://pro-delphi.ru/'; // Текст надписи в метке
// Последние два свойства будут иметь эти значения по
// умолчанию, однако, Вы можете их не задавать
// или указать свои значения
end;
begin
inherited Create(AOwner); // Оператор, создающий компонент на основе предка
AutoSize:=False; // Перекрытие свойства AutoSize
Cursor:=crHandPoint; // Назначение вида курсора
Font.Color:=clNavy; // Изменения цвета надписи
Font.Style:=[fsBold]; // Перекрытие стиля надписи (шрифт станет жирным)
onClick:=PrDLinkLabelClick; // Назначение метода PrDLinkLabelClick; событию onClick
Hint:='http://pro-delphi.ru/'; // Всплывающая подсказка
Caption:='http://pro-delphi.ru/'; // Текст надписи в метке
// Последние два свойства будут иметь эти значения по
// умолчанию, однако, Вы можете их не задавать
// или указать свои значения
end;
procedure TPrDLinkLabel.PrDLinkLabelClick(Sender: TObject);
// Процедура, обрабатывающая клик по надписи
begin
If (Sender is TLabel) then
with (Sender as Tlabel) do
ShellExecute(Application.Handle,PChar('open'), PChar(Hint), PChar(0),nil,SW_NORMAL); // -
// функция, вызывающая открытие приложения (браузера)
end;
// Процедура, обрабатывающая клик по надписи
begin
If (Sender is TLabel) then
with (Sender as Tlabel) do
ShellExecute(Application.Handle,PChar('open'), PChar(Hint), PChar(0),nil,SW_NORMAL); // -
// функция, вызывающая открытие приложения (браузера)
end;
procedure Register;
begin
RegisterComponents('Pro-Delphi Lib', [TPrDLinkLabel]); // Процедура,
// регистрирующая компонент компонент TPrDLinkLabel
// на вкладке Pro-Delphi Lib в среде разработки Delphi
end;
begin
RegisterComponents('Pro-Delphi Lib', [TPrDLinkLabel]); // Процедура,
// регистрирующая компонент компонент TPrDLinkLabel
// на вкладке Pro-Delphi Lib в среде разработки Delphi
end;
end.
Следующим шагом Вы должны создать пакет, добавить в него файл данного компонента, и установить его.
* * *
Что же дальше?
В следующих уроках разговор пойдет о:
В следующих уроках разговор пойдет о:
- создании формы “О программе”,
- создании компонента на основе формы “О программе”,
- мы вернемся к проекту “Таймер” и напишем обработчики тех пунктов меню, которые еще остались пустыми (речь пойдет о задании и сохранении настроек программы),
- научимся сжимать готовый exe файл,
- создадим новый проект “Учет расходов”, в котором будем знакомиться с базами данных и всем, что с ними связано,
но, похоже, я сильно забежал вперед... :-)
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.