Der Unterschied zwischen
VCL's Process Message und deiner ist, dass die von Delphi nur dann greift,
wenn dein Programm gerade nichts zu tun hat. Deine läuft in einem Eventhandler immer und solange,
bis deine Anwendung beendet wird.
SOweit ich weiß, sollte in einem Eventhandler jedoch keine Nachrichtenbearbeitung erfolgen, da diese
mitunter Reetranz Probleme verursachen kann.
z. B. im Kontext der ICS Socket Komponenten wird soweit ich mich erinnere immer empfohlen, bloß nicht
Application.ProcessMessages oder ähnliches innerhalb des Handlers aufzurufen. Das kann zum erneuten
Aufruf des Handlers für die selbe Nachricht führen (ich fragte mich zwa schon immer wieso, weil die
Nachricht doch zu dem Zeitpunkt eigentlich schon aus der Warteschlange raus sein sollte, aber es scheint
tatsächlich zu Problemen zu führen).