![]() |
Fragen zum Timer!
is delphi win32 = normales delphi 2005 ô0
Erst ma Hi und Entschuldigung falls ich des falsch gepostet hab^^ also ich programmiere noch nicht lange also bitte EINFACH erklären xD k das Programm is eigentlich ganz einfach ( mit Delphi^^ ) geht darum n timer mit ner gewissen zeit runterlaufen zu lassen. diese gewisse zeit soll aus nem edit rausgelesen werden. wir mach ich mir das jetzt am einfachsten? hab schon n paar sachen ausprobiert bekomms aber nicht hin =P schon ma danke im vorraus lg eiskalt |
Re: Fragen zum Timer!
Wie hast du es probiert?
Schau dir mal die Eigenschaft Intervall an |
Re: Fragen zum Timer!
Timingsachen machst du am besten mit GetTickCount(), weil Timer über Messages laufen und nicht genau sind. Du hast einen Startwert in einem Editfeld?
Delphi-Quellcode:
uses
math; var limit: longint; TForm1.StartButtonClick(Sender: TObject); begin limit := gettickcount + StrToIntDef(Edit1.Text, 1000); // in ms Timer1.Interval := 100; Timer1.Enabled := true; end; TForm1.Timer1Timer(Sender :TObject); var delta : longint; begin delta:= limit - gettickcount; if delta < 500 then timer1.Interval := 20; if delta >0 then label1.caption := inttostr(floor(delta))+'sec verbleiben' else begin Timer1.Enabled := false; // dann hier gewünschten Code einfüllen end; end; |
Re: Fragen zum Timer!
Im auf den Wert im Editfeld kannst du mit Editfeldname.Text zugreifen.
Das Timerintervall setzt man mit Timername.Interval. Also
Delphi-Quellcode:
Timername.Enabled := true startet den Timer.
Timername.Interval := strtoint(Editfeldname.Text)
Dann musst du noch den Timerevent implementieren. Wenn der Event aufgerufen wird, solltest du den Timer am Anfang stoppen und am Ende wieder starten. |
Re: Fragen zum Timer!
spaxxn antwort sagt mir mehr
sry gelgew^^ ich probs ma |
Re: Fragen zum Timer!
... und bitte sicherstellen, dass im Editfeld auch ein Integer eingegeben wurde! Alternativ z.B. mit TryStrToInt() arbeiten und den Intervall nur setzen, wenn erfolgreich Konvertiert werden konnte :hi:
|
Re: Fragen zum Timer!
Hi,
du wolltest doch einen timer herunterzählen lassen. Nun starte ein Programm mit höherer Priorität, welches viele Ressourcen zieht und du wirst sehen, dass der Timer langsamer wird. Abhängig davon, was du brauchst, kann das vollkommen inakzeptabel sein. Mein Codebeispiel, was ich mir gerade für dich aus den Fingern gesaugt hab, koppelt das Zählen vom eigentlichen timer ab und vergleicht mit der Systemuhr. Wenn dein Problem schon darin besteht, den timer zu initialisieren, schaust du dir am besten an, was timer1.enabled macht und wie sich das intvervall auf den timer auswirkt. greeds ps. TryStrToInt wird wohl gleichwertig sein mit StrToIntDef(edit1.text, -1 ) und der anschließenden Prüfung auf einen semipositiven Wert. |
Re: Fragen zum Timer!
@helgew: Ich glaube, dass es im erstmal nur um das Verständnis geht. Du schiesst ja gleich mit Artillerie auf Spatzen.
|
Re: Fragen zum Timer!
@helgew: Mein Hinweis bezog sich auf Post#4. Dort wird nur StrToInt() verwendet. Das in deinem Code enthaltene StrToIntDef() habe ich erst durch deinen Hinweis "kennen gelernt" :oops: - vielen Dank! Man lernt nie aus!
|
Re: Fragen zum Timer!
soll ich das intervall im timer an sich erst ma auf " 1 " stellen oder ist das erst ma egal, da er sobald der timer aktiviert wird (per button), n neues intervall bekommt.
edit: fehler meldung kommt nach 0,5 sec oder so nachem ich das programm laufen lass Im Projekt Project1.exe ist eine Exception der Klasse EConvertError mit der Meldung "ist kein guültiger Integerwert" aufgetreten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz