Thema: Delphi Timer stoppen

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Timer stoppen

  Alt 22. Feb 2008, 16:31
was mir bei dem Quelltext auffällt:
Delphi-Quellcode:
procedure TMainGUI.tmrAblaufTimer(Sender: TObject);
begin
  MeinGeraet.HoleDies;
  Application.ProcessMessages; // angenommen mein Obj ist schon freigegeben (dann knallts)
  MeinGeraet.HoleJenes;
  Application.ProcessMessages;
  MeinGeraet.HoleDas;
end;
wenn HoleDies, HoleJenes oder HoleDas etwas länger braucht wird bereits das nächste Timer-Event aufgerufen während bereits im Event etwas abgearbeitet wird.

Daher lieber so:
Delphi-Quellcode:
procedure TMainGUI.tmrAblaufTimer(Sender: TObject);
begin
  TTimer(Sender).Enabled = False;
  MeinGeraet.HoleDies;
  Application.ProcessMessages; // angenommen mein Obj ist schon freigegeben (dann knallts)
  MeinGeraet.HoleJenes;
  Application.ProcessMessages;
  MeinGeraet.HoleDas;
  TTimer(Sender).Enabled = True;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat