Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обращаться к однотипным компонентам по их номерам? [D5, Win2k]


Максимка ©   (2002-02-02 14:11:00) 

Вопрос у меня скорее умозрительный: например, имеются компоненты, скажем, TEdit в количестве 30 штук (TEdit1, TEdit2,...,TEdit30). И предположим, я хочу содержание их полей ввода перенести в массив. Как это сделать, не перебирая их всех по одному, а обращаясь в цикле по номеру ?


Anatoly Podgoretsky   (2002-02-02 16:35:00) [1]

FindComponent("TEdit"+IntToStr(I)) вернет то что нужно, без сканировния массива Components и использования свойства Tag ,со всеми вытекающими из этого последствиями


Vovchik   (2002-02-02 15:19:00) [2]

Я щас не на своём компе и скоро свалю. Поэтому пиши мыло.
А что подробнее? Ну, типа:

procedure TForm1.ChegoToDelay(Sender:TObject);
var
MyArray:array[0..29] of integer;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TEdit then
MyArray[Components[i].Tag]:=StrToInt(TEdit(Components[i]).Text);
end;
end;

Не пойдёт такое?


Максимка   (2002-02-02 15:13:00) [3]

Хотелось бы также узнать об этом поподробнее.


Vovchik   (2002-02-02 14:15:00) [4]

Можно использовать св-во Components[i] у владельца, а у твоих едитов сделать св-ва Tag от 0 до чего-то.


Наверх

Титульная страница Поиск, карта сайта Написать письмо