Entwickler-Ecke
Sonstiges (Delphi) - Zahlenwerte sollen nicht <0 werden...wie schaff ich das?
killercode - So 06.02.05 16:12
Titel: Zahlenwerte sollen nicht <0 werden...wie schaff ich das?
Hi!
Hab ein kleines Problem...
Ich möchte mit einem Bekannten ein textbasiertes OnlineRollenspiel schreiben und
bin grad an dem Punkt: Charaktererstellung. (Ich test grad alles mögliche für mich selbst...bin Anfänger! :D )
Sooo nun habe ich vorgegebene Atttributpunkte und die kann ich ja auch schon
auf ein Atttribut verteilen nur - ich kann mehr Punkte vergeben als ich habe (es zählt dann in den negativen bereich rein....)?!!!
Wie kann ich das unterbinden?
Bitte um schnelle, hilfreiche Anregungen!
thx&ciao
P.S.:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| ... procedure TForm2.FormCreate(Sender: TObject); begin Form2.Caption:='*Charaktermenü*'; name:=Namen.text; punkt:=5; punkte.Caption:=IntTostr(punkt); Strke.Caption:=IntToStr(stark); Treffsicher.Caption:=IntToStr(treff); Ausdauer.Caption:=IntToStr(ausd); end;
procedure TForm2.strupClick(Sender: TObject); begin stark:=StrToInt(Strke.Caption); stark:=stark+1; Strke.Caption:=IntToStr(stark); punkt:=StrToInt(Punkte.Caption); punkt:=punkt-1; punkte.Caption:=IntTostr(punkt);end; ... |
Bitte nicht schimpfen wenns schlecht/sinnlos/dumm gelöst wurde.
Es reagiert auf die UP- und DOWN-Schalte der Eigenschaft:Stärke.
sourcehunter - So 06.02.05 16:53
Du musst um die Anweisungen in TForm2.strupClick eine if-Abfrage schreiben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm2.strupClick(Sender: TObject); begin if punkt>0 then begin stark:=StrToInt(Strke.Caption); stark:=stark+1; Strke.Caption:=IntToStr(stark); punkt:=StrToInt(Punkte.Caption); punkt:=punkt-1; punkte.Caption:=IntTostr(punkt); end else ShowMessage('Was soll der Mist!!! Wenn ich sage, du hast keine Punkte mehr, dann hast du keine mehr!!!'); end; |
IngoD7 - So 06.02.05 16:56
Du kennst
if..then nicht?
Frage vorher ab, ob überhaupt noch Punkte übrig sind:
Delphi-Quelltext
1: 2: 3: 4:
| if punkt > 0 then begin ... end; |
killercode - So 06.02.05 17:37
Ach shyce! :D
Also:
1. DANKE!!! Aber ich kenn If...Then, aber
2. Hab die Schleife bei mir falsch gesetzt! ^^
3. Bin voll der Anfänger... :roll: :lol:
Vielen Dank Leute, jezze kanns weitergehn...
ciao
EDIT: OK hab jetzt die beiden anderen Atttribute (Konstitution und Treffsicherheit) eingebaut und was ist: Ich kann die 5 Punkte verteilen aber jetzt kann ich auch wieder in den negativen Bereich der Attribute, damit kann ich die Skillpunkte wieder auf 5 Hochtreiben und sozusagen eine Eigenschaft total in den Minusbereich treiben und eine andere dafür total hoch...wieso kann man nicht sagen [X Element der pos. Ganzzahlen] ???
Oder geht das irgendwie????
thx
IngoD7 - Mo 07.02.05 10:25
killercode hat folgendes geschrieben: |
Ich kann die 5 Punkte verteilen aber jetzt kann ich auch wieder in den negativen Bereich der Attribute, damit kann ich die Skillpunkte wieder auf 5 Hochtreiben und sozusagen eine Eigenschaft total in den Minusbereich treiben und eine andere dafür total hoch... |
Dann sitzen deine if-Abfragen immer noch oder schon wieder falsch. Da aber niemand deinen aktuellen Code kennt ...
killercode hat folgendes geschrieben: |
wieso kann man nicht sagen [X Element der pos. Ganzzahlen] ??? |
Kann man ja, aber hilft dir nichts. Wenn du trotzdem versuchst, noch einen abzuziehen, obwohl der Wert schon auf Null ist, wird's trotzdem knallen (Programmfehler oder logischer Fehler (Rückwärtsüberlauf bei Typ Byte, z.B.)).
Du wirst wohl oder übel - wie oben beschrieben - das Subtrahieren durch eine entsprechende if-Abfrage verhindern müssen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!