![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Abrek |
|
|||
|
Unregistered |
Извините за потенциально ламерский вопрос, но обстоятельства вынуждают.
Пишу под Borland Builder5. Допустим у меня на форме 10 компонентов TEdit: Edit1, Edit2,.....Edit10. Можно ли совершать как-то преобразования с ними в цикле? Надеюсь будет понятно: fot(i=1;i<10;i++) { Edit(i).Text="666"; } Как это организовать по-настаящему? |
|||
|
||||
| Borisff2003 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 198 Регистрация: 26.2.2004 Где: г. Уфа Репутация: 1 Всего: 1 |
и надеемся что едиты это действительно эдиты Это сообщение отредактировал(а) Borisff2003 - 1.4.2004, 14:24 --------------------
Лень, двигатель прогресса |
|||
|
||||
| Abrek |
|
|||
|
Unregistered |
Огромное пасибо!
|
|||
|
||||
| DenDen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 25.3.2004 Репутация: нет Всего: нет |
Вообще говоря, имеются еще 2 банальных пути, не требующие, однако, просмотра ысех компонентов и кастов(вообще, утверждается что cast'ы довольно длительная операция).
Путь 1) объявления массива ( void**) и вручную присваевание разным едитам разных указателей. // something .... // void** my_mas; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { my_mas=(void*)malloc(40); my_mas[0]=(void*)Edit1; my_mas[1]=(void*)Edit2; my_mas[2]=(void*)Edit3; my_mas[3]=(void*)Edit4; my_mas[4]=(void*)Edit5; my_mas[5]=(void*)Edit6; my_mas[6]=(void*)Edit7; my_mas[7]=(void*)Edit8; my_mas[8]=(void*)Edit9; my_mas[9]=(void*)Edit10; } void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i=0;i<10;i++) ((TEdit*)my_mas[i])->Text="Hello World"; } ////something Способ 2) Применяется, когда Едиты(много) или другие компоненты(еще больше) располагаются в вполне определенном порядке(например в колонку). В этом случае их лучше создавать динамически: //something TEdit** Ed; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Ed=new TEdit*[10]; int Top=something_1; int Height=something_2; int Left=something_3; for(int i=0;i<10;i++) { Ed[i]=new TEdit(this); Ed[i]->Parent=this; Ed[i]->Left=Left; Ed[i]->Top=Top; Ed[i]->Height=Height; Top+=Height; } } void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i=0;i<10;i++) Ed[i]->Text="Hello Wrld"; } |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
Только зачем тип void*? Проще объявить массив типа TEdit* тогда никаких cast'ов вообще не надо -------------------- Да. Именно так. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |