Zitat von
zeras:
Wenn ich das Childformular nutze, dann kommt es nicht zum OnActivate des Hauptformulars.
Was heißt, wenn Du das ChildFormular nutzt? Nutzen kannst Du es doch erst nach OnActivate des Hauptformulars.
Erzeugst Du das MDIChild evtl. bereits im onCreate des MainForm (also des MDIForm)? In dem Fall würde ich das erzeugen des MDIChild in onActivate des MDIForm verlegen. Einen doppelten Aufruf kann man durch eine entsprechende Var verhindern.
Könnte mir gut vorstellen, das ein onActivate des MDIForm bei neueren Delphi-Versionen verhindert wird, wenn der Focus gleich auf ein MDIChild gelegt wird.
€:
Ok im Create geht nicht, aber automatisch erzeugen. Wenn ich das erste MDIChild automatisch erzeuge, wird bei mir weder bei Delphi 5 noch bei Delphi 2007 MDIForm.OnActivate aufgerufen!
Erzeuge ich kein MDIChild automatisch, wird bei beiden Delphi MDIForm.OnActivate aufgerufen.
Erzeuge ich das MDIChild in MDIForm.OnActivate dynamisch, dann wird aller nachfolgender Code in OnActivate nicht mehr ausgeführt (komisch)
Also für mich logisch, das bei sofort erzeugtem MDIChild, das MainForm kein OnActivate Ergeignis bekommt... und auch bei D5 und D2007 reproduzierbar.