Главная страница
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.019 c
1-23097
Leviathan
2003-04-26 21:22
2003.05.08
Помогите с Паскалем!


7-23404
Lili
2003-03-17 09:29
2003.05.08
COM порт в Win2k. Help!!!


1-23143
Альф
2003-04-24 10:53
2003.05.08
Как вычислить высоту ТЕКСТА в TMemo ?


3-23005
Ihtiandr
2003-04-17 11:00
2003.05.08
lock


14-23373
AAC
2003-04-21 16:55
2003.05.08
Компонент распаковка