Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auslesen, wie lange ein Timer schon läuft. (https://www.delphipraxis.net/6976-auslesen-wie-lange-ein-timer-schon-laeuft.html)

Nikolas 29. Jul 2003 09:02


Auslesen, wie lange ein Timer schon läuft.
 
:?: Wie (überhaupt) kann ich auslesen wie lange ein Timer schon enabled:=treu ist? Ich möchte die width-eigenschaft eines Labels an einen Timer hängen, so dass das Label gegen Ablauf der Zeit verschwunden ist.
:?: Kann icheinem Timer so einstellen, das er immer nach 1000 ein Ereigniss auslöst? Ich habe probiert, einen Countdown zu schreiben, aber wenn ich einem Timer sage, dass er sich immer wieder einschalten soll, wenn die Zeit abgelaufen ist, wird das Ganze nicht mehr genau. In den ganzen Hilfen hab ich nicht gefunden und die Leute aus meinem Kurs wissen auch nichts darüber.

Thanks :spin:

Toxman

Luckie 29. Jul 2003 09:03

Re: Auslesen, wie lange ein Timer schon läuft.
 
Zitat:

Zitat von Toxman
:?: Kann icheinem Timer so einstellen, das er immer nach 1000 ein Ereigniss auslöst?

Da farge ich mich doch glatt für was die Eigenschaft Interval gut ist. :roll:

Nikolas 29. Jul 2003 09:05

Re: Auslesen, wie lange ein Timer schon läuft.
 
Das PRobelm ist nicht, nach 1000 ein ereigniss auszulösen , sondern das 10 mal hintereinander zu machen

Toxman

Luckie 29. Jul 2003 09:08

Re: Auslesen, wie lange ein Timer schon läuft.
 
Dann zähl mit, wie oft es ausgelöst wurde. Wo ist das Problem?

Sharky 29. Jul 2003 09:10

Re: Auslesen, wie lange ein Timer schon läuft.
 
Hai Toxman im Formum.

Mache es do so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 zaehler := 0;
 Timer1.Interval := 1000;
 Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Inc (zaehler);
 Case zaehler of
  8 : Label1.Caption := 'Gleich sind 10 Sek. vorbei';
  10 : begin
        Label1.Caption := 'Fertisch';
        Timer1.Enabled := False;
       end;
  end;
end;
zaehler ist eine globale Variable vom Typ Int.

Nikolas 29. Jul 2003 09:12

Re: Auslesen, wie lange ein Timer schon läuft.
 
Ich will ja eine Label mit diesem Timer zum schrumpfen bringen. Wenn ich aber den Timer immer wieder anschalte, braucht das nicht die gleiche Zeit, wie wenn ich einen Timer durchlaufen lasse.
Bsp: 5*1000(intervall = 1000, wird 5 mal gestartet)<>5000

Luckie 29. Jul 2003 09:16

Re: Auslesen, wie lange ein Timer schon läuft.
 
Ddann laß ihn doch durchlaufen.

Nikolas 29. Jul 2003 09:16

Re: Auslesen, wie lange ein Timer schon läuft.
 
Danke für den Vorschlag. Noch eine kleine Frage: Du schaltest den TImer mit einem Button an, dann läuft er bis er fertig ist und dann? Ich glaube, dass bei deinem Code die Zaehler-variable nur einmal geinct wird un dann hat sichs, oder? :?:

Nikolas 29. Jul 2003 09:17

Re: Auslesen, wie lange ein Timer schon läuft.
 
Danke für den Vorschlag. Noch eine kleine Frage: Du schaltest den TImer mit einem Button an, dann läuft er bis er fertig ist und dann? Ich glaube, dass bei deinem Code die Zaehler-variable nur einmal geinct wird un dann hat sichs, oder? :?:

Sharky 29. Jul 2003 09:26

Re: Auslesen, wie lange ein Timer schon läuft.
 
Zitat:

Zitat von Toxman
.... Ich glaube, dass bei deinem Code die Zaehler-variable nur einmal geinct wird un dann hat sichs, oder? :?:

Ich bin Atheist darum glaube ich nicht sondern möchte sehen.

Hast Du denn Code denn getestet? Ich schon :lol: :D

Nikolas 29. Jul 2003 09:36

Re: Auslesen, wie lange ein Timer schon läuft.
 
Ich hab das mal nachgebaut und versteh nicht recht, waum das klappt. Ich hab gelernt, dass sich ein Timer nach dem Auslösen des Ereignisses ausschaltet und nicht dass er das erigniss immer wieder ausführt. Was passiert da?

Sharky 29. Jul 2003 09:41

Re: Auslesen, wie lange ein Timer schon läuft.
 
Zitat:

Zitat von Toxman
...Ich hab gelernt, dass sich ein Timer nach dem Auslösen des Ereignisses ausschaltet....

Kurz und schmerzlos: Da hast Du etwas falsches gelernt :D

Ein Timer lösst alle X ms (Intervall) das OnTimer-Ereigniss aus bis er im Programm auf Enabled := False gesetzt wird.

Luckie 29. Jul 2003 09:43

Re: Auslesen, wie lange ein Timer schon läuft.
 
Bei dem Code wird der Timer ausgeschaltet, wenn der Zähler gleich 10 ist. Steht doch da:
Delphi-Quellcode:
case zaehler of
  10:
  begin
    ...;
    Timer1.Enabled _= FALSE;
  end;
end;
Und nicht jedes mal, wenn das Timer Ereignis eintritt.

Nikolas 29. Jul 2003 09:46

Re: Auslesen, wie lange ein Timer schon läuft.
 
Na Danke :evil: Da geht man in die Schule um was zu lernen und dann so was. Vielleicht hab ichs auch nur falsch verstanden.

Nochmal zur ersten Frage: gibt es einen Befehl mit dem man die Laufdauer lesen kann und sie in einem Label o.ä. zeigen kann?

:thuimb: Vielen Dank für die schnelle Hilfe. :thuimb:

Sharky 29. Jul 2003 09:59

Re: Auslesen, wie lange ein Timer schon läuft.
 
[quote="Toxman"...Nochmal zur ersten Frage: gibt es einen Befehl mit dem man die Laufdauer lesen kann und sie in einem Label o.ä. zeigen kann?....[/quote]

So eine Funktion ist mir nicht bekannt. IMHO basiert der Timer auf einer API-Funktion. Ob es eine API gibt um die "aktuelle" Laufzeit zu ermitteln kann ich dir aber nicht sagen.

Nikolas 29. Jul 2003 10:09

Re: Auslesen, wie lange ein Timer schon läuft.
 
Thanx

<--- Das geilste Smiley, dass ich jemals gesehen habe :love:

ketraun 29. Jul 2003 10:28

Re: Auslesen, wie lange ein Timer schon läuft.
 
Hi,
eine Möglichkeit die noch anstehende Timerzeit auszulesen gibts meines Wissens nicht.
Aber es gibt eine ander Möglichkeit:
Nimm einen Timer mit einem Intervall von 0,1 sec ( 100 )
Diesen Timer lässt du laufen.
Du definierst eine Variable Zeit ( integer ) die du hochzählst.
Das ist dann die vergangene Zeit in zehntel Sekunden.
Wird der Wert grösser oder gleich X ( Intervallzeit ) setz es auf null.
Zu diesem Zeitpunkt kannst du irgendetwas auslösen und hast permanent die vertsrichene Zeit.
Hab ich schon gemacht funktioniert prima;
ketraun

Nikolas 29. Jul 2003 10:39

Re: Auslesen, wie lange ein Timer schon läuft.
 
klingt gut. Mein Problem war bisher, das ich in der Schule gelernt hab, dass sich ein Timer nach dem Auslösen ausschaltet und nicht dauernd weiter das Ereiniss auslöst.

Pseudemys Nelsoni 29. Jul 2003 10:45

Re: Auslesen, wie lange ein Timer schon läuft.
 
Zitat:

Zitat von Toxman
Na Danke :evil: Da geht man in die Schule um was zu lernen und dann so was. Vielleicht hab ichs auch nur falsch verstanden.

Nochmal zur ersten Frage: gibt es einen Befehl mit dem man die Laufdauer lesen kann und sie in einem Label o.ä. zeigen kann?

:thuimb: Vielen Dank für die schnelle Hilfe. :thuimb:


du könntest einen 2ten timer laufen lassen(mit dem intervall 1000) der immer läuft solange die erste läuft und eine variable immer um 1(sekunden) erhöht...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 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