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-Anwendung (https://www.delphipraxis.net/56303-mdi-anwendung.html)

fredi 3. Nov 2005 14:48


MDI-Anwendung
 
ich möchte folgende Konstruktion: Hauptwindow-->MDIWindow-->Childwindow. Geht das?



ich habe folgendes gemacht:
Hauptformular ist schon aktiv nun,
erstelle ich aus einem Hauptformular heraus ein MDI Formular:

if not IsFormOpen('Form2') then
begin
Form2 := TForm2.Create(Self);
Form2.FormStyle := fsMDIForm;
Form2.Show;
end;

das geht ja noch ganz gut und sehe auch das MDIFormular.

Nun möchte ich vom neu erstellten MDIFormular aus mit einem Button beliebig viele ChildWindows erzeugen:

zB. so:
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
if Form2.Visible then
Form2.CreateMDIChild('Auftr_12345');
end;


procedure TForm2.CreateMDIChild(const Name: string);
var
Child: TForm3;
begin
Child := TForm3.Create(Application);
Child.Caption := Name;
end;

wenn ich das mache, bekomme ich folgende Fehlermeldung:
Exception der Klasse EInvalidOperation aufgetreten.
Meldung: Formular kann nicht erstellt werden, zur sind keine MDI-Formulare aktiv!

Warum kennt er das MDI-Formular nicht!
Hat jemand eine Idee?

fredi

Jelly 3. Nov 2005 15:14

Re: MDI-Anwendung
 
Statt mit
Delphi-Quellcode:
Form2 := TForm2.Create(Self);
dein MDI Form zu öffnen, nutze mal lieber folgenden Code:
Delphi-Quellcode:
with TForm2.create (Self) do begin
   Show ;
end ;

Eisenherz 3. Nov 2005 15:17

Re: MDI-Anwendung
 
Zitat:

Zitat von fredi
Warum kennt er das MDI-Formular nicht!
Hat jemand eine Idee?

Die VCL ist so programmiert, dass es nur ein MDI-Formular geben kann und das muss das Hauptfenster sein.
Das kann man natürlich auch umgehen. Das ist aber dann sehr aufwändig.

fredi 3. Nov 2005 16:20

Re: MDI-Anwendung
 
habe inziwischen über das ganze noch einmal nachgedacht und bin zu der Überlegung gekommen, dass ich das ganze mit Frames machen sollte. Ich habe inwischen schon nach im WWW Musterbeispielen gesucht aber nichts gefunden.
Die Delphi Hilfe ist ja nicht wirklich Aussagefähig.

Wo kann ich dazu was finden.
Bitte um ein paar Infos wie ich ein Frame als eigenes Window aus einem anderen Window heraus aufmachen kann.

fredi


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 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