![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
end;
Procedure Register; implementation
procedure Register; begin RegisterComponents('Samples', [TGraphicClock]); end;
End.
В шаблоне реализована только одна процедура – Register. В этой процедуре происходит вызов RegisterComponents с двумя параметрами:
1. Имя закладки, на которую нужно будет поместить этот компонент.
2. Имя компонента, которое надо зарегистрировать при установке в системе Delphi. Процедура Register обязательно должна присутствовать в любом модуле компонента. Она вызывается автоматически оболочкой Delphi при установке компонента.
В принципе простейший компонент готов и его можно установить в Delphi. Но этот компонент ничего не умеет и он пока является полным аналогом своего предка TGraphicControl. Чтобы он стал отличатся, сейчас мы добавим ему разные свойства.
Начнём написание нашего компонента с конструктора и деструктора. Конструктор -это метод объекта, который автоматически вызывается при создании компонента. Деструктор -тоже метод, только она автоматически вызывается при уничтожении компонента. Вызывать эти метода напрямую нельзя, а если и можно, то не желательно.
В конструкторе мы проинициализируем все наши переменные, которые понадобятся при его работе, а в деструкторе уничтожим. Итак, напиши в разделе public:
constructor Create(AOwner: TComponent); override;
Как видишь, объявление метода похоже на объявление любой другой процедуры или функции, только вместо ключевого слова procedure стоит слово constructor. Ключевое слово override; после имени этих процедур говорит о том, что мы хотим переписать уже существующую у предка функцию с таким именем. У большинства компонентов есть конструктор и когда мы создаём конструктор у потомка, то у нас получается два метода с одним именем (у предка и у нашего объекта).
Теперь нажми сочетание клавиш CTRL+SHIFT+C и Delphi сам создаст заготовку для конструктора:
constructor TGraphicClock.Create(AOwner: TComponent); begin inherited; end;
Поправим её до вот такого вида:
constructor TGraphicClock.Create(AOwner: TComponent);
begin
//Вызываем конструктор предка
inherited Create(AOwner);
Дата публикования: 2014-11-04; Прочитано: 471 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!