Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Alternative zu Application.ProcessMessage ??? (https://www.delphipraxis.net/86755-alternative-zu-application-processmessage.html)

Schucki 19. Feb 2007 11:39


Alternative zu Application.ProcessMessage ???
 
Hi :hi:

ich habe das Problem das ich in meiner Anwendung auf ein Ereigniss warten muß und mir dieses mit einem BOL Wert signalisieren lasse.

Delphi-Quellcode:
procedure WaitForAnswer;
var timGo:TDateTime;
const WaitAns=5000;
begin
  timGo:=GetTickCount;
  while (not bolAns) and (GetTickCount-timGo < WaitAns) do begin
    Application.ProcessMessages;
  end;
end;
Ablauf ist wie folgt...

Delphi-Quellcode:
bolAns:=False;
TakeAction;
WaitForAnswer;
Das doofe ist nur das die CPU voll belastet wird und der Lüfter nach kurzer Zeit anspringt.

Wie macht man sowas eleganter? :dance:

Für jeden Tip dankbar,
Frank

Jelly 19. Feb 2007 11:43

Re: Alternative zu Application.ProcessMessage ???
 
Stichwort Thread. Der Thread käuft parallel zum eigentlichen Programm, und könnte z.B. das Hauptprogramm via Event benachichtigen, wenn deine Bedingung erfüllt ist.

Luckie 19. Feb 2007 11:46

Re: Alternative zu Application.ProcessMessage ???
 
Zitat:

Zitat von Schucki
das ich in meiner Anwendung auf ein Ereigniss warten muß und mir dieses mit einem BOL Wert signalisieren lasse.

Das ist ein Widerspruch: Wenn es sich um ein Ereignis handelt, dann brauchst du nicht in einer Schleife ständig den Rückgabewert abfragen. Sollte es wirklich ein Ereignis sein, dann kannst du auf das Ereignis mit einer Ereignisbehandlungsroutine reagieren.

Schucki 21. Feb 2007 11:00

Re: Alternative zu Application.ProcessMessage ???
 
Ok danke Euch! :thumb:

Habe es mit einem Thread gelöst, geht erstaunlich gut!
Auch wenn ich etwas gebraucht habe um das hinzubekommen.

Hatte zum Glück etwas Literatur darüber gefunden.

MfG Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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-2025 by Thomas Breitkreuz