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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2012, 15:51   #1
Marikka
 
Регистрация: 08.06.2012
Сообщений: 7
По умолчанию Цикл в Delphi

Добрый день! Подскажите пожалуйста, есть следующий код:
F[1]:=Edit2.Text;
F[2]:=Edit4.Text;
F[3]:=Edit5.Text;
...
F[100]:=Edit62.Text;
где F - массив из ста элементов строчного типа.
Как можно записать этот фрагмент кода в цикл?
У меня получается записать лишь так, что все элементы массива от F[1] до F[100] содержат одно и то же значение из последнего edit.
Marikka вне форума Ответить с цитированием
Старый 08.06.2012, 16:03   #2
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 150
По умолчанию

Несколько не понял...

> F[100]:=Edit62.Text;

А почему Edit62?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 08.06.2012, 16:05   #3
Marikka
 
Регистрация: 08.06.2012
Сообщений: 7
По умолчанию

Ну вот так вот по дурацкому написан код)))
F[100]:=Edit62.Text
F[50]:=Edit105.Text
и все в таком духе
Marikka вне форума Ответить с цитированием
Старый 08.06.2012, 16:17   #4
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 150
По умолчанию

Тогда каким образом тут можно прикрутить цикл? Было бы упорядочено - никаких проблем, а так - только руками, к сожалению. Хотя возможно, я не всё знаю, и где-то в коде прописано отношение едитов к индексам массива
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 08.06.2012, 16:27   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

если каждому едиту назначить tag = индекс в массиве, то можно обойтись так:
Код:
  for i := 0 to ControlCount - 1 do
    if (Controls[i] is TEdit) then
      F[TEdit(Controls[i]).Tag] := TEdit(Controls[i]).Text;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.06.2012, 16:27   #6
Marikka
 
Регистрация: 08.06.2012
Сообщений: 7
По умолчанию

А если было бы упорядочено, допустим
F[1]:=Edit1.Text;
F[2]:=Edit2.Text;
F[3]:=Edit3.Text;
то как сделать цикл? что-то у меня все равно все элементы массива содержат одно и то же значение из последнего edit.
Marikka вне форума Ответить с цитированием
Старый 08.06.2012, 16:48   #7
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 150
По умолчанию

Цитата:
А если было бы упорядочено, допустим
F[1]:=Edit1.Text;
F[2]:=Edit2.Text;
F[3]:=Edit3.Text;
то как сделать цикл? что-то у меня все равно все элементы массива содержат одно и то же значение из последнего edit.
Ну, например - так:

Код:
var E: TEdit; X: Integer
begin
   for X := 1 to 100 do begin
      E := FindComponent('Edit'+IntToStgr(X));
      if E <> nil then F[X] := E.Text;
   end;
end;
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 08.06.2012, 17:04   #8
Marikka
 
Регистрация: 08.06.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
если каждому едиту назначить tag = индекс в массиве, то можно обойтись так:
Код:
  for i := 0 to ControlCount - 1 do
    if (Controls[i] is TEdit) then
      F[TEdit(Controls[i]).Tag] := TEdit(Controls[i]).Text;
Спасибо большое, все получилось)))
Marikka вне форума Ответить с цитированием
Старый 08.06.2012, 17:05   #9
Marikka
 
Регистрация: 08.06.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от ych_del Посмотреть сообщение
Ну, например - так:

Код:
var E: TEdit; X: Integer
begin
   for X := 1 to 100 do begin
      E := FindComponent('Edit'+IntToStgr(X));
      if E <> nil then F[X] := E.Text;
   end;
end;
взяла на заметку)))
Marikka вне форума Ответить с цитированием
Старый 08.06.2012, 19:19   #10
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 150
По умолчанию

Цитата:
взяла на заметку)))
Значок "Добавить отзыв" - слева от сообщения (:
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл for в Delphi AlexandЯ Помощь студентам 8 18.11.2011 08:12
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34