![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Имя компонента как переменнная
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]что то у меня пример с вопросом не согласуется..
может уточнить вопрос?