Wie löst man das eleganter ???
Ich will nicht viele And's und Or's haben.
da würde ich diese Varianten bevorzugen
Delphi-Quellcode:
function CountChecked(AValues: Array of Boolean): Integer;
var
i: Integer;
begin
Result := 0;
for I := Low(AValues) to High(AValues) do
if AValues[i] then inc(Result);
end;
oder
Delphi-Quellcode:
function CountChecked(AValues: Array of Boolean): Integer;
var
i: Integer;
begin
Result := 0;
for I := Low(AValues) to High(AValues) do
Inc(Result, Ord(AValues[i] <> false));
end;
Aufruf:
Delphi-Quellcode:
if CountChecked([True, False, Boolean(3), Boolean(0), Boolean(99), Boolean(-1)]) = 1 then
...
So kann man beliebig viele Parameter übergeben und hat die Möglichkeit zu entscheiden
wie viele true sein müssen.