Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];
ВнизДинамическое создание компонентов. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c