Thema: Delphi Case Probleme

Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#5

Re: Case Probleme

  Alt 13. Nov 2007, 19:08
Zitat von Andidreas:
aloha,

mit der case funktion bin ich noch nicht so bewandert...
kann sein das ich hier eine anfänger frage stelle, aber ich weiß grad leider nicht wo mein problem ist...

hier wäre mal mein case block

Delphi-Quellcode:
  Case strgrid_interfaceval.Cells[2, 1] of
    'ZDL1;' : lbl_carrier.Caption := 'Sped1';
    'ZDP3;' : lbl_carrier.Caption := 'Sped2';
    'ZDU1;' : lbl_carrier.Caption := 'Sped3';
    'ZDG1;' : lbl_carrier.Caption := 'Sped4;
'ZDG2;' : lbl_carrier.Caption := 'Sped5';
'ZDG3;' : lbl_carrier.Caption := 'Sped6';
End;
der inhalt von strgrid_interfaceval.Cells[2, 1] müsste ja vom typ string sein...
beim compelieren erhalt ich aber jetzt die fehlermeldung "Inkompatible Typen 'Integer' und 'string'"
weiß jemand woran das liegt???
Wie schon erklärt, keine Strings. Wenn es so aussieht wie oben, könntest du aber in Ordinalzahlen umwandeln:

Delphi-Quellcode:
type TCellword : case boolean of
                   false : (W : word);
                   true : (Hi,Lo : Byte);
                 end;
  {...}
var Cellword : TCellword;
  {...}
Cellword.Hi := ord (strgrid_interfaceval.Cells[2, 1][3]);
Cellword.LO := ord (strgrid_interfaceval.Cells[2, 1][4]);
 Case Cellword.W of
  {...}
  { NOT tested! }
Da die Labels bei Case Konstanten sein müssen, must du sie wohl mit dem Taschenrechner ausrechnen - Delphi hat keine Macros für Preprozessor. (Kommentar zufügen, damit man weiss, welcher Text gemeint ist).

Ich würde aber einfach eine Reihe if-Statements hintereinander nehmen, ist besser lesbar.

Gruss Reinhard
  Mit Zitat antworten Zitat