Einzelnen Beitrag anzeigen

Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
655 Beiträge
 
Delphi 12 Athens
 
#18

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 22. Mär 2019, 15:53
Zitat:
beim Fokussieren des PageControl auf dem Formular
Den Fokus sollte man frühestens im OnShow, besser aber im OnActivate setzen,
weil vorher das Fenster (das eigentliche Windows-Fenster) noch gar nicht erzeugt ist.
Ja, das sehe ich genauso. Falls das missverständlich war: dieses SetFocus vom PageControl ist auch nichts, was ich selber mache, sondern das passiert halt innerhalb irgendwelcher VCL-Routinen. Wie geschrieben: wenn ich es einigermaßen eingegrenzt habe, dann passiert es in der Folge irgendwelcher DPI-Geschichten.

Zitat:
Es gibt meines Wissens keine Stelle, in der die VCL selbst ein WM_ACTIVATE absetzt.
Die VCL nicht, aber diverse Fremd-Komponenten, z.B. der TAdvDateTimePicker.
Der schickt ein WM_ACTIVATE an sein Parent beim CloseUp seines Auswahlfeldes.
An Fremdkomponenten habe ich nur pgDAC und VST. Beide kommen aber im Hauptformular, um das es hier geht, nicht vor, pgDAC nutze ich auch sonst nur im Code und nicht als Komponente.

es scheint so, als würde das Activate beim Fokussieren des PageControl auf dem Formular ausgelöst
Das deckt sich mit meinen Erkenntnissen:
Jepp, so war es auch gemeint.

in den aufrufenden Funktionen davor passiert irgendwas mit einer Umrechnung wegen DPI.
In dem Bereich gibt es allerdings gravierende Unterschiede zwischen Rio und Tokyo.
Ich meinte, das auch im Hinterkopf gehabt zu haben - Danke für die Bestätigung. Vielleicht sind es ja dann tatsächlich ungewollte Nebeneffekte der Änderungen in dem Bereich.
  Mit Zitat antworten Zitat