Форум: "Основная";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
ВнизПереназначение обработчиков событий у компонентов. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c