| Autor |
Beitrag |
Tabakbrummel
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: So 22.02.09 09:51
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; |
_________________ MfG
Tabakbrummel
|
|
Ulixes
      
Beiträge: 63
Win Vista Home Premium
Delphi 2009 Professional, XHTML, CSS, PHP
|
Verfasst: 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. 
Zuletzt bearbeitet von Ulixes am So 22.02.09 10:57, insgesamt 1-mal bearbeitet
|
|
Webo
      
Beiträge: 577
Erhaltene Danke: 14
Win 7, Debian
C# (Visual Studio 2013), PHP, C, C++ (Eclipse, KDevelop)
|
Verfasst: 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.
_________________ Man kann nur das aus dem Ärmel schütteln, was man auch vorher reingesteckt hat.
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: 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'; |
_________________ MfG
Tabakbrummel
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: So 22.02.09 11:42
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: 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
      
Beiträge: 577
Erhaltene Danke: 14
Win 7, Debian
C# (Visual Studio 2013), PHP, C, C++ (Eclipse, KDevelop)
|
Verfasst: So 22.02.09 12:55
_________________ Man kann nur das aus dem Ärmel schütteln, was man auch vorher reingesteckt hat.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1753
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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...
|
|