![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Событие с несколькими обработчиками [D7, Win2k]
BFG9k © (2006-02-14 16:58:00)Необходимо назначить одному событию несколько обработчиков, так чтобы они выполнялись последовательно.
Пример :
class MyClass
...
fOnSomething:TNotifyEvent;
...
property OnSomething:TNotifyEvent read fOnSomething write fOnSomething;
end;
....
procedure MyClass.SomeProc;
begin
...
if Assigned(fOnSomething) then
fOnSomething(Self);
...
end;
Недостаток механизма в том, что OnSomething можно назначить однажды. Хотелось бы из разных мест программы организовать что-то вроде подписки на события, чтобы в результате выполнялось что-то вроде :
procedure MyClass.SomeProc;
begin
...
if Assigned(fOnSomething1) then
fOnSomething1(Self);
if Assigned(fOnSomething2) then
fOnSomething2(Self);
....
if Assigned(fOnSomethingN) then
fOnSomethingN(Self);
...
end;
Кто-нибудь сталкивался с реализацией подобных механизмов ? Может быть имеются стандартные средства дельфи (вроде ApplicationEvents), которые позволяют организовать множественность обработчиков одного события ?
Leonid Troyanovsky (2006-02-14 19:46:00) [1]
> BFG9k © (14.02.06 16:58)
> Необходимо назначить одному событию несколько обработчиков,
> так чтобы они выполнялись последовательно.
http://groups.google.com/group/fido7.ru.delphi/msg/4ab8efecc7f3f6eb
--
Regards, LVT.
Гаврила (2006-02-14 19:45:00) [2]
> BFG9k ©
Заведи список.
Туда можно добавлять сами события
а можно завести некий промежуточный класс, типа "link"
экземпляр которого добавляется в список
в момент OnSomething идет оповещение link'ов в цикле
а каждый линк в свою очередь оповещает своего "хозяина"
понятно изложил?)
Digitman (2006-02-14 17:25:00) [3]Назначаешь "обычному" событию "обычный" же обработчик.
А в теле назначенного тобой обработчика творишь все что угодно.
Ega23 (2006-02-14 17:05:00) [4]Дык, вроде, и последовательного механизма хватает...