Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
vvspb

Имена функций с использованием переменных

02.04.2012, 23:30. Показов 1071. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос: у меня есть объекты называемые (Label1, Label2, Label3...), и нужно по нажатию на кнопку, чтобы их названия менялись.
Понятное дело, что можно написать:
C++
1
2
3
4
Label1->Caption = "1";
Label2->Caption = "2";
Label3->Caption = "3";
// ...
но, поскольку объектов много, хотелось бы это запихнуть в цикл. С подстановкой названий в цикл проблем нет, а вот как объяснить Builder`y Label+i, не понимаю:
C++
1
2
3
for (i = 1; i < 21; i++) {
    "Label"+i->Caption = IntToStr(i);
}
Раз во Flash это просто делается:
C++
1
_root["label"]+i;
, то думаю и на С++, это как-то реализуется. Может кто-нибудь знает ответ?))
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2012, 23:30
Ответы с готовыми решениями:

Рассмотреть программу, написать имена глобальных переменных, локальных переменных, формальных параметров
Program P1; var s:string; procedure P(var s:string) ; var i, j : integer; aux: char; ...

Имена переменных
Можно создавать переменные с программно задаваемым именем? Например, For i=1 to 10 Dim perem &amp; &quot;i&quot; As String Next

Имена переменных
Можно создавать переменные с программно задаваемым именем? Например, For i=1 to 10 Dim perem &amp; &quot;i&quot; As String Next

4
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
02.04.2012, 23:45
C++
1
2
3
4
5
6
7
8
9
10
   TControl *Ctrl;
   for ( int i = 0; i < this->ControlCount; i++ )
   {
        Ctrl = this->Controls[i];
        if ( Ctrl->ClassNameIs("TLabel") )
          {
             TLabel *lab = (TLabel *)Ctrl;
             lab->Name = "Name" + IntToStr(i);
          }
   }
2
vvspb
04.04.2012, 00:03
Спасибо))

Добавлено через 22 часа 58 минут
В пределах одной формы разобрался. А как сделать так, чтобы в Form1, при нажатии на кнопку, те же объекты (Label1, Label2, Label3...), меняли названия сразу в Form2, Form3 и Form4?
C++
1
2
3
4
5
6
7
8
9
for (j = 1; j < 4; j++)
{
    dynamic_cast<TForm *>(FindComponent("Form" + AnsiString(j+1)));
    for (i = 1; i < 21; i++)
    {
        (*1)dynamic_cast<TLabel *>(FindComponent("Label" + AnsiString(i)))->Caption = IntToStr(i);
        (*2)
    }
}
Не понимаю как соединить динамическое имя формы и лейбла. Видимо что-то на (*1) стоят должно, как это обычно делается (к примеру: Form2->Label1->...), или же какая-то стыковочная операция после на (*2).

Есть мысли? Заранее благодарен...))
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
04.04.2012, 00:24
В подобных случаях я обычно создаю массив указателей на компоненты, заполняю его 1 раз, а потом спокойно работаю с массивом.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
04.04.2012, 12:09
C++
1
dynamic_cast<TLabel *>(Form2->FindComponent("Label" + AnsiString(i)))->Caption = IntToStr(i);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2012, 12:09
Помогаю со студенческими работами здесь

Доказать, что среди булевых функций, зависящих только от двух переменных восемь функций имеют д.н.ф. сложности 2
Доказать, что среди булевых функций, зависящих только от двух переменных x1 и x2, причем от каждой из них существенным образом ровно восемь...

Имена переменных - кириллицей
И я проверил:void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Мое*Сообщение; Мое*Сообщение = &quot;Имя...

В чем ошибка?) Имена переменных
Я только учусь) Програмка перепечатаная с книги, но в визуал студио 2008 я ловлю ошибку) #include &lt;stdio.h&gt; #include...

Имена переменных русскими словами
Попробовал объявить переменную русским словом, присвоить значение и напечатать. Всё получилось. А почему в учебниках пишут, что можно...

Имена переменных с символом доллара ($)
Полистал Страуструпа. Выискал: И как пример приведено вот это: И для интереса посмотреть, что скажет на это компилятор VS...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru