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

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

Имя компонента как переменнная


VlNek ©   (2002-04-11 08:58:00) 

Есть ли возможность свойству Name компонента присваивать значение переменной. Пример:

Var a:integer;
begin
a:=3;
image(a).Left:=18;
end;


Андрей Сенченко   (2002-04-11 12:21:00) [1]

Вопрос, я так полагаю состоит в том, как создать в Run-time произвольное количество объектов.
К примеру где-то видел такой вопрос : "Как сделать чтобы было нужное (любое) количество окошек как в аське"


Anatoly Podgoretsky   (2002-04-11 11:25:00) [2]

Нет проблем IntToStr
Но имел он ввиду другое, интерпритатор


Song   (2002-04-11 11:15:00) [3]

Анатолий, нн имел ввиду численную переменную.


Anatoly Podgoretsky   (2002-04-11 11:09:00) [4]

Можно, Component.Name := StrVar;


MBo   (2002-04-11 09:25:00) [5]

это имелось в виду?
TImage(findcomponent("Image"+Inttostr(a))).left:=18;


Song   (2002-04-11 09:23:00) [6]

Нет, нельзя.
Вы можете либо создавать класс в run-time и запихать в массив, например:

Var Arr: array [1..10] of TBitMap;

Arr[1]:=TBitMap.Create;
...
И дальше обращаться по номеру ячейки массива.

Либо искать компонент через FindComponent, например (Вам нужно что-то сделать с Image2, тогда):
n:=2;
TImage(FindComponent("Image"+IntToStr(n))).Left:=...;
Только нужно иметь ввиду, что данный компонент должен быть, потому что в приведённом выше примере проверка на nil не выполняется. Если он (компонент) может и не быть, тогда нужно либо проверять на nil, либо поместить вышеупомянутую команду в состав исключения.


Ra   (2002-04-11 09:16:00) [7]

что то у меня пример с вопросом не согласуется..
может уточнить вопрос?


Наверх

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