Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Событие onChange для CheckBox


Автор: Xela 14.3.2008, 18:30
Надо написать прогу:
На форме находится CheckBox1 и Button1
При изменении свойства Enabled компонента CheckBox1 изменяется свойство Enable для Button1
Как перехватить событие onChange для CheckBox1??

Автор: korian 14.3.2008, 18:49
OnClick

Автор: Xela 14.3.2008, 18:52
Цитата(korian @ 14.3.2008,  18:49)
OnClick

А кнопками если будут менять??
Хотелось бы увидеть оптимальное решение этого вопроса 

Автор: korian 14.3.2008, 20:25
Цитата(Xela @  14.3.2008,  17:52 Найти цитируемый пост)
Хотелось бы увидеть оптимальное решение этого вопроса  

писать свой компонент

Автор: Vyacheslav 14.3.2008, 20:45
В зависмости от того чего Вы собираетесь добиться, возможны оптимальные решения.
Самый простой. Взять ApplicationEvent и задать обработчик OnIdle

Код

class TForm1 : public TForm
{
....

    private:
       bool  previos_state;

}


__fastcall  TForm1::TForm1(TComponent* Owner)
         :TForm(Owner), previos_state( CheckBox1->Checked )
{
...
}

void __fastcall TForm1::AoolicationEvent1Idle(TObject* Sender, bool  &Done )
{
       if ( previos_state != CheckBox1->Checked ) {
           previos_state  =    CheckBox1->Checked ;
           //далее делаем что-то в зависимости от того Checked или не Checkef  
       }
}





 

Автор: Dmi3ev 15.3.2008, 15:06
а я бы на каждый компонент, которому разрешено менять св-ва CheckBox написал бы не только писал и на счет Button
например, если компонент делает CheckBox недоступным, то:
Код

CheckBox1->Enabled=false;
Button1->Enabled=false;

проще, чем все остальное...

Добавлено через 3 минуты и 9 секунд
наверное у тебя не 100000 компонент, которые способны меня св-ва CheckBox smile 

Автор: Xela 24.3.2008, 14:55
Спасибо Vyacheslav  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)