Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизКак отследить изменение свойства компонента Enabled? Найти похожие ветки
← →
Sergo_NIG (2004-08-18 11:18) [0]Доброго всем текущего времени дня!
Уважаемые, подскажите пожалста можно ли (и, если да, то как) отследить изменение свойства компонента Enabled (True/False) и на это событие прописать лбаботчик?
Заранее благодарен.
← →
Anatoly Podgoretsky © (2004-08-18 11:22) [1]Надо писать наследника.
← →
Sergo_NIG (2004-08-18 11:28) [2]> Anatoly Podgoretsky
Т.е. писать наследника и выносить события OnEnabled и OnDisabled что ли?
← →
Skyle © (2004-08-18 11:29) [3]
> [2] Sergo_NIG (18.08.04 11:28)
Писать наследника и перекрывать его SetEnabled.
← →
Digitman © (2004-08-18 11:30) [4]
> Т.е. писать наследника и выносить события OnEnabled и OnDisabled
> что ли?
можно и так
← →
Skyle © (2004-08-18 11:33) [5]
> [4] Digitman © (18.08.04 11:30)
А можно это сделать, ловя в наследнике CM_ENABLEDCHANGED?
← →
Sergo_NIG (2004-08-18 11:38) [6]С наследником понятно...
Тогда вопрос номер следующий: а если подобный обработчик надо написать к компонентам, принадлежащим разным классам, то к каждому компоненту своего наследника писать? (прошу прощения если вопрос ламерский)
← →
clickmaker © (2004-08-18 11:43) [7]
> к каждому компоненту своего наследника писать?
угу. Если только у них всех нет общего базового класса с этим свойством
← →
TUser © (2004-08-18 11:52) [8]Если не хочется писать много разных наследников, то сделай у себя в программе процедуру SetEnabledVaue(Control,Value) и там пиши все, что хочешь. Соотвественно, вызовы Enabled:=true/false замени на вызовы этой процедуры.
← →
Sergo_NIG (2004-08-18 11:52) [9]Ну, собственно, общий класс: TControl (или в принципе даже можно свести к TWinControl) и он как я понимаю имеет свойство Enabled.
Т.е. надо писать наследника TWinControl (или TControl для более общего случая)...но тогда надо сделать так, чтобы указанные компоненты наследовали из созданного класса...
← →
Sergo_NIG (2004-08-18 11:55) [10]
> TUser © [8]
> Если не хочется писать много разных наследников, то сделай
> у себя в программе процедуру SetEnabledVaue(Control,Value)
Отличная мысля для более быстрого (но ИМХО менее универсального) решения ...но в моем случае возможно пройдет, попробую)
← →
Юрий Зотов © (2004-08-18 12:01) [11]Свойство Enabled имеют не только контролы (TMenuItem, TAction и др.).
← →
Digitman © (2004-08-18 12:02) [12]
> Skyle © (18.08.04 11:33) [5]
> А можно это сделать, ловя в наследнике CM_ENABLEDCHANGED?
возможно, наверно ...
но в любом случае надо внимательно смотреть, что происходит в обработчике CM_ENABLEDCHANGED и его "обвязке", чтобы не упустить потенциальные некорректности при таком подходе (связанные с заранее неизвестной логикой в назначаемом в будущем прикладном обработчике событий OnEnabled/OnDisabled)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c