Zitat:
den obigen Codeschnipsel in OnActivate verschoben. Das war's
...nicht ganz. OnActivate wird
jedesmal aufgerufen, wenn das Formular den Focus erhällt.
Wenn das nicht gewünscht ist, dann OnShow.
Dazu schrieb
Zitat von
Der schöne Günther:
Ich kann mich an nichts genaues mehr erinnern, aber ich habe solche Sachen aus dem OnFormCreate -Event üblicherweise so verschoben dass sie beim ersten Aufruf von OnActivate ausgeführt werden.
Man beachte dazu des kleine Wort
ersten vor dem
Aufruf.
Da braucht man dann 'nen Schalter, der beim
ersten Aufruf entsprechend gesetzt wird, so dass die Routine nachher
nicht mehr aufgerufen wird. Dabei ist es dann egal, ob sie nach dem ersten Aufruf beim OnActivate oder beim OnShow nicht mehr aufgerufen wird
Und das hat den Vorteil, dass das Fenster nach dem ersten Aufruf nicht mehr an dieser Stelle neu positioniert wird, wenn es zur Progammlaufzeit mal an 'ne andere Stelle verschoben wurde.
Enthält das Ereignis OnActivate nur die Logik zur Positionierung, kann man statt 'nen Schalter zu benutzen auch einfach die Ereigniszuweisung entfernen
OnActivate := Nil;