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