![]() |
AW: TTimer und Abarbeitung der Messages
Ich kann nichts konstruktives beitragen, nur anmerken, dass mir das auch schon öfter passiert ist: Abarbeiten irgendwelcher Timer-Messages während des Herunterfahrens, wenn schon formularmäßig so gut wie alles zerstört ist...
|
AW: TTimer und Abarbeitung der Messages
Zitat:
Das Window, an welches das WM_TIMER geschickt wird, ist dann weg. Wenn Fenster freigegeben werden, werden deren Messages aus der Queue entfernt, aber selbst wenn nicht, dann existiert das Fenster nicht mehr, welches diese Message empfangen und verarbeiten kann. Die Queue wird in TApplication.ProcessMessage verarbeitet, welches durch Application.Run, Application.HandleMessage und Application.ProcessMessages behandelt wird. In der VCL also immer wenn Application.ProcessMessages aufgerufen wird, bzw. zwischen den anderen VCL-Ereignissen (Messages wie Button-Klicks, Timer-Events usw.), welche über/in/durch ProcessMessage ausgeführt werden. |
AW: TTimer und Abarbeitung der Messages
Zitat:
danach sollte die Queue eigentlich leer sein. Gruß K-H |
AW: TTimer und Abarbeitung der Messages
Ein ProcessMessages unbedacht an einer ungünstigen Stelle bereitet mehr Probleme, als es löst.
In diesem Fall würde ich eher ein
Delphi-Quellcode:
nach dem KillTimer einfügen, welches die Message(s) entfernt.
while PeekMessage(Msg, FWindowHandle, WM_TIMER, WM_TIMER, PM_REMOVE) do ;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz