AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Timer einstellen

Ein Thema von Flemichin · begonnen am 16. Sep 2009 · letzter Beitrag vom 17. Sep 2009
Antwort Antwort
Flemichin

Registriert seit: 16. Sep 2009
14 Beiträge
 
Delphi 7 Personal
 
#1

Timer einstellen

  Alt 16. Sep 2009, 20:03
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Timer einstellen

  Alt 16. Sep 2009, 20:06
Hallo und Willkommen in der 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).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Flemichin

Registriert seit: 16. Sep 2009
14 Beiträge
 
Delphi 7 Personal
 
#3

Re: Timer einstellen

  Alt 16. Sep 2009, 20:13
Ok, wäre dann nur noch dankbar, wie ich das dann richtig eingeben muss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#4

Re: Timer einstellen

  Alt 16. Sep 2009, 20:19
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

und was sagt und das?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Timer einstellen

  Alt 16. Sep 2009, 20:21
Das sagt uns, dass himitsu nicht aufgepasst hat. Ein Variable vom Typ Integer besitzt keine Text-Eigenschaft
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Flemichin

Registriert seit: 16. Sep 2009
14 Beiträge
 
Delphi 7 Personal
 
#6

Re: Timer einstellen

  Alt 16. Sep 2009, 20:23
ich bin aber trotzdem noch blöd wie ne auster ^^
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#7

Re: Timer einstellen

  Alt 16. Sep 2009, 20:28
statt IntToStr(zahl1.text) einfach NUR zahl1, welches ein Integer ist, was auch .Interval haben möchte
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Flemichin

Registriert seit: 16. Sep 2009
14 Beiträge
 
Delphi 7 Personal
 
#8

Re: Timer einstellen

  Alt 16. Sep 2009, 20:30
jau es klappt ich danke euch =)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Timer einstellen

  Alt 17. Sep 2009, 08:08
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#10

Re: Timer einstellen

  Alt 17. Sep 2009, 09:24
Zitat von DeddyH:
Es wäre aber besser, wenn Du auch auf Fehleingaben reagieren würdest.
OK, bei einer direkten Eingabeprüfung isses schon besser, da sonst wärend des Eingebens und z.B. bei einem leerem Editfelt, das StrToInt eine Exception wirft.

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:10 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