Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Fehler beim Aufrufen einer MDI Form (https://www.delphipraxis.net/107384-fehler-beim-aufrufen-einer-mdi-form.html)

d1ng0d0gt0r 26. Jan 2008 21:13


Fehler beim Aufrufen einer MDI Form
 
Tach,

Ich versuche eine MDI-Form zu erstellen mit verschiedenen MDI-Child Formen.

Folgenden Code verwende ich um die MDI-Form aufzurufen. (das Ganze ist so kompliziert weil ich die Form mehrfach aufrufen möchte):
Delphi-Quellcode:
//......
  public
    { Public-Deklarationen }
    aDrawForm: Array of TfrmConnection;
//.....

procedure TfrmMain.OpenForm();
begin
      SetLength(aDrawForm,Length(aDrawForm)+1);
      aDrawForm[Length(aDrawForm)-1] := TfrmConnection.Create(Application);

      aDrawForm[Length(aDrawForm)-1].Show;
      aDrawForm[Length(aDrawForm)-1].MyFormID:=Length(aDrawForm)-1;
      aDrawForm[Length(aDrawForm)-1].frmTest:=aDrawForm[Length(aDrawForm)-1];
end;
Die MDI-Child Form rufe ich nach dem selben Prinzip auf:
Delphi-Quellcode:
//......
frmTest2: TfrmTest2;
//......
  frmTest2:= TfrmTest2.Create(Application);
  frmTest2.Show;
Immer wenn ich versuche eine MDI-Child Form zu laden kommt folgender Fehler:
Zitat:

Erste Gelegenheit für Exception bei $76853843. Exception-Klasse EInvalidOperation mit Meldung 'Formular kann nicht erstellt werden. Zur Zeit sind keine MDI-Formulare aktiv'. Prozess Client.exe (3460)
Gruß d1ng0

Nuclear-Ping 26. Jan 2008 21:18

Re: Fehler beim Aufrufen einer MDI Form
 
Fehlermeldung steht doch da:
Zitat:

Formular kann nicht erstellt werden. Zur Zeit sind keine MDI-Formulare aktiv
Dh, dass du deiner Hauptform noch sagen mußt, dass sie eine MDI-Form ist.

d1ng0d0gt0r 26. Jan 2008 22:15

Re: Fehler beim Aufrufen einer MDI Form
 
Das Problem ist ja das die Form (frmTest) aus der heraus das MDI-Child (frmTest2) aus aufgerufen wird, als MDI-Form deklariert ist.
Deshalb versteh ich die Meldung auch nicht.

d1ng0d0gt0r 27. Jan 2008 12:26

Re: Fehler beim Aufrufen einer MDI Form
 
Ok, das Problem ist scheinbar folgendes, ich habe folgende Forms:

Form1: fsNormal
Form2: fsMDIForm
Form3: fsMDIChild

Aus der Form1 heraus rufe ich die Form2 auf, was meine eigendliche fsMDIForm ist, aus dieser Form wiederum (Form2) will ich jetzt das fsMDIChild (Form3) aufrufen, wobei er mir den o.g Fehler bringt.
Scheinbar versucht er das fsMDIChild (Form3) in Form1 zu erstellen anstatt wie gewollt in Form2 (fsMDIForm), das dann ein Error kommt ist klar.

Wie kann ich das ändern??

Nuclear-Ping 27. Jan 2008 12:52

Re: Fehler beim Aufrufen einer MDI Form
 
Form1 muss fsMDIForm sein.

d1ng0d0gt0r 27. Jan 2008 13:16

Re: Fehler beim Aufrufen einer MDI Form
 
Nein dann würde er das MDIChild (Form3) in Form1 anzeigen und nicht wie gewollt in Form2.

Nuclear-Ping 27. Jan 2008 17:10

Re: Fehler beim Aufrufen einer MDI Form
 
Anders gehts afaik aber nicht, da das Hauptformular (das was zuerst im Projekt erzeugt wird), das MDI-Formular sein muss.

Überdenke dein Konzept. ;)

d1ng0d0gt0r 27. Jan 2008 20:56

Re: Fehler beim Aufrufen einer MDI Form
 
Das MDI Formular muss aber Mehrfach geladen werden können.
Geht nicht gibts nicht.

Es muss eine Lösung geben.

http://www.delphipraxis.net/internal...&highlight=mdi im dritten Beitrag sagt er das es machbar ist, weiß jmd. wie?

Nuclear-Ping 28. Jan 2008 19:08

Re: Fehler beim Aufrufen einer MDI Form
 
Er sagt, dass es sehr aufwändig ist, dieses Konzept der VCL umgehen. Ergo: Fängt man mit unsauberen Hacks an, die wahrscheinlich am Application-Objekt irgendwas rumbiegen und nur Fehleranfällig sind. :nerd:

Wenn du mehrere MDI-Formulare brauchst, warum legst du diese nicht als externe Anwendung ab, die du dann einfach gewünscht startest?

d1ng0d0gt0r 30. Jan 2008 18:59

Re: Fehler beim Aufrufen einer MDI Form
 
Weil ich Sockets verwende und nicht wüsste wie ich aus den MDI Forms heraus mit dem Socket in der Hauptanwendung komunizieren sollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Seite 1 von 2  1 2      

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