Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#27

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

  Alt 24. Feb 2016, 13:07
if Ord(A) + Ord(B) + Ord(C) <= 1 then (maximal 1) und if Ord(A) + Ord(B) + Ord(C) = 1 then (immer 1)
geht halt nur, wenn wirklich nur True und False drin stehen.
Einen Cast von Boolean auf Byte und zurück macht Delphi immer nur binär.

Es gibt in Pascal keine Möglichkeit zu steuern ob Binär oder Logisch konvertiert wird. (es gibt immer nur je Eines von Beidem)

if Ord(A <> False) + Ord(B <> False) + Ord(C <> False) = {<=} 1 then

NOT arbeitet bei einem Boolean logisch und nicht binär (glaub ich), also ginge auch
if Ord(not A) + Ord(not B) + Ord(not C) = {>=} 2 {3-1} then
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat