diff --git a/uutlSetHelper.inc b/uutlSetHelper.inc index 8e76f86..fadf6d0 100644 --- a/uutlSetHelper.inc +++ b/uutlSetHelper.inc @@ -6,6 +6,7 @@ public class function TryToSet(const Str: String; out Value: __SET_TYPE): boolean; overload; class function ToSet(const Str: String; const aDefault: __SET_TYPE): __SET_TYPE; overload; class function ToSet(const Str: String): __SET_TYPE; overload; + class function Compare(const aSet1, aSet2: __SET_TYPE): Integer; end; {$ELSEIF defined (__SET_IMPLEMENTATION)} @@ -64,6 +65,22 @@ begin end; end; +class function __SET_HELPER.Compare(const aSet1, aSet2: __SET_TYPE): Integer; +var + i: __ENUM_TYPE; +begin + result := 0; + for i := High(i) downto Low(i) do begin + if (i in aSet1) and not (i in aSet2) then begin + result := 1; + break; + end else if not (i in aSet2) and (i in aSet2) then begin + result := -1; + break; + end; + end; +end; + {$ENDIF} {$undef __SET_HELPER} {$undef __SET_TYPE}