![]() |
case Wertausgabe Endbetrag
Ich habe ein Problem in meiner Programmierung. UNd zwar weiß ich nicht wie ich jetzt den bruttowert ausgeben soll!
Am besten ebe ich euch den Quellcode.
Delphi-Quellcode:
So!! Wo steckt der fehler?
procedure TForm2.RadioGroup1Click(Sender: TObject);
var bruttowert, nettowert, p: integer; begin nettowert := strtoint (edit2.text); case RadioGroup1.ItemIndex of 0: bruttowert := nettowert * 1; 1: bruttowert := nettowert * (7/100) + nettowert ; 2: bruttowert := nettowert + (19/100) + nettowert ; else p := strtoint (edit1.Text); 3: bruttowert := nettowert * (p/100) + nettowert ; end; panel1.Text := inttostr (bruttowert end; end; [edit=Matze][delphi]-Tags gesetzt. MfG, Matze[/edit] |
Re: case Wertausgabe Endbetrag
Hallo,
die case-Anweisung sieht so aus:
Delphi-Quellcode:
Es werden die Werte im oberen Abschnitt überprüft und falls <var> einen anderen Wert hat, wird der else-Abschnitt ausgeführt. In diesem kannst du nicht mehr - wie du es machst - auf den Wert zugreifen. Das ginge dort beispielsweise mit einer if-Abfrage.
case <var> of
0: ...; 1: ...; 2: ...; else ... end; Edit: Setze zukünftig bitte die [delphi]-Tags um deinen Delphi-Code. |
Re: case Wertausgabe Endbetrag
Zitat:
ich glaube so sollte es sein, nicht getestet:
Delphi-Quellcode:
procedure TForm2.RadioGroup1Click(Sender: TObject);
var bruttowert, nettowert, p: integer; begin nettowert := strtoint (edit2.text); case RadioGroup1.ItemIndex of 0: bruttowert := nettowert; 1: bruttowert := nettowert * (7 div 100) + nettowert ; 2: bruttowert := nettowert + (19 div 100) + nettowert ; // elsewas willst du hier mit nem else?? das ist nur auf eine if clausel anwendbar in delphi.. // p := strtoint (edit1.Text); 3: bruttowert := nettowert * (p div 100) + nettowert ; end; panel1.caption := inttostr (bruttowert); end; end; |
Re: case Wertausgabe Endbetrag
Das ist nicht mein PRoblem! Ich muss doch eigentlich das else weglassen, weil ich ja eine Radiogroub verwende und muss daher die Radiobox'3' in das case einsetzen nur ich möchte den wert in dem edit-Feld ja in die Rechnung einbringen und da ist auch das problem, dass ich habe.
Das zweite PRoblem ist, wie bekomme ich das ergebniss der einzelen Rechnungen auf dem Panel angezeigt??? |
Re: case Wertausgabe Endbetrag
Zitat:
|
Re: case Wertausgabe Endbetrag
OK dankeschön. Mein Problem hat sich doch gerade aufgelöst
|
Re: case Wertausgabe Endbetrag
Zitat:
|
Re: case Wertausgabe Endbetrag
Zitat:
ja ich hab das ganze schon veränder, ja das p muss natürlich drin bleiben und den text des panels setzt du mit caption, ich hab das ganze geändert:
Delphi-Quellcode:
procedure TForm2.RadioGroup1Click(Sender: TObject);
var bruttowert, nettowert, p: integer; begin p := strtoint (edit1.Text); <--- hier den p wert auslesen aus dem edit nettowert := strtoint (edit2.text); case RadioGroup1.ItemIndex of 0: bruttowert := nettowert; 1: bruttowert := nettowert * (7 div 100) + nettowert ; <-- anstelle von \ lieber ein div verwenden 2: bruttowert := nettowert + (19 div 100) + nettowert ; // elsewas willst du hier mit nem else?? das ist nur auf eine if clausel anwendbar in delphi.. 3: bruttowert := nettowert * (p div 100) + nettowert ; end; panel1.caption := inttostr (bruttowert); <-- hier das panel den text zuordnen mit caption end; end; |
Re: case Wertausgabe Endbetrag
Er soll auch die Warnungen/Hinweise nicht einfach ignorieren. Bruttowert ist anfangs nicht mal initialisiert.
|
Re: case Wertausgabe Endbetrag
ICh habe doch noch ein Problem!! Er rechnet mir die Werte nicht aus!
Wenn ich als Nettowert 1000 eingebe, dann schreibt er mir bei der ersten Radio wie rwartet 1000 auch hin, aber bei den anderen schreibt er ebenfals 1000 und dass kann ja laut Rechnung nicht sein! Und bei der letzten Radio gibt er mir eine völlig andere Zahl an |
Re: case Wertausgabe Endbetrag
Aso!!! Das wird wohl mein Problem gewesen sein. Danke an alle mithelfer ich denke ich komme jetzt zurecht
|
Re: case Wertausgabe Endbetrag
Hansa!! Du meinst wahrscheinlich, dass ich den bruttowert noch definieren muss oder?
|
Re: case Wertausgabe Endbetrag
Ja sicher, ah, Völklinger Schlaumeier. :mrgreen: Überlege wie der Wert anfangs aussieht und wie er dann verändert wird, z.B. bei rg.ItemIndex = 4.
|
Re: case Wertausgabe Endbetrag
Wie meinst du das? Ich verstehe nicht!
|
Re: case Wertausgabe Endbetrag
Scheiße!!! ICh weiß nicht wie ich es jetzt definieren muss... Ich bin verwirrt
|
Re: case Wertausgabe Endbetrag
Schreibe vor die 1. Zuweisung :
Delphi-Quellcode:
dann ist Bruttowert zumindest 0 und keine Zufallszahl.
Bruttowert := 0;
|
Re: case Wertausgabe Endbetrag
Einfach vor dem Case einen Wert zuweisen oder halt einen Else-Zweig hinzufügen.
|
Re: case Wertausgabe Endbetrag
@Muddy: Hör bitte mit der ständigen Pusherei auf und zügel deine Ausdrucksweise.
|
Re: case Wertausgabe Endbetrag
Es ist immernoch das Problem da, dass er mir nicht den Bruttowert Ausgibt!
Er gibt ihn mir zwar aus, aber er rechnet nicht die Werte so aus wie er es tun sollte. Bei der radio=0 zeigt er 1000 an bei der radio=1 zeigt er 1000 an bei der radio=2 zeigt er 2000 an bei der radio=3 zeigt er 1000 an Das kann ja nicht sein! |
Re: case Wertausgabe Endbetrag
Weil ja 7 DIV 100 0 ergibt
|
Re: case Wertausgabe Endbetrag
ICh muss aber einen Prozentwert berechnen. Zu dem Nettowert sollen 7% dazugerechnet werden!
|
Re: case Wertausgabe Endbetrag
Dann solltest du keine Integer verwenden.
|
Re: case Wertausgabe Endbetrag
Jetzt zeigt er mir aber ein Fehler an.
Code:
procedure TForm2.RadioGroup1Click(Sender: TObject);
var bruttowert, nettowert, p: double; begin p := strtofloat (edit1.Text); nettowert := strtofloat (edit2.text); case RadioGroup1.ItemIndex of 0: bruttowert := nettowert; 1: bruttowert := nettowert * (7 div 100) + nettowert ; 2: bruttowert := nettowert + (19 div 100) + nettowert ; 3: bruttowert := nettowert * (p div 100) + nettowert ; // hier zeigt er einen Fehler an end; panel1.caption := floattostr (bruttowert); end; end. |
Re: case Wertausgabe Endbetrag
Delphi-Quellcode:
Entsprechend bei den anderen Berechnungen
bruttowert := nettowert * p / 100 + nettowert ;
|
Re: case Wertausgabe Endbetrag
Ist es gewollt das wenn RadioGroup1.ItemIndex == 2 dass dan 2 mal nettowert addiert wird oder hast du hier ein + mit einem * verwechselt?
Ansonsten musst du entweder runden (bruttowert := Round(nettowert * (7 /100) + nettowert)) oder du verwändest statt Integer Real/Double/Extended Dann musst du aber FloatToStr statt IntToStr nehmen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz