Einzelnen Beitrag anzeigen

Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#18

AW: Aktives MDIChild nach Schliessen eines MDIChild

  Alt 1. Dez 2010, 18:58
Hi !

Grundsätzlich hat Bummi hier Recht. Was Du beschreibst ist am Besten über ein TabSheet und gedockte Forms zu realisieren. MDIs sind dann überflüssig und die ganze Problematik stellt sich erst gar nicht.
Wenn Du Dir das einmal ansehen möchtest wie sowas funktioniert, dann such mal in YouTube nach "Delphi Programming Tutorial #32 - Dockable Forms" und "Delphi Programming Tutorial #33 - Dockable Forms 2"

Da Du aber offenbar schon mit den MDIs angefangen hast ...

Die Holzhammer-Methode wäre mit Hilfe tApplicationEvents.OnIdle in Deiner MainForm zu überprüfen, ob sich MainForm.ActiveMDIChild geändert hat. - (Würde ich aber nicht empfehlen)

Alternativ setzt Du den Tab mit dem OnActivate-Event der einzelnen MDI-Children. Schließt Du den aktuellen MDI-Child, bekommt ein anderes (sofern vorhanden) den Focus und löst diesen Event aus.

Solltest Du Zugang zu den TMS-Komponenten haben gibt es noch eine weitere sehr komfortable Lösung :
das tAdvOfficeMDITabSet - Hier fügst Du im Create Deines MDI-Childs den Befehl
Code:
MainForm.AdvOfficeMDITabSet.AddTab(MDIChild);
ein und die Komponente übernimmt alles weitere. Der Tab wird geschlossen, wenn der MDIChild geschlossen wird, Du kannst den Child auch über den Tab schließen etc...

Ich hoffe, das hilft Dir weiter.
  Mit Zitat antworten Zitat