MDI Anwendung
-
Einen wunderschönen guten Morgen,
ich habe eine Frage zu dem vielleicht leidigen Thema MDI Anwendung.
In der FAQ und über die Sichfunktion konnte ich leider nichts finden.
Frage:
Ist es eigentlich nicht möglich, in einem Projekt mit mehreren Formularen, ein Formular als MDIForm zu definieren, welches aber nicht das Hauptformular ist ?Also ich versuche ein Programm zu erstellen, in dem noch ein kleiner Texteditor integriert ist. Dieser kann vom Programm aus aufgerufen werden. Ich habe somit einfach ein neues Formular dem bestehenden Projekt hinzugefügt und wollte dieses als MDI Anwendung verwenden.
Weiss jemand vielleicht, wie ich das Problem lösen könnte.
DANKE euch schon mal im Voraus
-
Original erstellt von maam:
Ist es eigentlich nicht möglich, in einem Projekt mit mehreren Formularen, ein Formular als MDIForm zu definieren, welches aber nicht das Hauptformular ist ?Ja, es ist nicht möglich. Denn MDI und Dialogfeldbasierende Anwendungen sind zwei grund verschiedene Konzepte.
-junix
-
Das ist mir auch klar,
ich hätte ja auch einen eigene Anwendung für diesen Texteditor geschrieben und diese dann in meinem Projekt aufgerufen, aber leider muss ich im Texteditor auch noch auf Daten meines bestehenden Projektes zugreifen.
Wenn ich dich also richtig verstehen, ist es nicht möglich in einer Anwendung ein bestimmtes Fenster(welches nicht das Hauptfenster ist) als MDIForm zu definieren und in diesem Fenster dann MDIChild´s aufzurufen.
-
Wenn ich dich also richtig verstehen, ist es nicht möglich in einer Anwendung ein bestimmtes Fenster(welches nicht das Hauptfenster ist) als MDIForm zu definieren und in diesem Fenster dann MDIChild´s aufzurufen.
Doch, das müsste auf jeden Fall möglich sein.
-
Tja, danke für die Hilfe,
ich habe dies aber bereits getestet, ohne Erfolg leider.
Da ich die MDIChild´s dynamisch erzeuge erhalte ich, während der Laufzeit nur die Fehlermeldung:
"Formular kann nicht erstellt werden. Zur Zeit sind keine MDI- Formulare Aktiv"obwohl das als MDIForm definierte Fenster bereits aufgerufen ist. Also ich sehe den Hintergrund des Texteditors. Nur die Eingabefenster werden nicht erstellt.
Warum geht das nicht ?
-
Zeig mal den Code zur Erstellung?
-junix
-
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->Show(); // Aufruf des Texteditors
}//-----------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
TForm *Child = new TForm(Application); //Erzeugen eines neuen MDIChild
Child->SetBounds(10,10,400,400);
Child->Parent = Form2;
Child->FormStyle = fsMDIChild;
Child->Show();
}
//---------------------------------------------------------------------------Form1 ist mein Hauptfenster,
From2 ist mein Texteditor, in dem ich dann per Button1Click MDIChild´s erzeugen möchte.
-
Nimm statt Application mal das MDIParent-Form als owner
-junix
-
void __fastcall TForm2::Button1Click(TObject *Sender)
{
TForm *Child = new TForm(Form2);
Child->SetBounds(10,10,400,400);
Child->Parent = Form2;
Child->FormStyle = fsMDIChild;
Child->Show();
}
//---------------------------------------------------------------------------Leider konnte ich auch mit diese Änderung nichts bewirken.
Die Fehlermeldung ist immer noch da und ein MDIChild wird auch nicht erzeugt
-
Ich glaube das ist, wie Junix anfangs sagte:
'Ja, es ist nicht möglich. '
In einer MDI- Anwendung muss wahrscheinlich das Hauptfenster eins mit Style= fsMDIForm sein! Also Form2 bei Dir.