Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - operator not applicable to this operand type


benjamin_200 - Di 16.09.08 17:21
Titel: operator not applicable to this operand type
Hallo,
ich habe ein Problem beim Programmieren eines if-clause. ( delphi 6!)


Delphi-Quelltext
1:
2:
3:
4:
if ergebnis1.Text > ergebnis2.text then punkt1.Text:= '3' else
        if ergebnis1.text = ergebnis2.text then punkt1.text := '1'  and
        if ergebnis1.Text = ergebnis2.text then punkt2.text := '1'
                else punkt2.text:= '3'  ;


wieso funktioniert das so nicht und was muss an stelle des semicolons dahin??
fehlermeldung: operator not applicable to this operand type.
er schickt mich zum weiterschreiben zum semicolon in der letzten zeile.
vielen dank für eure hilfe

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


delphiprogrammierer - Di 16.09.08 17:32

mach das AND weg dann ist zumindest der syntax ok



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if ergebnis1.Text > ergebnis2.text then
  punkt1.Text:= '3'
else if ergebnis1.text = ergebnis2.text then
  punkt1.text := '1'
else if ergebnis1.Text = ergebnis2.text then
  punkt2.text := '1'
else
  punkt2.text:= '3' ;


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


benjamin_200 - Di 16.09.08 17:36

hab ich leider auch probiert...dann folgende fehlermeldung:

missing operator or semicolon.


Dunkel - Di 16.09.08 17:37

Oder richtig klammern


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if (ergebnis1.Text > ergebnis2.text) then 
  punkt1.Text:= '3' 
else
  if ((ergebnis1.text = ergebnis2.text) and (ergebnis1.Text = ergebnis2.text)) then
    begin 
      punkt2.text := '1';
      punkt3.text := '1';
    end
  else 
    punkt2.text:= '3' ;


Edit:
Wobei Du im zweiten If-Statement auch das and and (ergebnis1.Text = ergebnis2.text) weglassen kannst; die erste Abfrage ist ja identisch.

Edit die zweite: falsch gelesen


benjamin_200 - Di 16.09.08 17:40

vielen dannk! dadran lags wohl;-)


Gausi - Di 16.09.08 17:40

Ich glaube, der korrekte Code für den gewünschten Effekt sieht so aus.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if ergebnis1.Text > ergebnis2.text then 
  punkt1.Text:= '3' 
else
  if ergebnis1.text = ergebnis2.text then 
  begin 
      punkt1.text := '1';  
      punkt2.text := '1';
  end
  else 
    punkt2.text:= '3';


Evtl. fehlen da aber auch noch ein paar StrToInts. ;-)


benjamin_200 - Di 16.09.08 17:45

wow perfekt. ich wollte grad den anderen code so umändern...aber danke. das is genau das was ich brauche:D