Главная страница
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.051 c
3-1129419653
Postal
2005-10-16 03:40
2005.11.27
Каскадное удаление


2-1131363541
root
2005-11-07 14:39
2005.11.27
ADO


14-1131316468
Mirror
2005-11-07 01:34
2005.11.27
Подскажите компонент


3-1129387970
Павел
2005-10-15 18:52
2005.11.27
Ошибка при использовании UDF


4-1127473166
Still Swamp
2005-09-23 14:59
2005.11.27
keybd_event и GetKeyStatus отказываются работать в терминальном