Browse Source

* Implement CompatibleConversionType and CompatibleConversionType for ConvUtils unit bug #39770

marcoonthegit 3 years ago
parent
commit
167f434e84
1 changed files with 15 additions and 0 deletions
  1. 15 0
      packages/rtl-objpas/src/inc/convutil.inc

+ 15 - 0
packages/rtl-objpas/src/inc/convutil.inc

@@ -73,6 +73,8 @@ procedure GetConvFamilies(out AFamilies: TConvFamilyArray);
 procedure GetConvTypes(const AFamily: TConvFamily; out ATypes: TConvTypeArray);
 
 function ConvTypeToFamily(const AType: TConvType): TConvFamily;
+function CompatibleConversionType(const AType: TConvType; const AFamily: TConvFamily): Boolean;
+function CompatibleConversionTypes(const AFrom, ATo: TConvType): Boolean;
 
 Type
   TConvTypeInfo = Class(Tobject)
@@ -262,6 +264,19 @@ begin
     result:=TheUnits[AType].Fam;
 end;
 
+function CompatibleConversionType(const AType: TConvType;
+  const AFamily: TConvFamily): Boolean;
+
+begin
+  result:=ConvTypeToFamily(AType)=AFamily;
+end;
+
+function CompatibleConversionTypes(const AFrom, ATo: TConvType): Boolean;
+
+begin
+  result:=ConvTypeToFamily(AFrom)=ConvTypeToFamily(ATo);
+end;
+
 Function RegisterConversionFamily(Const S:String):TConvFamily;
 
 var i,l : Longint;