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