abgesehen davon das man es wie bereits erwähnt davon abuzraten ist,
versuche ein Sleep(20); in deine repeat schleife zu setzten damit die cpu nicht auf 100% läuft.
alternativ evtl so: (nicht den sleep vergessen!)
(ich weiß nicht ob's ne verbesserung oder verschlechterung zu deinem delphi ist!)
Code:
function MyProcessMessages : Boolean;
const
WM_QUIT = $0012;
var
Msg : TMsg;
begin
Result := False;
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do begin
if Msg.Message = WM_QUIT then
begin Exit end else begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end; Result := True;
end;