소스 검색

* Implemented TFMTBcdFactory.Clear and TFMTBcdFactory.Copy methods.

git-svn-id: trunk@9552 -
yury 17 년 전
부모
커밋
5f8bd39408
1개의 변경된 파일17개의 추가작업 그리고 0개의 파일을 삭제
  1. 17 0
      rtl/objpas/fmtbcd.pp

+ 17 - 0
rtl/objpas/fmtbcd.pp

@@ -831,6 +831,8 @@ IMPLEMENTATION
       function GetInstance(const v : TVarData): tObject; OVERRIDE;
       function GetInstance(const v : TVarData): tObject; OVERRIDE;
     PUBLIC
     PUBLIC
       procedure BinaryOp(var Left: TVarData; const Right: TVarData; const Operation: TVarOp); override;
       procedure BinaryOp(var Left: TVarData; const Right: TVarData; const Operation: TVarOp); override;
+      procedure Clear(var V: TVarData); override;
+      procedure Copy(var Dest: TVarData; const Source: TVarData; const Indirect: Boolean); override;
     end;
     end;
 
 
     TFMTBcdVarData = CLASS(TPersistent)
     TFMTBcdVarData = CLASS(TPersistent)
@@ -3678,6 +3680,21 @@ procedure TFMTBcdFactory.BinaryOp(var Left: TVarData; const Right: TVarData; con
       RaiseInvalidOp;
       RaiseInvalidOp;
     end;
     end;
   end;
   end;
+  
+procedure TFMTBcdFactory.Clear(var V: TVarData);
+  begin
+    FreeAndNil(tObject(V.VPointer));
+    V.VType:=varEmpty;
+  end;
+
+procedure TFMTBcdFactory.Copy(var Dest: TVarData; const Source: TVarData; const Indirect: Boolean);
+  begin
+    if Indirect then
+      Dest.VPointer:=Source.VPointer
+    else
+      Dest.VPointer:=TFMTBcdVarData.Create(TFMTBcdVarData(Source.VPointer).BCD);
+    Dest.VType:=Vartype;
+  end;
 
 
 {$if declared ( myMinIntBCD ) }
 {$if declared ( myMinIntBCD ) }
 (*
 (*