Hmm..
Wenn ich in Threads Windows-Messages verarbeiten lassen will, habe ich mir hierfür ein ProcessMessage nachgebaut:
Delphi-Quellcode:
type
TThreadTerminateBreak = class (TThread);
procedure ThreatProcessRequests(AThread : TThread; WaitForMessage: Boolean);
var
msg: TMsg;
Rslt: Boolean;
begin
while True do
begin
if TThreadTerminateBreak(AThread).Terminated and WaitForMessage then break;
if WaitForMessage then
Rslt := GetMessage(msg, 0, 0, 0)
else
Rslt := PeekMessage(msg, 0, 0, 0, PM_REMOVE);
if not Rslt then break;
DispatchMessage(msg);
Sleep(1);
end;
end;
Das TranslateMessage ist ja nur für die Konvertierung von Key-Events hilfreich, bei anderen Messages wird es jedoch nicht gebraucht.