Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Как отследить изменение свойства компонента 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
3-1092359954
vasko
2004-08-13 05:19
2004.09.05
Как приконектится к запароленной базе


14-1092725070
VMcL
2004-08-17 10:44
2004.09.05
Конф. Media


14-1092746458
DillerXX
2004-08-17 16:40
2004.09.05
Пожалуйста, подскажите прогу для закачки полифонии на Siemens C62


14-1092750536
peypivo
2004-08-17 17:48
2004.09.05
Кондиционер


10-1035224514
Прохожий
2002-10-21 22:21
2004.09.05
OMNIORB и C++ Builder