Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Onactivate wird nicht ausgelöst bei Programm D5 --> D

  Alt 6. Jul 2009, 20:48
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.
  Mit Zitat antworten Zitat