Hallo,
erstmal Danke für die Antwort.
In der Tat erreicht die Message "WM_NULL" niemals die Messagequeue des TApplication-Objekts. Dort steht:
Delphi-Quellcode:
WM_NULL:
CheckSynchronize;
Diese Zeile wird nie Aufgerufen!
Zusätzlich wird "CheckSynchronize" nach jeder verarbeiteten Message (Also in Application.Idle) aufgerufen - das ist das, was ich durch bewegen der Maus auslöse.
Ersetzen der Zeile
Delphi-Quellcode:
procedure TApplication.WakeMainThread(Sender: TObject);
begin
PostMessage(
Handle, WM_NULL, 0, 0);
end;
Durch
Delphi-Quellcode:
const
WM_SYNCHRONIZE_THREADS = WM_USER + 1187;
PostMessage(
Handle, WM_SYNCHRONIZE_THREADS, 0, 0);
bringt leider keine Besserung. Die Message wird gar nicht empfangen. Sende ich die Message jedoch an Form1.Handle und nicht TApplication.Handle, so funktioniert das Ganze. Hat jemand eine Erklärung für dieses Verhalten?