![]() |
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:
Im Form1 zeig ich dann mein Form2 wie folgt mit Buttom1-drücken an:
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;
Delphi-Quellcode:
UND JETZT MEINE GROSSE FRAGE:
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.Show; Form2.Edit1.SetFocus end; 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:
Vielleich weiß jemand Rat?
procedure TForm1.Button1Click(Sender: TObject);
begin if Form2 = nil then Form2 := Form2.Create(Self); Form2.Show; Form2.Edit1.SetFocus end; 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 |
Re: MDI-Child simulieren
Konstruktoren werden, bis auf wenige Ausnahmen, an der Klasse aufgerufen.
Delphi-Quellcode:
Form2:=TForm2.Create;
|
Re: MDI-Child simulieren
:dancer: DANKE - Jetzt funkt's super - ich Idiot bin fast verzweifelt! :dancer2:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz