Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#10

AW: TApplication.OnIdle Event

  Alt 7. Aug 2020, 23:10
Ich weiß jetzt nicht, ob es an der Delphi-Version liegt, aber in 10.4 wird CheckSynchronize nur in Idle aufgerufen - nicht in ProcessMessages.
Idle wird allerdings in HandleMessage aufgerufen falls keine Message vorliegt. Das ist die Methode, die in einer Dauerschleife in Application.Run aufgerufen wird. Das bedeutet aber nicht, dass ständig Idle aufgerufen wird. Bei Done = True wird am Ende von Idle ein WaitMessage aufgerufen.
Zitat:
The WaitMessage function suspends the thread and does not return until a new message is placed in the thread's message queue.
Zu häufige Idle-Events (z.B. in manchen MDI-Apps) kann man übrigens mit Application.ActionUpdateDelay bändigen.

Es gibt noch ein paar andere Events, die CheckSynchronize mittels WM_NULL auslösen, aber die sind hier eigentlich nicht von Belang.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat