Текущий архив: 2005.12.25;
Скачать: CL | DM;
Вниз
Рассылка событий группе объектов. Найти похожие ветки [D7, WinXP]
← →
Владислав © (2005-11-25 16:45) [40]
> А зачем оно ему нужно, если он не знает что делать ?
Ну кроме case еще есть if... Может быть группа событий :)
if
(AEventObject.EventID >= EVENTID_SOME_FIRST) and
(AEventObject.EventID <= EVENTID_SOME_LAST)
then
ReloadSomeProperties(AEventObject);
← →
GuAV © (2005-11-25 17:21) [41]Владислав © (25.11.05 16:45) [40]
Ха, вон даже как.
Что же Вы раньше молчали ;)
← →
Leonid Troyanovsky © (2005-11-25 17:28) [42]
> GuAV © (25.11.05 16:40) [39]
> У меня разные формы, фреймы. Контейнером для всех, разумеется
> является Application, однако в VCL проектах наследника Application
> не пишут.
Отчего ж не пишут? :)
> Делать одну из форм диспетчером - неудобно. Поэтому отдельный
> класс диспетчера. Более того, приёмниками событий изначально
> были не только контролы, но и классы в некоторых списках,
> это уже переделано.
Не знаю насчет диспетчеризации, но привязать к главной форме
все хранилища глобальных данных весьма удобно.
Ну, и некоторые глобальные методы.
> Но зачем прописывать каждый контрол, если он может прописать
> себя сам, тогда это будет в его модуле, а не в модуль диспетчера.
Тогда это будет специализированный контрол, с ограниченным
применением, а нам, собс-но, нужен специализированная форма,
фрейм, панель, т.е. - контейнер.
> С контролами одного модуля у меня именно так, через
> св-ва контейнера.
Модуль - это не совсем элемент OOP.
Например, можно в дизайнтайме сделать некотрый контейнер,
а в рантайме - сделать его наследника, придав ему (контейнеру)
некоторые дополнительные (нужные) возможности.
Особенно, если оный контейнер создается именно в рантайме.
--
Regards, LVT.
← →
GuAV © (2005-11-25 17:53) [43]
> Модуль - это не совсем элемент OOP.
Ну да, имелся ввиду класс, который реализует этот модулью
> Особенно, если оный контейнер создается именно в
> рантайме.
Не только в рантайме :)
вот так я создаю Ваш грид:TStringGridSE = class(TStringGrid)
...
end;
TStringGrid = class(TStringGridSE)
end;
type
TfrmGrid = class(TFrame)
StringGrid: TStringGrid;
...
← →
Leonid Troyanovsky © (2005-11-25 18:34) [44]
> GuAV © (25.11.05 17:53) [43]
> вот так я создаю Ваш грид:
> TStringGridSE = class(TStringGrid)
> ...
> TStringGrid = class(TStringGridSE)
Не очень понятно почему мой, но приятно :)
Ну, а делается такое не от хорошей жизни, а потому как, видимо,
технически сложно сделать истинных наследников и использовать
их уже традиционно.
--
Regards, LVT.
← →
GuAV © (2005-11-25 19:09) [45]
> Не очень понятно почему мой
Мой вопрос в "начинающим"
http://delphimaster.net/view/2-1132581168/
> Ну, а делается такое не от хорошей жизни
Просто не хочется "загрязнять" палитру, но хочется визуального наследования. А чем это плохо ?
← →
Leonid Troyanovsky © (2005-11-28 09:06) [46]
> GuAV © (25.11.05 19:09) [45]
>> Ну, а делается такое не от хорошей жизни
> Просто не хочется "загрязнять" палитру, но хочется визуального
> наследования. А чем это плохо ?
IMHO, неудобно.
Снабдил компонент необходимыми функциями, отладил, установил в
палитру (на отдельную страницу), использовал в проекте, а затем и
удалил из палитры до лучших времен.
Зато, уже отлаженный модуль может послужить основой для еще
какого-либо специализированного компонента.
--
Regards, LVT.
Страницы: 1 2 вся ветка
Текущий архив: 2005.12.25;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.062 c