Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Brauch dringend Hilfe für Klausur


DelphiSchüler1989 - Mo 15.11.10 18:26
Titel: Brauch dringend Hilfe für Klausur
Schreibe morgen eine Klasur nach und bin immomen fleißig am üben.
Bitte um möglichst schnelle Hilfe. Schon mal vielen Dank im Vorraus.

Zum Programm:

Es soll ein Bruttobetrag eingelesen werden und mit berücksichtigung der Steuerklasse (A,B bzw. in der Radiogroup 0,1) die richtige Steuer gewählt und in einer Listbox ausgegeben werden.

Quellcode:


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:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
type
  TForm1 = class(TForm)
    EditBrutto: TEdit;
    RadioGroupGeschlecht: TRadioGroup;
    RadioGroupKlasse: TRadioGroup;
    ListBoxAusgabe: TListBox;
    ButtonBerechnen: TButton;
    procedure ButtonBerechnenClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

VAR Brutto,Steuer:integer;

procedure TForm1.ButtonBerechnenClick(Sender: TObject);
begin
Brutto:=StrToInt(EditBrutto.text);

CASE RadioGroupKlasse.itemindex OF

0:Begin
  If Brutto>2000 Then Steuer:=20 Else
  If Brutto>3000 Then Steuer:=30 Else
  If Brutto>5000 Then Steuer:=40
  end;
1:Begin
  If Brutto>2000 Then Steuer:=20 Else
  If Brutto>3000 Then Steuer:=30 Else
  If Brutto>5000 Then Steuer:=40
  end;
ListBoxAusgabe.items.add('Steuer');

end;

end;

end.



Problem:
Die Zeile "ListBoxAusgabe.items.add('Steuer');" ist markiert und folgender Fehler wird von Delphi angegeben:
[Error] Arbeit1.pas(49): Constant expression expected

Moderiert von user profile iconMartok: Delphi-Tags gesetzt


Bergmann89 - Mo 15.11.10 19:09

Hey,

die Zeile muss ein end weiter runter. So wie du es jetzt hast steht das ganze noch in der case-Anweisung, und da erwartet er halt einen konstanten Integer-Wert.

€:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
  Brutto:=StrToInt(EditBrutto.text);

  case RadioGroupKlasse.itemindex OF
    0:Begin
      If Brutto>2000 Then Steuer:=20 Else
      If Brutto>3000 Then Steuer:=30 Else
      If Brutto>5000 Then Steuer:=40
    end;
    1:Begin
      If Brutto>2000 Then Steuer:=20 Else
      If Brutto>3000 Then Steuer:=30 Else
      If Brutto>5000 Then Steuer:=40
    end;
    //ListBoxAusgabe.items.add('Steuer');
  end;
  ListBoxAusgabe.items.add('Steuer');


Benutz bitte das nächste mal die Delphi Tags, dass der Code auch ordentlich angezeigt wird: <span class="inlineSyntax"><span class="codecomment">{PROTECTTAG1697087c7d8537e352055cc022cb6a0b}</span></span> ;)

Mfg Bergmann


Gerd Kayser - Mo 15.11.10 19:10

user profile iconDelphiSchüler1989 hat folgendes geschrieben Zum zitierten Posting springen:
Die Zeile "ListBoxAusgabe.items.add('Steuer');" ist markiert und folgender Fehler wird von Delphi angegeben:
Wenn Du Deinen Quelltext richtig formatiert hättest, wäre es Dir aufgefallen, daß die Zeile


Delphi-Quelltext
1:
ListBoxAusgabe.items.add('Steuer');                    

noch innerhalb der Case-Anweisung liegt. Da gehört sie aber nicht hin.
Außerdem sind die if-Abfragen hier

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
0:Begin 
If Brutto>2000 Then Steuer:=20 Else 
If Brutto>3000 Then Steuer:=30 Else 
If Brutto>5000 Then Steuer:=40 
end
1:Begin 
If Brutto>2000 Then Steuer:=20 Else 
If Brutto>3000 Then Steuer:=30 Else 
If Brutto>5000 Then Steuer:=40 
end;
allesamt falsch. Wenn das Gehalt 3500 beträgt, wird der Wert auf 20 gesetzt, weil die Else-Zweige nicht mehr durchlaufen werden.