Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2007, 08:37   #1
satana
Пользователь
 
Регистрация: 16.07.2007
Сообщений: 31
По умолчанию Обращение к компонентам из цикла

Такая задача, есть массив длинной N, и N компонентов TEdit
Каким либо образом можно пройтись в цикле по всем TEdit и занести в text значение из массива?
К примеру

Edit1.text := array[1];
Edit2.text := array[2];
Edit3.text := array[3];
satana вне форума Ответить с цитированием
Старый 16.07.2007, 08:44   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
var i: Integer;
begin
  for i := 0 to ComponentCount - 1 do
    if (Components[i] is TEdit) then
      (Components[i] as TEdit).Text := 'Пиши что угодно';
end;
_SERGEYX_ вне форума Ответить с цитированием
Старый 16.07.2007, 10:19   #3
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Делай проще. Осуществляй поиск Едитов по именам:
Код:
var
a:array[1..N]of TEdit;
....
for i:=1 to N do
 a[i]:= Form1.FindComponent('Edit00'+inttostr(i)) as TEdit;
В этом примере Editы имеют имена Edit001, Edit002..., т.е. названы так специально, чтобы использовать в массиве.

Вызов свойств идет так:
Код:
a[i].Text:='Текст';
А для занесения свойства "текст" создай еще один массив.
Код:
 
var 
B:array[1..N] of string;
....
for i:=1 to N do
    B[i]:=A[i].Text;

Последний раз редактировалось Alex21; 16.07.2007 в 12:21.
Alex21 вне форума Ответить с цитированием
Старый 16.07.2007, 11:42   #4
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
Сообщение

а не проще ли создавать TEdit`ы динамически? задать в начале

Код:
 
var
  EditS: array [1..N] of TEdit
и потом создавать их в OnFormCreate
Тогда к ним без проблем можно по индексам обращаться - например EditS[5]:= etc.
вроде так можно..
ввел пароль, который мне не известен

Последний раз редактировалось itisiam; 16.07.2007 в 11:55.
itisiam вне форума Ответить с цитированием
Старый 16.07.2007, 12:16   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
var EditS: array [1..N] of TEdit
Но в таком случае нужно прописывать родителя, left, top и т.п. А в конце free... Лишние проблемы.
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к фаилу Devourer12345 Microsoft Office Excel 8 23.07.2008 11:38
Обращение Акашаев Нурлан Общие вопросы Delphi 5 26.06.2008 16:02
Присвоение процедур компонентам N!ckeL Компоненты Delphi 4 26.04.2008 18:22
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10