![]() |
Win32 API: Nachrichtenschleife und 100% CPU Auslastung
Hallo,
durch folgende Nachrichtenschleife habe ich eine CPU-Auslastung von 100%:
Delphi-Quellcode:
PeekMessage könnte ich durch GetMessage ersetzen und das Freigeben von Instanzen kann ich dann in's WM_DESTROY tun. Nur wo schiebe ich dann mein ProcessKeys rein?
while not Finished do
if (PeekMessage(Msg, 0, 0, 0, PM_REMOVE)) then if (Msg.Message = WM_QUIT) then begin Finished := True; [ ... (Instanzen freigeben etc.) ] end else begin TranslateMessage(Msg); DispatchMessage(Msg); end else ProcessKeys; // Tastatureingaben verarbeiten Hat jemand eine Alternative für mich? Thx. |
Re: Win32 API: Nachrichtenschleife und 100% CPU Auslastung
WaitMessage nach ProcessKey rufen?
|
Re: Win32 API: Nachrichtenschleife und 100% CPU Auslastung
Zitat:
|
Re: Win32 API: Nachrichtenschleife und 100% CPU Auslastung
Zitat:
Meine ProcessKeys Prozedur ist zum verarbeiten der Tastatur-Eingaben zuständig:
Delphi-Quellcode:
verbunden mit WM_KEYDOWN und WM_KEYUP:
procedure ProcessKeys;
begin if Keys[VK_RETURN] then Started := True; if Keys[VK_ESCAPE] then Finished := True; [ etc. ] end;
Delphi-Quellcode:
WM_KEYDOWN:
begin Keys[wParam] := True; Result := 0; end; WM_KEYUP: begin Keys[wParam] := False; Result := 0; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz