Entwickler-Ecke
Sonstiges (Delphi) - Ausschließen von Minuszahlen
Tabakbrummel - So 22.02.09 09:51
Titel: Ausschließen von Minuszahlen
Hallo
Mein Problem ist ich möchte das negative Zahlen ausgeschlossen werden. Also wenn zum Beispiel -58 angezeigt wird soll dann 0 stehen.
Aber bei mein Code auf den Button clicke wird im Panel nichts Angezeigt.
Was mache ich hier Falsch?
Hier ist mal mein Code.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button4Click(Sender: TObject); var Dateiname : Real; begin Dateiname := Anzünder[ComboBox2.ItemIndex]; if Panel2.Caption >IntToStr(0) then begin Panel2.Caption := IntToStr(Trunc((StrToFloat(Edit3.Text) / Dateiname - StrToFloat(Edit4.Text)) / 2)) + ' Stück möglich'; end; end; |
Ulixes - So 22.02.09 10:49
Hallo,
wenn ich dein Problem richtig verstehe, brauchst du den Betrag einer Zahl, sodass du dies
dann addieren kannst und bei Null bist. Schau dafür mal unter der Funktion "Abs()".
Wenn du ein Problem mit der Erkennung von positiven bzw. negativen Zahlen hast, dann
schau dir die Funktion "sign" an, welche in der MathUnit integriert ist.
Ich hoffe, dass dir das hilft!
Schöne Grüße
//EDIT: Kann am Morgen wohl noch nicht klar denken. :oops:
Webo - So 22.02.09 10:51
Du prüfst nur darauf, ob die Zahl in Panel2.Caption größer 0 ist:
Tabakbrummel hat folgendes geschrieben : |
Delphi-Quelltext 1:
| if Panel2.Caption >IntToStr(0) then | |
Du hast dann aber nicht den Fall eingebaut, dass es eine Minuszahl ist (was du ja haben willst).
Wenn bei einer Minuszahl automatisch 0 angezeigt werden soll (oder du überhaupt etwas machen möchtest, wenn es eine Minuszahl ist), dann musst du wohl noch ne extra IF-Abfrage einbauen, oder dieses an die alte mit else anhängen.
Tabakbrummel - So 22.02.09 11:25
Hallo Webo
Erstmal danke für deine Antwort.
Ich habe es jetzt so gemacht.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if Panel2.Caption < IntToStr(0) then Panel2.Caption := IntToStr(Trunc((StrToFloat(Edit3.Text) / Dateiname - StrToFloat(Edit4.Text)) / 2)) + ' Stück möglich'; if Panel2.Caption > IntToStr(0) then Panel2.Caption := IntToStr(Trunc((StrToFloat(Edit3.Text) / Dateiname - StrToFloat(Edit4.Text)) / 2)) + ' Stück möglich' else Panel2.Caption := '0' + ' Stück möglich'; |
Blackheart666 - So 22.02.09 11:42
Das dürfte dann das gleiche sein.
Delphi-Quelltext
1: 2: 3: 4:
| if Panel2.Caption <> IntToStr(0) then Panel2.Caption := IntToStr(Trunc((StrToFloat(Edit3.Text) / Dateiname - StrToFloat(Edit4.Text)) / 2)) + ' Stück möglich' else Panel2.Caption := '0 Stück möglich'; |
:wink:
Kha - So 22.02.09 12:40
Webo hat folgendes geschrieben : |
| Du prüfst nur darauf, ob die Zahl in Panel2.Caption größer 0 ist: |
Nope. Er prüft, ob der
String in Caption größer als
'0' ist. Richtig wäre
Delphi-Quelltext
1:
| StrToInt(Panel2.Caption) > 0 |
Webo - So 22.02.09 12:55
Kha hat folgendes geschrieben : |
| Nope. Er prüft, ob der String in Caption größer als '0' ist. |
Das ist mir heute morgen gar nicht aufgefallen ... Du hast aber natürlich Recht :)
jaenicke - So 22.02.09 14:12
Und noch einfacher (und sauberer) wäre es, das an der Stelle zu machen, wo der Zahlenwert ins Panel geschrieben wird, anstatt aus der Anzeige im Panel einen String wieder auszulesen und weiterzuverarbeiten...
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!