Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикладное программирование.doc
Скачиваний:
12
Добавлен:
25.12.2018
Размер:
683.01 Кб
Скачать

Var NewBtn: tNewButton;

Begin

NewBtn :=TNewButton.Create(Self); // Создание кнопки With NewBtn Do Begin Parent:=Self;

SetBounds(10,10, 75,25);

Name:='NewBtn';

Visible:=True;

OnClick:=Buttonl.OnMouseMove; //Новое событие TButton(NewBtn).OnClick:=Button2.0nClick; // Щелчок мыши End;

End;

Приведенный пример позволяет продемонстрировать возможность пере­определения типа события и возможность доступа к переопределенному со­бытию предка с помощью приведения типов.

После запуска программы щелкнем мышью по кнопке NewBtn, - поя­вится сообщение "Click!". Щелчок по кнопке ОК формы сообщения (MessageDIg) приведет к появлению сообщения "Move!". Это демонстрация приведения типа.

Если в виртуальном конструкторе удалить последнюю строку или/и строку Inherited Click в реализации метода TNewButton.Click, то щелчок по кнопке NewBtn сразу приведет к появлению сообщения "Move!". Это означа­ет, что событие OnClick переопределено. Уведомительное событие заменено на специализированное и использованы его параметры Х и Y для вывода со­общения.

7.5. Выводы

Итак, если подвести итог, то можно сказать следующее:

• Windows является системой ориентированной на события.

• События в Delphi принимают форму сообщений.

• В недрах Windows VCL Delphi сообщения Windows обрабатываются и преобразуются в более простую для программиста форму.

• События в программе на Delphi вызываются не только сообщениями Windows, но и внутренними процессами.

• Обработка событий в Delphi сводится к написанию для каждого ком­понента своих обработчиков.

64