Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - probleme mit case-Anweisung
malibu85 - Fr 21.12.07 15:40
Titel: probleme mit case-Anweisung
Hallo, ich habe ein Problem mit einer case-anweisung. Ich möchte über ein Edit-feld ein Zeichen einlesen. Wenn die gewünschten Zeichen A oder x eingegeben wurde, soll der dazu gehörige Text auch ausgegeben werden wenn keines der beiden Zechen eingegeben wurde, dann soll die else - anweisung ausgeführt werden. Irgendwie springt mein Programm sofort in die else-anweisung und gibt bei jeder eingabe den Text der else-anweisung aus obwohl die richtigen zeichen eingegeben wurden
hier der quelltext
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:
| var Form1: TForm1; c:char; s:string;
implementation
{$R *.nfm}
procedure TForm1.Button1Click(Sender: TObject); begin
s:=edit1.Text;
case c of 'A':s:='Sie haben ein großes A eingegeben'; 'x':s:='Sie haben ein x gedrückt';
else s:='Dies ist eine ungültige Eingabe'; end;
label1.caption:=s;
end; |
Kroko - Fr 21.12.07 16:00
Du hast c nicht zugewiesen sonder s!
Calculon - Fr 21.12.07 16:15
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var s: string; begin case UpCase(key) of 'A': s:='Sie haben ein großes A eingegeben'; 'X': s:='Sie haben ein x gedrückt'; else s := 'Dies ist eine ungültige Eingabe'; end; Label1.Caption := s; end; |
malibu85 - Fr 21.12.07 17:08
so ganz habe ich das noch nicht verstanden. Das Beispiel von oben ist aus enem Buch und ich habe es 1 ´zu 1 abgetippt und es hat nicht funktioniert. Ich bekomme immer Fehlermeldungen bezüglich der Datentypen char und integer oder string und integer. Aus diesem Grug abe ich ein anders Beispiel abgetippt auch 1:1. Auch hier bekomme ich die Fehlermeldung [Pascal Fehler] Unit1.pas(36): E2010 Inkompatible Typen: 'Integer' und 'Char'
dabei ist mir der Quelltext ziemlich logisch aufgebaut...kann mir nicht vorstellen, dass es nicht klappt
hier der Quelltext
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:
| var Form1: TForm1; eingabe: integer; ausgabe:string;
implementation
{$R *.nfm}
procedure TForm1.Button1Click(Sender: TObject); begin
eingabe:=StrToInt(edit1.Text);
case eingabe of '1':ausgabe:='Sie haben eine 1 eingegeben'; '2':ausgabe:='Sie haben eine 2 eingegeben';
end;
label1.Caption:=ausgabe;
end; |
elundril - Fr 21.12.07 17:13
weg mit den Hochkommas bei der Case-anweisung. Hochkommas signalisieren dem Compiler immer einen String. Da du aber interger hast regt sich der Compiler auf. Also so bitte:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var Form1: TForm1; eingabe: integer; ausgabe:string;
implementation
{$R *.nfm}
procedure TForm1.Button1Click(Sender: TObject); begin eingabe:=StrToInt(edit1.Text);
case eingabe of 1:ausgabe:='Sie haben eine 1 eingegeben'; 2:ausgabe:='Sie haben eine 2 eingegeben'; end;
label1.Caption:=ausgabe;
end; |
malibu85 - Fr 21.12.07 17:16
zum Glück jetzt stimmt es..war wohl doch nicht 1:1 abgetippt :)
danke
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!