![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
В общем вопрос такой:
как создавать неограниченное количество объектов программно, например edit, label, вкалдки....? Последний раз редактировалось Admin, 04.05.2009 в 15:58. |
|
#2
|
|||
|
|||
|
Путем вызова конструктора нужного класса. Например, создаем 100 лаблов:
Код:
var
I : Integer;
begin
For I := 1 To 100 Do
With TLabel.Create(Self) Do
Begin
Parent := Self;
Top := I * 10;
Left := 100
Caption := 'label' + IntToStr(I);
End;
end; |
|
#3
|
||||
|
||||
|
Сапсибо за быструю помощь, вопрос исчерпан
|
|
#4
|
||||
|
||||
|
Не прошло и года....))))
А как мне теперь обратиться например к созданному таким образом label, например: Код:
***
var
I : Integer;
s:string;
begin
For I := 1 To 100 Do
With TLabel.Create(Self) Do
Begin
Parent := Self;
Top := I * 10;
Left := 100
Caption := 'label' + IntToStr(I);
End;
***
s:=label[i].caption;//как это правильно прописать
end;
*** |
|
#5
|
||||
|
||||
|
Про обращение никто не говорил в начале темы
![]() В этом случае уже нельзя так создавать элементы. Придется сначала определить массив для классовых переменных а уже потом создавать: Код:
var
I : Integer;
s:string;
Labels: Array[1..100] of TLabel;
begin
For I := 1 To 100
Do begin
Labels[i] := TLabel.Create(Self)
With Labels[i]
Do Begin
Parent := Self;
Top := I * 10;
Left := 100
Caption := 'label' + IntToStr(I);
End;
end;
***
s:=labels[i].caption;//как это правильно прописать
end; |
|
#6
|
||||
|
||||
|
Страдалецъ, спасибо!
Год назад были необходимы другие цели, а так решил уж темы не плодить. |
|
#7
|
||||
|
||||
|
Упс! Даже не обратил внимание на дату первого поста.
![]() |