You've already forked lazarus-ccr
Better handling of currency property comparison in "Equal".
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6675 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -5276,6 +5276,11 @@ var
|
|||||||
selfTypeInfo : PTypeInfo;
|
selfTypeInfo : PTypeInfo;
|
||||||
srcObj, dstObj : TObject;
|
srcObj, dstObj : TObject;
|
||||||
ok : Boolean;
|
ok : Boolean;
|
||||||
|
currencyA, currencyB : record
|
||||||
|
case Integer of
|
||||||
|
0 : (CurrencyValue : Currency;);
|
||||||
|
1 : (Int64Value : Int64;);
|
||||||
|
end;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
if not Assigned(ACompareTo) then
|
if not Assigned(ACompareTo) then
|
||||||
@ -5316,7 +5321,20 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
tkFloat :
|
tkFloat :
|
||||||
|
begin
|
||||||
|
case GetTypeData(p^.PropType{$IFDEF WST_DELPHI}^{$ENDIF})^.FloatType of
|
||||||
|
ftSingle, ftDouble, ftExtended :
|
||||||
ok := (GetFloatProp(Self,p^.Name) = GetFloatProp(ACompareTo,p^.Name));
|
ok := (GetFloatProp(Self,p^.Name) = GetFloatProp(ACompareTo,p^.Name));
|
||||||
|
ftCurr :
|
||||||
|
begin
|
||||||
|
currencyA.CurrencyValue := GetFloatProp(Self,p^.Name);
|
||||||
|
currencyB.CurrencyValue := GetFloatProp(ACompareTo,p^.Name);
|
||||||
|
ok := (currencyA.Int64Value = currencyB.Int64Value);
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
ok := (GetFloatProp(Self,p^.Name) = GetFloatProp(ACompareTo,p^.Name));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
if not ok then
|
if not ok then
|
||||||
Break;
|
Break;
|
||||||
|
Reference in New Issue
Block a user