Thema: Delphi Timer stoppen

Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Timer stoppen

  Alt 22. Feb 2008, 16:09
Hallo

ich habe folgendes Problem:

ich nutze eine Timer um zyklisch Werte aus einem Gerät zu holen (ja ich weiß, ein Thread wäre hier vielleicht angebrachter )
das klappt ja auch, mein Problem ist nun, das ich innerhalb meines Timers Application.ProcessMessages aufrufen muss,
damit die Form weiter bedienbar bleibt.

Jetzt will ich den Timer ja auch mal beenden:

meinTimer.enabled:=false; Z.b.: wenn ich die Verbindung zur Schnittstelle beende.
Dann will ich auch mein Objekt freigeben:

MeinGeraet.Free;
Timerprozedur:
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;
In meinem Disconnect Button mach ich folgendes:

Delphi-Quellcode:
begin
  meinTimer.enabled:=false; // Timer soll beendet werden
 // Wie kann ich sicher gehen, dass der Timer nicht mehr aktiv ist, d.h. auch keine Timerprozedur mehr ausgeführt wird????
  MeinGeraet.Free;
end;
Ich brauch hier eine Synchronisationsmethode, um auf das Ende vom der Timerprozedur zu warten, wie kann ich das machen???

Danke euch!
end;
  Mit Zitat antworten Zitat