Помощь - Поиск - Пользователи - Календарь
Полная версия: Программно создать объект
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Артемий
Как при запуске программы создать n кол-во lаbel'ов на форме с заданными координатами?Заранее благодарен.(не догоню как им имена дать)
volvo
  SetLength(lbls, 10);
for i := 0 to 9 do begin
lbls[i] := TLabel.Create(self);
lbls[i].Parent := Form1;
lbls[i].Name := Format('Label%0d', [i]); // <--- Вот так
lbls[i].Left := 50;
lbls[i].Top := 20 * i;
lbls[i].Caption := 'Label #' + inttostr(i);
lbls[i].Show;
end;
Артемий
Спасиибо!А lbls это массив Tlabel?А как обращаться к объектам через имя готовое,или через массив?
volvo
Ну, можно через массив (это я для простоты сделал, чтоб показать как имя задается), а можно вообще без массива обойтись:

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
lbl: TLabel;
begin
for i := 0 to 9 do begin
lbl := TLabel.Create(self);
lbl.Parent := Form1;
lbl.Name := Format('Label%d', [i]);
lbl.Left := 50;
lbl.Top := 20 * i;
lbl.Caption := 'Label #' + inttostr(i);
lbl.Show;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
(FindComponent('Label2') as TLabel).Caption := 'New Label';
end;

Артемий
Спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.