![]() |
Timer einstellen
Omg, ich hoffe, dass ich in diesem Forum richtig bin...
Folgendes Problem: Ich will über den Edit den Intervall des Timers einstellen lassen. Habe mir gedacht, ich benutze VAR, wie bei einem Währungsrechner etc. Leider ist meine Idee Müll, oder ich mache etwas falsch. Bisher habe ich das da stehen: procedure TMyForm.Ed1Change(Sender: TObject); var zahl1: Integer; begin zahl1 := StrToInt (Ed1.text); timer.interval := IntToStr (zahl1.text); Mein Edit heißt Ed1 |
Re: Timer einstellen
Hallo und Willkommen in der DP :dp:,
erst wandelst Du den String in eine Zahl (richtig), dann willst Du diese Zahl bzw. ihr nicht vorhandenes Attribut Text (falsch) in einen String wandeln und dem Timer-Intervall zuweisen (ganz falsch). |
Re: Timer einstellen
Ok, wäre dann nur noch dankbar, wie ich das dann richtig eingeben muss
|
Re: Timer einstellen
Zahl1 ist ein Integer
.Interval ist auch ein Integer IntToStr erzeugt einen String und verlangt als Parameter einen Integer .Text ist schon ein String Zahl1 kennt kein .Text :oops: und was sagt und das? |
Re: Timer einstellen
Das sagt uns, dass himitsu nicht aufgepasst hat. Ein Variable vom Typ Integer besitzt keine Text-Eigenschaft :tongue:
|
Re: Timer einstellen
ich bin aber trotzdem noch blöd wie ne auster ^^
|
Re: Timer einstellen
statt IntToStr(zahl1.text) einfach NUR zahl1, welches ein Integer ist, was auch .Interval haben möchte :angel2:
|
Re: Timer einstellen
jau es klappt ich danke euch =)
|
Re: Timer einstellen
Es wäre aber besser, wenn Du auch auf Fehleingaben reagieren würdest.
Delphi-Quellcode:
procedure TMyForm.Ed1Change(Sender: TObject);
var zahl1: Integer; begin if TryStrToInt(Ed1.text, zahl1) then timer.interval := zahl1; end; |
Re: Timer einstellen
Zitat:
Aber es sollte dennoch eine Meldung ausgegeben werden, da ein TryStrToInt einfach jeden Fehler unterdrückt und man sich dann wundert, warum die Zeit nicht gesetzt wird. Meine Lösung wäre: In OnExit die Werte prüfen und erst zulassen, also enn man aus dem Edit rausgeht. Ind dann entweder mit StrToInt, denn dann würde der User eine Exception bekommen und weiß, daß sein Wert falsch ist oder via TryStrToInt, aber damm mit einer eigenen Meldung. wenn es sofort ausgewertet werden soll, dann wärend der Eingabe im OnChange nur via TryStrToInt und mit einem dezenzen Fehlerhinweis. Persönlich mische ich gerne Beides (also wärenddessen z.B. in einem Label oder mit einer anderen Hintergrundfarbe des Edits auf den Fehler hinweisen) und im OnExit dann streng prüfen und im Fehlerfall eine Exception werfen, welche der User promt serviert wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 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-2025 by Thomas Breitkreuz