реклама на сайте
подробности

 
 
> Обработчик для множества компонентов CheckBox
Buratino
сообщение Sep 26 2013, 08:44
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 24-11-11
Из: Город-герой Минск
Пользователь №: 68 491



Пишу VCL Forms Application на С++ Builder XE4. На форме имеется большое количество CheckBox'ов. Есть ли способы их опроса , позволяющих избежать обращение к каждому из них по отдельности (как в примере)?

Код
    
if (CheckBox1->Checked == true)
    {
    signal1 = 1;
    Label1->Font->Color = clLime;
    }
    else
    {
    signal1 = 0;
    Label1->Font->Color = clBtnFace;
    }

    if (CheckBox2->Checked == true)
    {
    signal2 = 2;
    Label2->Font->Color = clLime;
    }
    else
    {
    signal2 = 0;
    Label2->Font->Color = clBtnFace;
    }

и т.д. .......


Сообщение отредактировал Buratino - Sep 26 2013, 08:47
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
megajohn
сообщение Sep 26 2013, 12:52
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



как-то так (пишу без проверки, на память )
Код
    
typedef struct{
    TCheckBox* cb;
    TLabel* lbl;
    int* sig;
}Sarr;

Sarr arr[] = {
{ &CheckBox1, &Label1, &signal1 },
{ &CheckBox2, &Label2, &signal2 },
{ &CheckBox3, &Label3, &signal3 },
{ &CheckBox4, &Label4, &signal4 },
};

for( int i = 0; i < 4; i++ )
{
    if( arr[ i ].cb->Checked )
    {
        arr[ i ].sig = 1 + i;
        arr[ i ].lbl->Font->Color = clLime;
    }
    else
    {
        arr[ i ].sig = 0;
        arr[ i ].lbl->Font->Color = clBtnFace;
    }
}




--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 00:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016