Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Inhalt einer Integer Variablen in Label oder Caption anzeige


Thunderbird95 - Di 04.01.11 21:20
Titel: Inhalt einer Integer Variablen in Label oder Caption anzeige
Hallo Forum, bin neu hier und habe eine Frage:

bin ziemlicher Delphi Neuling und von meiner Informatiklehrerin vor eine schwierige Aufgabe gestellt worden.
Ich möchte eine Integer Variable haben, die zusammen mit einem Timer pro Sekunde von 60 bis 0 runter zählt.
Erstellt ist das alles schon. Nun möchte ich diese Variable in der Caption oder einen Label anzeigen (Quasi, dass von 60 bis 0 Sichtbar runtergezählt wird. Wie mach ich das?
Es kann doch nicht sein, das ich für jede Sekude schreiben muss:

Delphi-Quelltext
1:
2:
if Zeit=60  //Zeit ist der Name der Variablen
then Form1.Caption := '60Sekunden';

das funktioniert zwar, aber wär ja ein Schreibkrampf das für jede Sekunde bis 0 zu machen...


Danke im Voraus, TB95


Moderiert von user profile iconMartok: Topic aus Sonstiges (Delphi) verschoben am Mi 05.01.2011 um 03:13
Moderiert von user profile iconNarses: I- durch Delphi-Tags ersetzt


Tankard - Di 04.01.11 21:22

such mal nach dem befehl

Delphi-Quelltext
1:
IntToStr                    


Thunderbird95 - Di 04.01.11 21:27

ich geh mal davon aus das du die Integer Variable in eine String Variable umändern willst. leider hab ich überhaupt keine Ahnung von String Variablen...


Namenlosnameless - Di 04.01.11 21:33

strings sind einfach eine Aneinanderreihung von Zeichen!

wenn du mit IntToStr 69 zu einem String machst bekommst du "69" als Text und nicht als Zahl raus!

Labels, benötigen in ihrer Text-Eigenschaft (oder wie auch immer die Eigenschaft in Delphi heißt) immer einen String als Wert.


Tankard - Di 04.01.11 21:34


Delphi-Quelltext
1:
2:
3:
4:
if Zeit=1 then
  form1.caption:=IntToStr (Zeit) + ' Sekunde'
else
  form1.caption:=IntToStr (Zeit) + ' Sekunden';


elundril - Di 04.01.11 21:36

Caption heißt die Eigenschaft.

Also kannst du zb schreiben label1.caption := 'blabla';. Das blabla ist deine Zeichenkette die du durch die zahl ersetzen willst. Wie du eine Zahl in eine Zeichenkette umwandeln kannst wurde dir ja schon gesagt. Jetzt brauchst du in jedem timerintervall nur noch die zahl um 1 verringern und halt bei 60 anfangen und bei 0 aufhören, indem du bei einem button den timer startest und die zahl auf 60 setzt und wenn der timer bei 0 ist den timer einfach wieder auf enabled:= false; setzt. ;)

lg elundril


der organist - Di 04.01.11 21:48

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Caption heißt die Eigenschaft.

Also kannst du zb schreiben label1.caption := 'blabla';. Das blabla ist deine Zeichenkette die du durch die zahl ersetzen willst. [..]
lg elundril


Da du sagstest, dass du total keine Ahnung von Strings hast, ergänze ich kurz mal. Eine Integervariable hat als Inhalt eine Zahl. Eine Stringvariable hat eine Zeichenkette als Inhalt. Damit der Compiler weiss, dass du gerade einen String und keine Zahl zuweist, musst du ' davor und dahinter machen.

Beispiel:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  einInteger:Integer;
  einString:String;

begin
  einInteger:=5;
  einString:='Hallo_Welt';
  
  einString:='fünf';
  einString:=IntToStr(einInteger);       //einString ist jetzt = '5' und damit etwas anderes als 'fünf' (!)

  einString:='fünf';
  einInteger:=StrToInt(einString);       //wird dir nen Fehler geben, da du aus dem Wort fünf genauso keine Zahl machen 
                                         //kannst wie aus dem Wort Känguru

end;


Gruss, Lukas


Thunderbird95 - Di 04.01.11 22:53

danke an alle. ihr habt mir sehr geholfen :D