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


Автор: Simon14 25.1.2009, 00:59
каким образом можно сократьть выражения такого типа 

Form5->BitBtn7->Enabled=false;
Form5->BitBtn8->Enabled=false;
Form5->BitBtn9->Enabled=false;
Form5->BitBtn10->Enabled=false;
Form5->BitBtn11->Enabled=false;
Form5->BitBtn12->Enabled=false;
Form5->BitBtn13->Enabled=false;
Form5->BitBtn14->Enabled=false;
Form5->BitBtn15->Enabled=false;
Form5->BitBtn16->Enabled=false;
Form5->BitBtn17->Enabled=false;

Автор: 586 25.1.2009, 01:17
Такие выражения сократить можно:
Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    for(int i = 7; i <= 17; ++i)
        if(TBitBtn * btn = dynamic_cast<TBitBtn*>(Form5->FindComponent("BitBtn"+IntToStr(i))))
            btn->Enabled = false;

}

Автор: mes 25.1.2009, 01:45
а лучше сразу объявить массив, и оперировать уже с ним, лишний раз не используя касты.

Автор: mrbrooks 26.1.2009, 08:38
Цитата(mes @  25.1.2009,  01:45 Найти цитируемый пост)
а лучше сразу объявить массив, и оперировать уже с ним, лишний раз не используя касты. 

это при условии если кнопки создаются динамически. автор же, имхо, просто накидал контролы на форму.

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