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

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

Переназначение обработчиков событий у компонентов. [D7, WinXP]


infom ©   (2006-11-21 11:26:00) 

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

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

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 у данного датасета, и что необходимо сделать чтобы и моя процедура обработки выполнилась и пользователя ?


Palladin   (2006-11-21 21:02:00) [1]


> [7] Джо ©

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


Джо   (2006-11-21 20:52:00) [2]

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

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


infom   (2006-11-21 17:45:00) [3]


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

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


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

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

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

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


infom   (2006-11-21 13:16:00) [5]

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


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

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

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

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

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

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

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

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


ЮЮ   (2006-11-21 11:37:00) [7]

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


clickmaker   (2006-11-21 11:27:00) [8]


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

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


Наверх

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