Autor Beitrag
malibu85
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Fr 21.12.07 15:40 
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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Fr 21.12.07 16:00 
Du hast c nicht zugewiesen sonder s!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Fr 21.12.07 16:15 
ausblenden 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;

_________________
Hallo Mutti
malibu85 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: 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
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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:

ausblenden 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;

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
malibu85 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Fr 21.12.07 17:16 
zum Glück jetzt stimmt es..war wohl doch nicht 1:1 abgetippt :)
danke