![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическая память [2003]
akosh12345 © (2010-06-06 02:27:00)Как сделать, что бы динамически созданный элемент находился на форме, которая в свою очередь тоже была создана динамически
procedure TForm1.Button1Click(Sender: TObject);
var
i : TForm;
l : TLabel;
begin
i := TForm.Create(nil);
i.Parent := nil;
i.Show;
i.Position := poScreenCenter;
l := TLabel.Create(nil);
l.Parent := i.;
l.Left :=1;
l.Top := 1;
end;
Мне нужно что бы на форме был Label
Leonid Troyanovsky (2010-06-06 09:41:00) [1]
> Anatoly Podgoretsky © (06.06.10 09:29) [9]
> Вот и взяли на слабо :-)
Ни одно доброе дело не должно остаться безнаказанным :)
--
Regards, LVT.
Anatoly Podgoretsky (2010-06-06 09:29:00) [2]> Leonid Troyanovsky (06.06.2010 09:24:08) [8]
Вот и взяли на слабо :-)
Leonid Troyanovsky (2010-06-06 09:24:00) [3]
> Leonid Troyanovsky © (06.06.10 09:04) [7]
> Ну, сначала, хотел наследника, но поленился, sorry.
Исправляюсь:
type
TMyForm = class(TForm)
private
FLabel: TLabel;
protected
procedure DoClose (var action: TCloseAction); override;
public
constructor Create(AOwner: TComponent); override;
end;
procedure TMyForm.DoClose;
begin
inherited;
Action := caFree;
end;
constructor TMyForm.Create;
begin
CreateNew(AOwner);
Caption := 'MyForm';
Position := poScreenCenter;
FLabel := TLabel.Create(Self);
with FLabel do
begin
Caption := 'Label';
Parent := Self;
Left :=1;
Top := 1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with TMyForm.Create(nil) do
Show;
end;
--
Regards, LVT.
Leonid Troyanovsky (2010-06-06 09:04:00) [4]
> Anatoly Podgoretsky © (06.06.10 09:00) [6]
> объявленые переменные (L)
L уже нету, это i or 1, видимо.
> И будет ли еще цел TForm1, когда потребуется FormClose
Это неважно, метод уцелеет.
> Неаккуратно все как то.
Ну, сначала, хотел наследника, но поленился, sorry.
--
Regards, LVT.
Anatoly Podgoretsky (2010-06-06 09:00:00) [5]> Leonid Troyanovsky (06.06.2010 08:51:05) [5]
Ну нифига себе поправил, тут же появились, толи глобальные, толи не
объявленые переменные (L)
Тут начинат надо с имен.
И будет ли еще цел TForm1, когда потребуется FormClose
Неаккуратно все как то.
Leonid Troyanovsky (2010-06-06 08:51:00) [6]
> Anatoly Podgoretsky © (06.06.10 08:19) [4]
Поправлюсь :)
procedure TForm1.Button1Click(Sender: TObject);
var
i : TForm;
begin
i := TForm.CreateNew(nil);
i.OnClose := FormClose;
i.Position := poScreenCenter;
with TLabel.Create(i) do
begin
Caption := 'Label';
Parent := i;
Left :=1;
Top := 1;
end;
i.Show;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
--
Regards, LVT.
Anatoly Podgoretsky (2010-06-06 08:19:00) [7]> akosh12345 (06.06.2010 02:27:00) [0]
Не понимаешь что творишь, это же бред.
Тебе не стоит этим заниматься.
Leonid Troyanovsky (2010-06-06 08:16:00) [8]
procedure TForm1.Button1Click(Sender: TObject);
var
i : TForm;
l : TLabel;
begin
i := TForm.CreateNew(nil);
i.Parent := nil;
i.Show;
i.Position := poScreenCenter;
l := TLabel.Create(nil);
l.Caption := 'Label';
l.Parent := i;
l.Left :=1;
l.Top := 1;
end;
--
Regards, LVT.
Германн (2010-06-06 02:50:00) [9]Сам сабж, кстати, не имеет никакого отношения к вопросу в нём.
Германн (2010-06-06 02:47:00) [10]
> Мне нужно что бы на форме был Label
>
Именно послепоказа формы?