AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Timer stoppen

Ein Thema von DelphiManiac · begonnen am 22. Feb 2008 · letzter Beitrag vom 29. Feb 2008
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#31

Re: Timer stoppen

  Alt 29. Feb 2008, 15:30
Zitat von bluesbear:
Und mit den Exit springst du am finally Block vorbei raus. Ist das Absicht?
Nöö, seit wann denn das?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
DelphiManiac

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

Re: Timer stoppen

  Alt 29. Feb 2008, 15:56
Ja ist schon richtig, und so gewollt.

Deswegen stehts ja nicht im try Block.
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#33

Re: Timer stoppen

  Alt 29. Feb 2008, 16:18
Zitat von sirius:
Zitat von bluesbear:
Und mit den Exit springst du am finally Block vorbei raus. Ist das Absicht?
Nöö, seit wann denn das?
Tatsächlich! ein Exit springt in den finally-Block. Wer hätte das gedacht. Peinlich, peinlich errare ursum est.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#34

Re: Timer stoppen

  Alt 29. Feb 2008, 17:40
Eine Frage, etwas OT, habe ich zur Codeformatierung:
Delphi-Quellcode:
if (aCS200.Get_TempIntern(TempIntern))=0 then
begin
  pbFortschritt.Position:=7;
end
else
begin
  Failure:=True;
end;

// so würde ich das schreiben:

if (aCS200.Get_TempIntern(TempIntern)) = 0 then pbFortschritt.Position := 7
                                           else Failure := True;
Gilt das heutzutage als schlechter Stil, und ich werde gesteinigt, weil ich "Jehova" gesagt habe? Ich finde das wesentlich übersichtlicher, weil man weniger scrollen muss.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
535 Beiträge
 
Delphi 11 Alexandria
 
#35

Re: Timer stoppen

  Alt 29. Feb 2008, 18:51
Die Lösung war doch schon fast gefunden, ich mache es mit den Timern immer so:

procedure Tmainform.Timer1Timer(Sender: TObject);
Delphi-Quellcode:
begin
  try
    if timer1.Tag>0 then exit;
    timer1.Tag:=1;
    Tu Was ....
  finally
    timer1.Tag:=0;
end;
Damit kann man Mehtfachaufruf sicher verhindern.

Gruß
Ralf
  Mit Zitat antworten Zitat
DelphiManiac

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

Re: Timer stoppen

  Alt 29. Feb 2008, 20:46
Meine ursprüngliche Frage war eigentlich,

wie ich feststelle, dass die Timerprozedur fertig abgearbeitet ist,

angenommen ich nutzt dort ein Objekt, das ich woanders freigeben will,
dann muss ich dort warten bis die Prozedur beendet ist.
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#37

Re: Timer stoppen

  Alt 29. Feb 2008, 20:57
Zitat von DelphiManiac:
Meine ursprüngliche Frage war eigentlich,wie ich feststelle, dass die Timerprozedur fertig abgearbeitet ist (...)
Nu jetzt kapiere ich gar nix mehr. Willst Du mich veräppeln? Entweder Du fügst am Ende der Timerprozedur den entsprechenden Code ein, oder Du machst da ein PostMessage, setzt ein Flag oder tust sonstwas. Langsam werde ich hier paranoid.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
DelphiManiac

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

Re: Timer stoppen

  Alt 29. Feb 2008, 21:05
Hi,

nee veräppeln will ich hier niemanden, aber vielleicht steh ich ja auch gerade aufm Schlauch

Ich habe ja 1 Flag

-TimerIsActive

Das setze ich beim Entritt und lösche es beim Austritt der Prozedur.

Wenn ich jetzt auf dieses Flag polle bis es False ist dann habe ich einen Deadlock...
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#39

Re: Timer stoppen

  Alt 29. Feb 2008, 21:29
Zitat von DelphiManiac:
Ich habe ja 1 Flag -TimerIsActive
HmmHmmm <imbartkratz>. Ok, sorry für meine paranoide Reaktion.
Das ist in der Tat seltsam. Ich würde herumexperimentieren, um diesem Problem auf die Schliche zu kommen. Wenn Du den Timer sehr langsam einstellst (sagen wir mal so 3s, pi mal daumen) - taucht dann das Phänomen noch auf?
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
DelphiManiac

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

Re: Timer stoppen

  Alt 29. Feb 2008, 21:59
Hi bluesbear,

das werde ich mal probieren, versuche das mal über extreme Debugging
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz