Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - variable prolbem
Infest - Di 17.02.09 17:32
Titel: variable prolbem
hallo ich bin ein ziemlicher anfänger und wollte euch etwas fragen
zurzeit erstelle ich ein einfaches programm wo man die punkte 0 bis 15 eingibt und dann als ausgabe erhält z.b bei 13 bis 15 sehr gut und soweiter
also bisher ist alles klar
so sieht das bisher aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Bu_BerechnenClick(Sender: TObject); var wert, punkte: integer; begin punkte:= StrToInt(Ed_Punkte.Text); wert:= Pa_Ausgabe.Caption;
case punkte of 0 : wert:= 'ungenügend': 1..3: wert:= 'mangelhaft'; 4..6: wert:= 'ausreichend'; 7..9: wert:= 'befriedigend'; 10..12: wert:= 'gut'; 13..15: wert:= 'sehr gut'; ELSE wert:= 'Diese Punktzahl gibt es nicht!';
end; |
mein problem ist bei wert:= Pa_Ausgabe.Caption; bringt er ein Problem und ich weiß nicht warum!!
Ich möchte nicht immer Pa_Ausgabe.Caption eingeben sondern einmal als variable deklarieren damit ich die dann benützen kann.
was habe ich falsch eingegeben?
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Xentar - Di 17.02.09 17:35
1. Verwende Delphi Tags hier im Forum
2. Schreib beim nächsten Mal dazu, WAS für ein Problem "er bringt".
3. Wert ist ein integer, Caption aber ein String. Also musst du das vorher umwandeln:
Delphi-Quelltext
1:
| wert := StrToInt(Pa_Ausgabe.Caption); |
TProgger - Di 17.02.09 17:45
Vielleicht klappts ja so?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Bu_BerechnenClick(Sender: TObject); var wert: String; punkte: integer; begin punkte:= StrToInt(Ed_Punkte.Text); case punkte of 0 : wert:= 'ungenügend': 1..3: wert:= 'mangelhaft'; 4..6: wert:= 'ausreichend'; 7..9: wert:= 'befriedigend'; 10..12: wert:= 'gut'; 13..15: wert:= 'sehr gut'; ELSE wert:= 'Diese Punktzahl gibt es nicht!'; Pa_Ausgabe.Caption:=wert; end; |
Infest - Di 17.02.09 17:46
Xentar hat folgendes geschrieben : |
1. Verwende Delphi Tags hier im Forum
2. Schreib beim nächsten Mal dazu, WAS für ein Problem "er bringt".
3. Wert ist ein integer, Caption aber ein String. Also musst du das vorher umwandeln:
Delphi-Quelltext 1:
| wert := StrToInt(Pa_Ausgabe.Caption); | |
Hey, aber dann bringt er mir bei der Auflistung der Folgen ein Problem, weil dann ist es wieder mit Integer und String falsch....
Was muss ich dann mit denen machen in der Auflistung wie z.b 0 : wert:= 'ungenügend';
weil dann bringt er wieder den fehler :(
Xentar - Di 17.02.09 17:50
Ach, hatte da eben einen Denkfehler.
Dann musst du wert als String deklarieren, siehe die Antwort von TProgger.
Infest - Di 17.02.09 17:54
Mh, ich steh grad ehrlich gesagt auf dem Schlauch,
Ist mir alles logisch so gibt es jetzt auch Sinn habs grad ausprobiert aber jetzt zeigt er mir wenn ich dann im Programm auf Berechnen klick die Ausgabe nicht auf dem Panel an, also es kommt dann nicht als antwort: sehr gut wo auf dem panel erscheinen sollte eigentlich
weiß jemand woran das liegen könnte?
TProgger - Di 17.02.09 17:58
Wenn Pa_Ausgabe ein Panel ist, dann vielleicht noch "Pa_Ausgabe.Refresh" dranhängen?
Edit: Ich seh grad, da fehlt noch ein "end" (das von case)
Xentar - Di 17.02.09 18:00
Ich vermute einfach mal, du hast vergessen, die Caption des Panels zu ändern?
Infest - Di 17.02.09 18:01
TProgger hat folgendes geschrieben : |
| Wenn Pa_Ausgabe ein Panel ist, dann vielleicht noch "Pa_Ausgabe.Refresh" dranhängen? |
Geht immer noch nicht...
Mist ich bin verzweifeln. Muss morgen ein Vortrag in der Schule halten.
Ich möchte halt einfach die Schreibarbeit von dem Pa_Ausgabe.Caption sparen und die durch eine Variable ersetzen. Des mit dem Wert als string deklarieren ist ja noch ok, aber es geht irgendwie nicht =(
@ Xentar: Die caption von dem Panel ist leer logischerweise und der Name ist wiegesagt Pa_Ausgabe
TProgger - Di 17.02.09 18:04
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Bu_BerechnenClick(Sender: TObject); var wert: String; punkte: integer; begin punkte:= StrToInt(Ed_Punkte.Text); case punkte of 0 : wert:= 'ungenügend': 1..3: wert:= 'mangelhaft'; 4..6: wert:= 'ausreichend'; 7..9: wert:= 'befriedigend'; 10..12: wert:= 'gut'; 13..15: wert:= 'sehr gut'; ELSE wert:= 'Diese Punktzahl gibt es nicht!'; end; Pa_Ausgabe.Caption:=wert; end; |
So müsste es nun klappen ;)
Infest - Di 17.02.09 18:05
Super danke TProgger hat geklappt. Oh man des hab ich garnich gesehen das die Ausgabe noch vor dem end war.
Vielen Dank!!!
TProgger - Di 17.02.09 18:09
Bitte :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!