Добавление событий
Добавим событие, которое будет наступать, когда выдаваемое методом GetNumber случайное число будет максимальным (т. е. равным max). При использовании нашего компонента можно будет в обработчике этого события написать все что угодно. Этим будет заниматься не наш компонент, а программа, использующая его.
Объявим наше событие в private-области нашего класса:
TRandom = class(TLabel)
private { Private declarations }
// Объявление события.
FGetMax: TNotifyEvent;
Далее опубликуем наше событие - для того, чтобы оно появлялось в Инспекторе объектов Delphi:
published { Published declarations } ...
// Публикация события.
property OnGetMax: TNotifyEvent read FGetMax write FGetMax;
При использовании нашей компоненты это событие будет видно под именем OnGetMax.
Перед возбуждением события мы проверяем, а был ли ему вообще назначен обработчик. Это мы делаем в выражении Assigned(FGetMax):
Function TRandom.GetNumber: Integer;
...
begin
...
i:= System.Random(Fmax - Fmin + 1)+ Fmin;
// Возбуждение события.
if (Assigned(FGetMax) and (i = Fmax)) then FGetMax(self);
Наш компонент почти готов для применения (но сначала необходимо сохранить файл с компонентом на жестком диске.). Осталось одно но- это вставить картинку для отображения нашей новой компоненты на Палитры компонентов.
- Новые технологии.
- Создание новых компонент
- Добавление свойств
- Добавление методов
- Добавление событий
- Разработка ресурсов для компоненты
- Установка компоненты
- Испытание компоненты
- Редактирование компоненты
- Создание справочной службы помощи
- Динамически подключаемые библиотеки (dll)
- Работа с буфером обмена
- Динамический обмен данными (dde)
- Связывание и внедрение объектов (ole)
- Упражнения: