Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическая память [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
>

Именно послепоказа формы?


Наверх

Титульная страница Поиск, карта сайта Написать письмо