Einzelnen Beitrag anzeigen

Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#10

Re: Verständnisfrage zu MDI: Kindfenster im Menü eintragen

  Alt 2. Mai 2010, 20:24
Zitat von FrankJ28:
Hallo,
ist ganz einfach...
Ciao
Frank
Ja, im Prinzip schon...
Also, jetzt habe ich auch lagsam hinbekommen -- naja, fast.
(Ich hatte einfach nicht geblickt, dass mit TMenuItem ein Hauptmenü und kein Submenü gemeint ist, und das man das tatsächlich im Objekt-Inspektor der MDI-Eltern-From eintragen kann.)
Soweit also ok: Wenn ich ein MDI-Kind-Form erzeuge, wird dies brav in dem Menü verzeichnet.
ABER: Wenn ich ein weiteres MDI-Kind erzeuge und dort den Focus drauf sitzen habe, dann steht in dem eben erwähnten Menü nichts!
Wechsle ich den Focus auf das zuerst erzeugte Kind-Fenster, sehe ich dem Menü zwei Einträge (was ja auch korrekt ist).
D.h. nur das erste erzeugte MDI-Kind-Fenster führt brav Buch über die neu erzeugten Kind-Fenster -- alle übrigen habe nichts in diesem Menü.

Obwohl doch alle mit dem gleichen Coding erzeugt werden:

Delphi-Quellcode:
PROCEDURE TMDI_CHILD_frm.LoadClick(SENDer: TObject);
BEGIN
  MAIN_MDI_frm.LoadClick(Sender);
END;
Naja, jetzt wo ich es so schreibe: Das erste MDI-Kind-Fenster, wird tatsächlich anders erzuegt! Unmittlebar nach dem Start, ist die MDI-Eltern-Form leer, und der User geht nun auf das Menü File, und dann auf das Submenü 'Load':

Delphi-Quellcode:
PROCEDURE TMAIN_MDI_frm.LoadClick(Sender: TObject);
BEGIN
  WITH OpenDialog1 DO
  BEGIN
    Filter := 'Text Files (*.txt)|*.txt|Alle Files(*.*)|*.*';
    DefaultExt := 'txt';
    IF Execute THEN
    WITH TMDI_CHILD_frm.Create(Self) DO anything...
  END;
END;

Alle weiteren Kinder werden über das erste Coding erzeugt: Was nichts anderes macht, als das untere Coding auszurufen. Eigentlich identisch - aber der Unterschied zeigt sich wie oben beschrieben: Diese Fenster haben keine Einträg im Window-Menü -- was ja mit jedem neuen Fenster wachsen sollte (wie im allerersten Fenster).

Puh, das war lang und mir ist einiges klar geworden -- aber das erklärt mir noch immer nicht den obigen Fehler.

Vielleicht hat ja noch jemand Lust mal darüber nachzugrübeln -- obwohl es ist ja schon spät...

Vielen Dank & Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat