Zitat von
Hansa:
Case funktioniert auch nur mit ordinalen Typen, also nicht mit beispielsweise strings oder floats (=reals)
Was du (mal ganz spezifisch den fall betrachtet) tun könntest wäre folgendes:
statt
Delphi-Quellcode:
Radius := StrToFloat(Form1.StringGrid1.Cells[4, i]);
if Radius <> 3.4 then
if Radius <> 4.25 then
if Radius <> 5.1 then
if Radius <> 6 then
if Radius <> 7 then
if Radius <> 8.75 then
if Radius <> 10.5 then
if Radius <> 13.25 then
if Radius <> 16 then
begin
Form1.StringGrid1.Cells[9, i] := 'ERROR';
end;
dasda
Delphi-Quellcode:
Radius: integer;
Radius := round(StrToFloat(Form1.StringGrid1.Cells[4, i]) * 100);
if not (Radius in [340, 425, 510, 600, 700, 875, 1050, 1325, 1600]) then
Form1.StringGrid1.Cells[9, i] := 'ERROR';
schreiben
Oder du schreibst dir eine Funktion:
Delphi-Quellcode:
function IsWertIn(Wert: extended; Werte: array of extended): boolean;
begin
result := true;
for i := 0 to high(Werte) do
if Wert = Werte[i] then //vorsicht hier: extendeds vergleichen sollte man nicht, sondern mit einer abweichung von +/- 0.josef vergleichen
exit;
result := false;
end;