Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вызвать событие [D7]


Страницы:   1 2 3

rds ©   (2005-09-20 21:07:00) 

В своем компоненте Определяю событие, как

 type TEvent=procedure(Sender:TObject)
....
 private
   fOnEvent: TEvent;
....
 published
   property OnEvent: TEvent read fOnEvent write fOnEvent

В процессе работы методов компонента возникает ситуация, когда должно возникнуть это событие. Каким образом это осуществляется. Т.е. я понимаю, что должен стоять соответствующий вызов, но может кто-то приведет краткий пример?


jack128   (2005-09-20 22:02:00) [41]

rds ©   (20.09.05 21:07)
TEvent=procedure(Sender:TObject)

обычно события компонентов отпереляют как методы, а не процедуры: TEvent = procedure (Sender: Tobject) of object;
правда уже существует такой стандартный тип - TNotifyEvent;

вызов обычно делается так:

type
 TEsComponent = class(TComponent)
 private
   fEvent: TNotifyEvent; // обычно в название поля не в ключают приставку On
 protected
   procedure DoEvent; virtual; // обычно в название метода диспетчеризации включают приставку Do и этот метод делают виртуальным или динамическим
 published
   property OnEvent: TNotifyEvent read fOnEvent write fOnEvent;
 end;

{ TEsComponent }

procedure TEsComponent.DoEvent;
begin
 if Assigned(fEvent) tehn
   fEvent(Self);
end;


RDS   (2005-09-20 21:59:00) [42]

спасибо, сечас попробую


Sphinx   (2005-09-20 21:30:00) [43]

Может ошибусь, но кажется так
if Assigned(fOnEvent) then fOnEvent;


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо