C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Имена объектов, Исполь. значений переменных, как имен
НовичокЧок
Отправлено: 18.05.2005, 09:19


Ученик-кочегар

Группа: Участник
Сообщений: 10



Столкнулся со следующей проблемой:

есть несколько однотипных контролов (например: пять TRadioButton),
имеющих схожие названия (rb1 — rb5), необходимо переодически обращаться к одному и тому же свойству, одного из объектов. При этом имя объекта выбирается по определенному условию.

Так вот можно ли выделив одно из имен, записать его в переменную (Например: String gg="rb1"), а затем использовать ее (переменной) значение, как имя объекта.

Заранее благодарен!
Sl@Sh
Отправлено: 18.05.2005, 13:58


Мастер участка

Группа: Участник
Сообщений: 383



Если компилятор имени какого-то не видит, он вам сообщит сразу, поэтому попробуйте динамически создавать объекты (ИМХО)
Guest
Отправлено: 18.05.2005, 14:01


Не зарегистрирован







QUOTE

Так вот можно ли выделив одно из имен, записать его в переменную (Например: String gg="rb1"), а затем использовать ее (переменной) значение, как имя объекта.

Запишите указатель на объект — это попроще-то будет.
А еще можно сбрать их в массив и т.д.
Георгий
Отправлено: 18.05.2005, 23:09


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Ага, в массив, а ещё лучше в ассоциативный массив — "имя объекта" = "указатель на объект".
olegenty
Отправлено: 19.05.2005, 11:24


Ветеран

Группа: Модератор
Сообщений: 2412



Геаргий на
map <>
намекает... smile.gif
Doga
Отправлено: 24.05.2005, 19:17


Мастер участка

Группа: Участник
Сообщений: 575



Ходят слухи, что есть, мол, какое то свойство Tag...

Жуть! ohmy.gif
Konstantine
Отправлено: 25.05.2005, 10:06


Мастер участка

Группа: Модератор
Сообщений: 545



я в подобных случаях (быстро, удобно и работоспособно) делаю так:

1) объекты создаю обычным способом (кидая на форму), тут же расставляются их свойства.
2) в *.h файле в секции private:
CODE
TRadioButton *rb[10];

3) в Form1OnShow обработчике:
CODE
rb[0]=RadioButton0;
rb[1]=RadioButton1;
rb[2]=RadioButton2;
//... и так все

4)Юзаю компоненты через rb[i]-> ...

можно массив сделать и динамическим, но это немного сложнее...

Вернуться в Вопросы программирования в C++Builder