|
|
@@ -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} |
|
|
|