Also nochmal...
ein Application.processmessages ist erstmal eigentlich nix anderes als ein Call. Ein Call auf eine Routinen, die Messages abarbeitet.
Diese funktionalität wird dazu verwenden, dass andere Programm oder Programmteile weiterlaufen können, wenn eine "schleife" oder Programm nicht so schnell in die Systemschleife zurückkehren kann.
Also egal was Du machst, mit welchen tricks Du arbeitest und ob Du Messages erzeugst oder was auch immer... Die Procedure läuft erst mit der nächsten Codezeile weiter, wenn das
Return aus diesem Call zurückkehrt.
Delphi-Quellcode:
while true do
begin
...
application.processmessages -> Call
...
end;
Daher ist Dein Grundkonzept falsch... Kein Bug, Kein Fehler in Windows.. So funktioniert es einfach nicht...
Wenn Du mir Deine Routine gibst, baue ich Sie so um, dass das was Du möchtest funktioniert.
Frank