зково повинен бути процедурою, що має один параметр, який при виклику методу містить інформацію про що надійшов повідомленні. Ім'я методу програміст вибирає самостійно, для компілятора воно не має значення, тому що даний метод є динамічним і його виклик виконується по таблиці динамічних методів. Метод може повністю або частково перекривати метод-предок, який обробляє це повідомлення. Якщо метод тільки модифікує метод-предок, то для виклику останнього використовується метод inherited. При цьому не потрібно вказувати ім'я методу-предка і його параметри, т. к. виклик буде виконаний автоматично. p align="justify"> Розглянемо як приклад обробку повідомлення Windows, що посилається при зміні розмірів вікна.
type
TForm1 = class (TForm)
// Оголошення методу обробки повідомлення
procedure MyPaint (Var Param); message WM_Size;;
...
// Код методу обробки сообщеніяTForm1.MyPaint (Var Param);
// Виклик методу-предка
inherited;
// Очищення поверхні форми
Form1.Refresh;
// Висновок червоної рамки
Form1.Canvas.Pen.Color: = clRed;
Form1.Canvas.Brush.Style: = bsClear;. Canvas.Rectangle (0, 0, Form1.ClientWidth, Form1.ClientHeight);;
По периметру форми виводиться червона рамка з допомогою процедури MyPaint, яка є обробником повідомлення WMSize. Це повідомлення надсилається при зміні розмірів вікна. У даному прикладі рамка перемальовується (разом з формою) тільки при зміні розмірів вікна, але не при його перекритті іншими вікнами, тому що в цьому випадку посилається повідомлення WMPaint, яке тут не аналізується. Параметр Param процедури ніде не використовується, проте повинен бути вказаний в заголовку процедури. Зазвичай в Delphi не потрібно обов'язкова обробка безпосередніх повідомлень Windows, тому що в розпорядження програміста надаються події, працювати з якими набагато простіше і зручніше. Подія являє собою властивість процедурного типу, призначене для забезпечення реакції на ті чи інші дії. Присвоєння значення цій властивості (подією) означає вказівку методу, що викликається при настанні події. Відповідні методи називаються оброблювачами подій. Приклад призначення обробника події:
Application.OnIdle: = IdleWork;
В якості обробника події OnIdle, що виникає при простої програми, об'єкту докладання призначається процедура IdleWork. Оскільки об'єкт Application доступний тільки при виконань програми, таке присвоєння не можна виконати через Інспектор об'єктів. p align="justify"> Події Delphi мають різні типи, що залежать від виду цієї події. Найпростішим є тип TNotlfyEvent, характерний для нотифікаційні (повідомляючих) подій. ...