Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1092695696
Andy BitOff
2004-08-17 02:34
2004.09.05
VMware Workstation


4-1090322082
Le!
2004-07-20 15:14
2004.09.05
USB и работа с ним!


4-1090566377
Form_1
2004-07-23 11:06
2004.09.05
Неправильное преобразование?


3-1091157284
Fynjy
2004-07-30 07:14
2004.09.05
При попытке редактировать запрос получаю сообщение.


4-1090500778
юзверь
2004-07-22 16:52
2004.09.05
Как запустить процедуру, зная ее адрес??





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский