Delphi-PRAXiS
Seite 4 von 8   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   10.3.1: OnActivate wird vor OnCreate ausgeführt (https://www.delphipraxis.net/200117-10-3-1-onactivate-wird-vor-oncreate-ausgefuehrt.html)

Uwe Raabe 22. Mär 2019 22:37

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Zitat:

Zitat von blawen (Beitrag 1428450)
Win10 mit 4k+HD Monitor (Mischbetrieb):

Welche DPI hat der primäre Monitor?

jaenicke 23. Mär 2019 08:06

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Zu dem OnActivate...
Ich mache das schlicht so, dass ich darin dem Formular per PostMessage eine Nachricht schicke. Die wird dann verarbeitet nachdem es angezeigt wurde, egal wann das OnActivate aufgerufen wird.

DieDolly 23. Mär 2019 12:14

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Zitat:

Zitat von jaenicke (Beitrag 1428463)
Zu dem OnActivate...
Ich mache das schlicht so, dass ich darin dem Formular per PostMessage eine Nachricht schicke. Die wird dann verarbeitet nachdem es angezeigt wurde, egal wann das OnActivate aufgerufen wird.

Ich mache das im OnPaint so mit WMFormVisible. Ist Paint oder Activate besser?

jaenicke 23. Mär 2019 13:07

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Nun ja, OnPaint funktioniert natürlich auch, aber ein Event zu nutzen, das einen vollkommen anderen Zweck hat, widerstrebt mir schon sehr.

DieDolly 23. Mär 2019 13:14

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Ist OnActivate in Verbindung mit WMFormVisible denn in Ordnung und besser als OnPaint? (Code erst ausführen, wenn Form wirklich sichtbar ist)
Weil ich habe das gerade getestet. Showmessage in OnPaint und in OnActivate. Die Showmessage im OnActivate wird schon angezeigt, wenn das Form noch nicht sichtbar ist.

HolgerX 23. Mär 2019 17:55

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Hmm..

Wenn ich eine Behandlung brauche, welche erst ausgeführt wird wenn die Form sichtbar ist, dann mach ich das PostMessage im OnShow.
OnActivate habe ich bisher noch nicht verwendet.

Da OnPaint immer wieder aufgerufen wird, auch wenn nur ein Anderes Fenster kurz über das eigene gezogen wurde (es muss halt immer wieder neu gemalt werden), würde ich es nicht dort machen..

DieDolly 23. Mär 2019 17:58

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Zitat:

Wenn ich eine Behandlung brauche, welche erst ausgeführt wird wenn die Form sichtbar ist, dann mach ich das PostMessage im OnShow.
Das ist so nicht richtig.
Code der im OnShow ausgeführt wird, wird schon ausgeführt bevor das Formular sichtbar ist.

Das Formular ist erst im OnPaint sichtbar. Weder im OnShow noch im OnActivate ist es direkt nach Programmstart beim ersten Eventaufruf sichtbar. Testet es mal mit einer MessageBox.

Zitat:

Da OnPaint immer wieder aufgerufen wird,
Dafür setzt man dann auch eine Variable, damit genau das nicht passiert und Code initial dort nur einmalig ausgeführt wird.

HolgerX 23. Mär 2019 18:00

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Hmm..

Hab doch geschrieben '.. das PostMessage im OnShow'!

Zitat:

Zitat von DieDolly (Beitrag 1428509)
Zitat:

Wenn ich eine Behandlung brauche, welche erst ausgeführt wird wenn die Form sichtbar ist, dann mach ich das PostMessage im OnShow.
Code der im OnShow ausgeführt wird, wird aber schon ausgeführt bevor das Formular sichtbar ist.

Das Formular ist erst im OnPaint sichtbar. Weder im OnShow noch im OnActivate ist es sichtbar. Testet es mal mit einer MessageBox.


Dadurch wird diese Message erst nach Abschluss des OnShow und auch OnPaint ausgeführt....

DieDolly 23. Mär 2019 18:02

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Entweder habe ich mich verlesen oder es nicht ganz verstanden.
Welche Message schickst du genau im OnShow ab und wo behandelst du sie? Hier besteht für mich Lernbedarf.
Würde hier wie gesagt noch gerne was lernen.

HolgerX 23. Mär 2019 18:52

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..

Hier mal ein einfaches Beispiel.

Ich habe hier noch kein abgeleitetes Formular mit eigenem OnAfterShow...
Aber per Postmessage kommt hier nach OnShow und OnPaint das AfterShow.

Starte das Tool mal und verkleinere das Formular.. dann wird OnPaint wiederholt aufgerufen.
Würde nun das Postmessage im OnPaint aufgerufen, dann würde auch das OnAfterShow immer wieder aufgerufen werden.

Da das Postmessage jedoch im OnSHow gemacht wird, kommt dies nur einmal, da eigentlich OnShow wirklich nur einmal (je Form) aufgerufen wird.

(Erstellt mit D6.. ;) )


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:46 Uhr.
Seite 4 von 8   « Erste     234 56     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz