Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.08;
Скачать: CL | DM;

Вниз

Динамическое создание компонентов.   Найти похожие ветки 

 
Manulo ©   (2003-04-24 14:20) [0]

К примеру есть код:


Procedure ....
var label1 : Tlabel;
Begin
Label1:=TLabel.Create (Self);
Label1.Parent:=Self;
.......
End;


Это всё работает чётко (приведено чисто для примера)

Вопрос: А есди я заранее не знаю точного имени создаваемого компонента (к примеру имя задаётся по маске "label"+SpinEdit1.Value;). Как быть?


 
icWasya ©   (2003-04-24 14:22) [1]

Может так??????
Label.Name:="Label"+IntToStr(SpinEdit1.Value);


 
KSergey ©   (2003-04-24 14:22) [2]

Не понятно при чем тут имя компонента. Уточните. Разве в примере где-то используется свойство .name?


 
Skier ©   (2003-04-24 14:23) [3]


> Как быть?

Проверить есть ли уже компонент с именем "label"+SpinEdit1.Value
у владельца - Self, если нет -Label1.Name:="label"+SpinEdit1.Value;




 
evvcom ©   (2003-04-24 14:24) [4]

А если у меня Labelxx переименованы в LabelFirst, LabelSecond, ..., то мне еще и функция IntToEnglishWord потребуется! Круто! А практический смысл этого есть?


 
Skier ©   (2003-04-24 14:24) [5]

IntToStr - это само собой...:)


 
Manulo ©   (2003-04-24 14:25) [6]


> KSergey © (24.04.03 14:22)
> Не понятно при чем тут имя компонента. Уточните. Разве в
> примере где-то используется свойство .name?

Label1 - Это и есть .name


> icWasya © (24.04.03 14:22)


> Skier © (24.04.03 14:23)

Спасибо


 
KSergey ©   (2003-04-24 14:31) [7]

Погодите, в смысле необходимо свойству name
присвоить значение "Label1", так?
Ведь в примере Label1 - это никак не имя. Это имя переменной, а никак не "имя создаваемого компонента".


 
jack128 ©   (2003-04-24 15:06) [8]

Manulo ©
Вы не так все понимаете -)

То что IDE называет в дизин тайм переменные-компаненты по их именам(свойствам Tcomponent.name) не имеет никакого значения!!!!
IDE так делает для нашего в вами удобства и не более.
С таким же успехом IDE для компонента с именем "Label1" могло назвать переменную например Button1 - от этого ничего бы не изменилось...


 
Proton ©   (2003-04-24 16:36) [9]

Давай я лучше приведу пример.

Procedure Button1click(...);
begin
with tlabel.create(self) do
begin
caption := "test";
parent := self;
top := 100;
left := 100;
name := "mylabel"
end;
end;

Procedure Button2click(...);
var lbl:tlabel;
begin
lbl := tlabel(findcomponent("mylabel"));
if lbl <> nil then
lbl.caption := "test1";
end;



 
KSergey ©   (2003-04-24 16:47) [10]

> Proton © (24.04.03 16:36)

И что? А как быть, если завтра понадобится еще один "лабел"?



Страницы: 1 вся ветка

Текущий архив: 2003.05.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
3-22967
denis24
2003-04-17 11:41
2003.05.08
ширина слобца в гриде


1-23209
Viktor1
2003-04-24 15:37
2003.05.08
Как в Edit1 выровнять текст по центру относительно верх-низ.


3-22997
Ruslan.
2003-04-16 19:44
2003.05.08
SQL запрос


1-23225
spac
2003-04-25 13:25
2003.05.08
edit


7-23407
[BAD]Angel
2003-03-16 21:08
2003.05.08
Как выключить комп?