Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Timer stoppen (https://www.delphipraxis.net/108997-timer-stoppen.html)

sirius 29. Feb 2008 15:30

Re: Timer stoppen
 
Zitat:

Zitat von bluesbear
Und mit den Exit springst du am finally Block vorbei raus. Ist das Absicht?

Nöö, seit wann denn das?

DelphiManiac 29. Feb 2008 15:56

Re: Timer stoppen
 
Ja ist schon richtig, und so gewollt.

Deswegen stehts ja nicht im try Block.

bluesbear 29. Feb 2008 16:18

Re: Timer stoppen
 
Zitat:

Zitat von sirius
Zitat:

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 :oops: errare ursum est.

bluesbear 29. Feb 2008 17:40

Re: Timer stoppen
 
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.

Neumann 29. Feb 2008 18:51

Re: Timer stoppen
 
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ß

DelphiManiac 29. Feb 2008 20:46

Re: Timer stoppen
 
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.

bluesbear 29. Feb 2008 20:57

Re: Timer stoppen
 
Zitat:

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. :snowball:

DelphiManiac 29. Feb 2008 21:05

Re: Timer stoppen
 
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...

bluesbear 29. Feb 2008 21:29

Re: Timer stoppen
 
Zitat:

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?

DelphiManiac 29. Feb 2008 21:59

Re: Timer stoppen
 
Hi bluesbear,

das werde ich mal probieren, versuche das mal über extreme Debugging :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.
Seite 4 von 5   « Erste     234 5      

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