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

 
Цикл for для Edit, Не получается однако:(
Велес
Отправлено: 05.08.2003, 17:54


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

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



Здравствуйте ещё раз. Надеюсь, что за мои постоянные вопросы меня отсюда не попросят... smile.gif

А вот есть ли возможность придумать цикл for для объекта Edit?
Пример:

[CODE]for(i=1; i<=4; i++)
{
Edit[i]->Text"";
}

Вот так вот я попробовал, но не получается. Куда мне лыжи направить?

Заранее благодарен.
ekya
Отправлено: 05.08.2003, 18:04


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

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



Вот попробуй так

for(int i=0; iComponentCount; i++)
{
if(DM->Components[i]->ClassNameIs("TEdit"))
{
Edit=((TEdit*)(Form->Components[i]));
На а тут...
}
}
Георгий
Отправлено: 05.08.2003, 18:34


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

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



Надеюсь, что за мои постоянные вопросы меня отсюда не попросят
Расслабься чувак... Пивка попей... В аптеку сбегай, а потом к девкам... Если не поможет, то ******* выкури... (с) моя интерпретация цитаты из фильма "Анализируй это".

Наверное твой вопрос надо понимать так:
как получить доступ к обьектам типа TEdit, расположенных на заданной форме.
Ну так вот типа ответ:
CODE
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
Memo1->Lines->Add("найдены следующие контролы");
for (i=0;i<this->ControlCount;i++)
       {
       Memo1->Lines->Add(this->Controls[i]->Name);
       };
Memo1->Lines->Add("из них в TEdit* преобразовать можно следующие");
TEdit* ptrEdit;
AnsiString str;
for (i=0;i<this->ControlCount;i++)
       {
       ptrEdit=dynamic_cast<TEdit*>(this->Controls[i]);
       if (!ptrEdit)continue;
       str="";
       str+=ptrEdit->Name;
       str+=":";
       str+=ptrEdit->Text;
       Memo1->Lines->Add(str);
       };
}

Инструкция по применению — шмякай на форму TMemo, TButton и кучу TEdit, остальные компоненты добавить по вкусу. Потом щёлкай на первую TButton и у тебя в TMemo появится список названий всех элементов, а потом, методом дедуктивного анализа кода, выяви следующий кусок:
CODE
TEdit* ptrEdit;
...
ptrEdit=dynamic_cast<TEdit*>(this->Controls[i]);
if (!ptrEdit)continue;
...

вот тут все TEdit`ы и выявляются... Аналогично можно сделать и для любых других обьектов... И это всего лишь проявление RTTI.

Кстати как пишется слово ОБЬЕКТ или ОБЪЕКТ?
Young Coder
Отправлено: 05.08.2003, 21:37


Дежурный стрелочник

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



QUOTE (Георгий @ 05/08/2003, 19:36)
Кстати как пишется слово ОБЬЕКТ или ОБЪЕКТ?

ОБЪЕКТ.

smile.gif

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