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

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

Управлять именем объекта в ходе выполнения программы [D6, XP]


Proxytel ©   (2007-02-27 09:15:00) 

Есть например 20 TImage. Необходимо управдять ими программно используя имя.

Например есть Image1, Image2, ... , Image20. Я хочу переберать их в цикле:
for i:=1 to 20 do
 Image{i}.Picture...

:)))
Что-то вроде этого...


Proxytel   (2007-02-27 09:53:00) [1]

Понял
Спасибо!


ЮЮ   (2007-02-27 09:47:00) [2]


> Управлять именем объекта в ходе выполнения программы


Лучше управляй объектом :)

Image1, Image2, ... , Image20 ни что иное, как ссылки на объекты TImage, созданные в IDE. Создать нужное количество можно и в RunTime, не кидая 20 раз компонент с палитры. В этом случае имя ему вообще ни к чему.

for i:=1 to 20 do
  Image [i].Picture...

т.е. Image это должен быть array of  TImage или массив ссылок на экземпляры TImage. Если сами экземпляры создает Delphi, т.е. это Image1, ... , Image20 созданные в IDE, то заполнить этот массив единожды как в [1]:
 for i:=1 to 20 do
   Image[i - 1] := TImage(FindComponent('Image'+IntToStr(i));

если создавать в RunTime, то, естественно,
   for i:=1 to 20 do begin
     Image[i - 1] := TImage.Create(...);
     ...
   end;

В обоих случаях, далее уже используешь Image[Index]


TRUNK   (2007-02-27 09:22:00) [3]

Что-то вроде этого:


for i:=1 to 20 do
 FindComponent('Image'+IntToStr(i)).Picture...


Наверх

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