Przeglądaj źródła

* writer.writeset, reader.readset as per mantis 10501

git-svn-id: trunk@14200 -
marco 15 lat temu
rodzic
commit
805e5a79c6

+ 2 - 0
rtl/objpas/classes/classesh.inc

@@ -1191,6 +1191,7 @@ type
     function ReadIdent: string;
     function ReadInteger: Longint;
     function ReadInt64: Int64;
+    function ReadSet(EnumType: Pointer): Integer; 
     procedure ReadListBegin;
     procedure ReadListEnd;
     function ReadRootComponent(ARoot: TComponent): TComponent;
@@ -1369,6 +1370,7 @@ type
     procedure WriteIdent(const Ident: string);
     procedure WriteInteger(Value: Longint); overload;
     procedure WriteInteger(Value: Int64); overload;
+    procedure WriteSet(Value: LongInt; SetType: Pointer); 
     procedure WriteListBegin;
     procedure WriteListEnd;
     procedure WriteRootComponent(ARoot: TComponent);

+ 11 - 0
rtl/objpas/classes/reader.inc

@@ -1065,6 +1065,17 @@ begin
     Result := ReadInteger;
 end;
 
+function TReader.ReadSet(EnumType: Pointer): Integer; 
+begin
+  if FDriver.NextValue = vaSet then
+    begin
+      FDriver.ReadValue;
+      Result := FDriver.ReadSet(enumtype);
+    end 
+  else
+    Result := ReadInteger;
+end;
+
 procedure TReader.ReadListBegin;
 begin
   CheckValue(vaList);

+ 6 - 0
rtl/objpas/classes/writer.inc

@@ -804,6 +804,12 @@ begin
   Driver.WriteInteger(Value);
 end;
 
+procedure TWriter.WriteSet(Value: LongInt; SetType: Pointer); 
+
+begin
+  Driver.WriteSet(Value,SetType);
+end;
+
 procedure TWriter.WriteVariant(const VarValue: Variant);
 begin
   Driver.WriteVariant(VarValue);