Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MDI-Child simulieren (https://www.delphipraxis.net/102481-mdi-child-simulieren.html)

meiner einer 29. Okt 2007 19:41


MDI-Child simulieren
 
Hallo,

ich hab ein Panel1 auf meinem Form1. Ein Form2 soll sich nur innerhalb dieses Panel1 bewegen dürfen. Das funktioniert wie noch ganz gut:

Delphi-Quellcode:
type
  TForm2 = class(TForm)
   public
    procedure CreateParams(var Params: TCreateParams); override;
  end;

...

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do begin
    Style := Style or WS_CHILD;
    WndParent := Form1.Panel1.Handle;
  end;
end;
Im Form1 zeig ich dann mein Form2 wie folgt mit Buttom1-drücken an:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
     Form2.Show;
    Form2.Edit1.SetFocus
end;
UND JETZT MEINE GROSSE FRAGE:
Das ganze geht nur wenn ich Form1 und Form2 unter Format/Optionen beide automatisch erzeugen lasse. Jetzt möchte ich aber Form2 nich automatisch erzeugen lassen, sondern stell es in die Spalte "verfügbare Formulare", möchte es erst zur Laufzeit erzeugen und das geht nicht - der folgende Code erzeugt einen Fehler - Warum???

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
    if Form2 = nil then Form2 := Form2.Create(Self);
    Form2.Show;
    Form2.Edit1.SetFocus
end;
Vielleich weiß jemand Rat?

Ich möchte in einer Komponente, hier z. B. das Panel1 verschiedenste Forms darstellen können und wieder zerstören, gegebenfalls aber wieder aufrufen können. Sie sollen nicht unnötig den Arbeitsspeicher füllen, wärend ein anderes gerade angezeig wird.

Danke
Martin

Apollonius 29. Okt 2007 19:44

Re: MDI-Child simulieren
 
Konstruktoren werden, bis auf wenige Ausnahmen, an der Klasse aufgerufen.
Delphi-Quellcode:
Form2:=TForm2.Create;

meiner einer 29. Okt 2007 19:47

Re: MDI-Child simulieren
 
:dancer: DANKE - Jetzt funkt's super - ich Idiot bin fast verzweifelt! :dancer2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz