Einzelnen Beitrag anzeigen

alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#34

AW: Elegante Lösung gesucht, 3 Boolean-Werte, nur einer darf gesetzt sein

  Alt 24. Feb 2016, 17:33
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.
Alexander
  Mit Zitat antworten Zitat