Писане на техните компоненти за Delphi

Когато създавате свои собствени компоненти разработчик почти винаги се сблъскват с необходимостта от осигуряване на тяхната реакция на различни действия (промени в цените на имотите, призоваващи методи).

За да се реши този проблем е механизъм за събитие. По време на разработването на специфични действия, извършени с компонента, в сравнение съответните събития. Най-простият пример - OnClick събитие, което назначено едно щракване на мишката върху този компонент.

Тези събития могат да бъдат стандартен манипулатор (вж. Част 1) и не им трябва изобщо. След това лечението им е изцяло управляван от програмиста използване на компонента.

Основите на създаване на собствени събития

За описание на събитията в Delphi, специален вид TNotifyEvent данни. Този вид процедура, която принадлежи към по-голямата част от които обработват събитие. този тип процедура, като единствен аргумент - обектът, причинил събитието.

Собствен събитие се състои от три основни части:

  • Затворен поле tipaTNotifyEvent;
  • Отвори за четене и писане на един и същ вид имот за процесор цел. Препоръчително е да се обяви този имот е публикуван раздел, водачът може да бъде създаден с помощта на инспектор на обекта;
  • събитие Обади се, като се променят свойствата или работата на всяко действие.

Условни могат да бъдат разделени в две групи:

  • Събития, когато се обаждате методи (прилагане на действие);
  • Събития при смяна на стойността на имотите.
Един пример за прилагането на събитията викането на метода

Създаване на две персонализирани събития, които ще се случат, когато пишете във файл:

  • Събитие, преди да се съхранява в лог файл, (OnBeforeWriting);
  • Събитие, след като запишете регистрационния файл (OnAfterWriting).

Създаване затворен поле за тези събития:

След това, програмата може да се справи събитие, когато промените пътя към лог файл.

Механизъм събитие Горното описание е стандартна за всички Delphi компоненти, независимо от библиотеката (VCL, FireMonkey) .Той е на разположение за всички поддържани носители.

Въпреки това, ще трябва да платите за универсалността на факта, че събитието е описано като TNotifyEvent не могат да се справят повече от един аргумент, което го прави трудно да се създаде събитие, за обработката на комплексна програма логика. Но, този проблем има прост и елегантно решение - да се опише собствен вид процедура за събитието.

Опишете своя стил, можете да създавате събития от този вид точно като на TNotifyEvent.

Да се ​​създаде "нестандартно събитие", се предшества от FilePath свойства промяна съставни обсъдени по-горе. В този случай, в допълнение към предметът, причинил събитието ще й се прехвърли на нов път към лог файл.

Декларирам подходящия тип процедура: