Einzelnen Beitrag anzeigen

hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Delay verhindert, dass Applikation geschlossen werden kann

  Alt 7. Apr 2006, 14:32
'loha Folks,

Mit der folgenden Prozedur, wird eine Simulation unterbrochen...

Delphi-Quellcode:
procedure TFDSC_Simulator.Delay(Milliseconds: Integer);
var
  Tick: DWord;
  Event: THandle;
begin
  Event := CreateEvent(nil, False, False, nil);
  try
    Tick := GetTickCount + DWord(Milliseconds);
    while (Milliseconds > 0) and
          (MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
    begin
      Application.ProcessMessages;
      Milliseconds := Tick - GetTickcount;
    end;
  finally
    CloseHandle(Event);
  end;
...dieser Unterbruch wird so aufgerufen.

Delphi-Quellcode:
while LCDanger = False do
    begin
      Repeat Delay(1000) until LCDanger = True;
      Break;
    end;
So weit so gut. Funktioniert...bis auf den Punkt, dass sich die Applikation nachher nicht mehr schliessen lässt.

Des weiteren habe ich beobachtet, dass nach dem ersten Aufruf (Delay(1000)) jede Sekunde die obige Prozedur durchlaufen wird.

Für Lösungsansätze wäre ich sehr dankbar.

Grüsse
hirnstoem
  Mit Zitat antworten Zitat