Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
1

Добавление компонентов в TObjectList

24.04.2014, 10:36. Просмотров 1548. Ответов 7
Метки нет (Все метки)

Всем привет. Есть где то порядка 50 одинаковых компонентов на форме и нужно их добавить в TObjectList. Можно ли это сделать как то в цикле простенько или придется городить 50 строк с методом Add ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2014, 10:36
Ответы с готовыми решениями:

PageControl программное добавление компонентов
Есть PageControl, при нажатии на Button - TTabSheet *pTabSheet = new TTabSheet(PageControl2); ...

Добавление компонентов в окно, созданное через WinApi
Создается окно с помощью WinApi. Можно ли на это окно добавлять визуальные компоненты?

ADOTable добавление данных из простых компонентов?
Подскажите пожалуйста как как мне скопировать данные из ValueListEditor в Базу Данных пользуясь...

[borland c++] добавление записей в БД с помощью компонентов zeos
Доброго времени суток имеется база на mysql, до этого особо с базами не работал разобрался как...

7
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29826 / 19632 / 7683
Регистрация: 22.10.2011
Сообщений: 34,215
Записей в блоге: 6
24.04.2014, 10:40 2
Что-то общее есть во всех этих компонентах? Название класса, например? Хотя бы Tag-и всем им можно выставить в одинаковое значение? Тогда можно будет просто циклом пройти по всем компонентам формы и занести всё, что имеет это значение тэга (или класс), в TObjectList...
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
24.04.2014, 11:11  [ТС] 3
Название одинаковое, только идет по возрастающей(компонент1,компонент2,...) и важно чтобы они в такой же последовательности и добавлялись. Tag-и можно поставить одинаковые. Если не затруднит, пример цикла
0
1403 / 566 / 127
Регистрация: 31.10.2011
Сообщений: 1,955
24.04.2014, 11:48 4
C++
1
2
3
4
5
6
7
8
 TObjectList* list = new TObjectList();
 
 for(int i=0; i<ComponentCount; i++)
  if(Components[i]->Tag==777) list->Add(Components[i]);
 
 //ShowMessage(list->Count);
 
 delete list;
1
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
24.04.2014, 12:11  [ТС] 5
Всем спасибо
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29826 / 19632 / 7683
Регистрация: 22.10.2011
Сообщений: 34,215
Записей в блоге: 6
24.04.2014, 17:22 6
Лучший ответ Сообщение было отмечено codeok как решение

Решение

Если
Цитата Сообщение от codeok Посмотреть сообщение
важно чтобы они в такой же последовательности и добавлялись
- то приведенный выше цикл не пойдет. Ибо он будет перечислять компоненты в порядке добавления на форму, а не в порядке нумерации. То есть, если я положу 4 кнопки, потом Button3 удалю, и положу еще две - то кнопки будут занесены в ObjectList вот в таком порядке: Button1, Button2, Button4, Button3, Button5... Чтобы порядок был строго таким: Button1, Button2, Button3, Button4, Button5 - нужно переписать цикл:
C++
1
2
3
4
5
6
7
8
    int i = 1;
    TComponent *p;
    do
    {
        p = FindComponent(String().sprintf(L"Button%d", i++));
        if(p) list->Add(p);
 
    } while(p);
0
Эксперт С++
8292 / 6047 / 601
Регистрация: 10.12.2010
Сообщений: 28,132
Записей в блоге: 26
25.04.2014, 02:14 7
Вот вечно вы через одно место решаете задачи...
Почему не создавать такое количество компонент динамически и сразу их помещать в cписок ?

C++
1
2
3
4
5
6
7
8
for(int i=0; i<50; ++i)
{
  TButton ButtonX= new TButton(Form1);
  ButtonX->Parent= Form1;
  ButtonX->Name= "Button"+String(i);
  ButtonX->Top= (ButtonX->Width+1)*i; 
  List->Add(ButtonX);
}
0
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 52
25.04.2014, 13:45  [ТС] 8
Avazart, Это по неопотности наверное
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2014, 13:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Добавление элемента в TObjectList
Доброе утро всем! Решил потыкать TObjectList и столкнулся с небольшой проблемкой - не могу...

Можно ли в TObjectList добавлять TObjectList-ы?
Подскажите в TObjectList можно добовлть TObjectList-ы

Добавление компонентов.
доброго времени суток, если вам не составит труда, попробовать скомпилировать эти исходники ...

Динамическое добавление компонентов на форму
Здравствуйте! Подскажите пожалуйста: Есть Фрэйм, на котором неизменяемые панели сверху и снизу, а...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.