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

Вниз

Обращение к динамически созданной метке   Найти похожие ветки 

 
Fr3nch   (2005-11-12 16:37) [0]

Помогите решить:
Создаю метки следующим образом

for i := 1 to Z do
begin
l := TLabel.Create(self);
l.Parent := form1;
l.Top := random(500);
l.Left := random(500);
l.Caption := "LABEL";
l.Transparent := true;
l.Name := "label" + inttostr(i);
end;


Вопрос: как обращаться к этой метке, например, labelZ.caption := "...";


 
stdctrls   (2005-11-12 17:37) [1]

uses  stdctrls;

VAR B, B1: TLabel; cl: TNotifyEvent;

procedure TForm1.FormCreate(Sender: TObject);
begin
 B := TLabel.create(self);
 B1 := TLabel.create(self);
 B.parent := self;
 B.top := 50; B.left := 50;
 b.Caption := "--B--";
 B1.parent := self;
 B1.top := 10; B1.left := 10;
 B1.Caption := "--++B1++--";
end;


 
SergP.   (2005-11-12 17:40) [2]


> Вопрос: как обращаться к этой метке, например, labelZ.caption
> := "...";


А зачем же ты тогда теряешь указатели,  если хочешь обращаться ко всем лейбам? У тебя же остается только указатель на последнюю метку...

После этого остается только искать по имени через FindComponent.

Лучше сохрани указатели в массив.


var
l:array of TLabel;

...

setlength(l,z);
for i := 0 to Z-1 do
begin
l[i] := TLabel.Create(self);
l[i].Parent := form1;
l[i].Top := random(500);
l[i].Left := random(500);
l[i].Caption := "LABEL";
l[i].Transparent := true;
l[i].Name := "label" + inttostr(i);
end;



После этого можешь обращаться к любой метке так например:

l[2].caption:="это одна метка";
l[8].caption:="это совсем другая метка";
...


 
StdCtrls   (2005-11-12 17:41) [3]

uses StdCtrls ;
var B: array[0..99] of TLabel;

procedure TForm1.FormCreate(Sender: TObject);
var i: word;
begin
 for i := 0 to 99 do
 begin
   B[i] := TLabel.create(self);
   with B[i] do
   begin
     parent := self;
     tag := i;
     width := 25;
     Height := 25;
     top := i div 10 * width;
     left := (i * Height) - ((i div 10) * Height * 10);
     Caption := "B" + inttostr(i);
   end;
 end;

 B[99].caption:="this is the label";

end;


 
Fr3nch   (2005-11-12 18:46) [4]

благодарю!



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
2-1131373422
Makxi
2005-11-07 17:23
2005.11.27
Service Application & Delphi 6,7


5-1112022648
JenekX
2005-03-28 19:10
2005.11.27
Сохранение свойств компонентов в файл


1-1130788940
Grol
2005-10-31 23:02
2005.11.27
Как ликвидировать выделенную память под компонент.


2-1131612167
iamkate
2005-11-10 11:42
2005.11.27
Сжатие файла


2-1131628633
Piero
2005-11-10 16:17
2005.11.27
Получить Handle запускаемого процесса