Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

Переназначение обработчиков событий у компонентов.   Найти похожие ветки 

 
infom ©   (2006-11-21 11:26) [0]

Уважаемые мастера, у меня возник вопрос при разработке своего компонента.

Создаю следующий класс который контролирует деятельность всей формы:

TMyController = class
...
procedure DataQueryBeforePost(DataSet: TDataSet);
...
property DataQuery: TADOQuery read GetDataQuery write SetDataQuery;
...
...
...

Так вот в методе SetDataQuery мне необходимо добавить обработчик на событие TADOQuery.BeforePost , так и делаю.

procedure TMyController.SetDataQuery( Value:TADOQuery);
begin
 FDataQuery := Value;
 FDataQuery.BeforePost := DataQueryBeforePost;
end;

Вопрос собственно в том что будет если у пользователя уже был заранее назначен обработчик BeforePost у данного датасета, и что необходимо сделать чтобы и моя процедура обработки выполнилась и пользователя ?


 
clickmaker ©   (2006-11-21 11:27) [1]


> что необходимо сделать чтобы и моя процедура обработки выполнилась
> и пользователя ?

проверить. Если есть, сохранить. Потом вызывать до или после твоего


 
ЮЮ ©   (2006-11-21 11:37) [2]

если TMyController  предполагает "обогатить" имено TADOQuery, почему не унаследоваться от TADOQuery и перекрыть то, что полагается в данном случае DoBeforePost ?


 
Юрий Зотов ©   (2006-11-21 12:05) [3]

> что будет если у пользователя уже был заранее назначен обработчик

Если УЖЕ был, то ничего страшного, потому что компонент может запомнить старый обработчик и вызвать его, когда нужно.

Правда, ничто не мешает юзеру положить на форму НЕСКОЛЬКО Ваших компонентов - и тогда могут возникнуть противоречия. Которые, впрочем, решить можно.

Но вот что Вы будете делать, если юзер назначит свой обработчик ПОСЛЕ Вашего? Приплыл ведь тогда компонент-то, не будет он работать.

И ничего Вы тут сделать не сможете. Потому что в принципе неверен сам подход. Компонент не имеет права использовать события, доступные юзеру - это непреложный закон. Именно по этой причине в компоненты обычно вводятся методы диспетчеризации событий (часто их называют DoЧтоТо).

И, честно говоря, особого смысла в таком компоненте, что Вы задумали я не вижу. Поскольку классом, "который контролирует деятельность всей формы" вполне может быть и предок этой формы.

Вот его (предок) я бы и писал. А не компонент.


 
infom ©   (2006-11-21 13:16) [4]

Юрий Зотов
можно чуть подробнее или ссылку на литературу...


 
Юрий Зотов ©   (2006-11-21 13:38) [5]

> infom ©   (21.11.06 13:16) [4]

Подробнее О ЧЕМ?

Как писать компоненты? или как писать формы? или как от этих форм наследоваться? или о чем-то еще?


 
infom ©   (2006-11-21 17:45) [6]


> Подробнее О ЧЕМ?
>
> Как писать компоненты? или как писать формы? или как от
> этих форм наследоваться? или о чем-то еще?

Ясно....не настроены помочь....
Спасибо всем, далее сам разберусь.


 
Джо ©   (2006-11-21 20:52) [7]

> [6] infom ©   (21.11.06 17:45)
> Ясно....не настроены помочь....

"Удивительное — рядом" (c). Помогли, разжевали, положили в рот, на вопрос, в чем помочь дальше — "ясно, фиг с фами"...


 
Palladin ©   (2006-11-21 21:02) [8]


> [7] Джо ©

Так, ведь, код не написали... что и означает "не настроены помочь"...



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
15-1166172798
Руслан
2006-12-15 11:53
2007.01.14
Мелодия вместо гудка


2-1167097643
Loona
2006-12-26 04:47
2007.01.14
inhereted


15-1166717314
kaZaNoVa
2006-12-21 19:08
2007.01.14
Чем лучше всего распознать фотки документов?


2-1167118319
XTD
2006-12-26 10:31
2007.01.14
Результат пинга


15-1166603244
alexandr
2006-12-20 11:27
2007.01.14
подскажите компонент