mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 03:39:33 +02:00
* Implement ConvUnitAdd, ConvUnitDiff, ConvUnitInc and ConvUnitDec bug #39769
This commit is contained in:
parent
7da3e17571
commit
7886233b0e
@ -52,6 +52,18 @@ function ConvUnitCompareValue(const AValue1: Double; const AType1: TConvType;
|
|||||||
function ConvUnitSameValue(const AValue1: Double; const AType1: TConvType;
|
function ConvUnitSameValue(const AValue1: Double; const AType1: TConvType;
|
||||||
const AValue2: Double; const AType2: TConvType): Boolean;
|
const AValue2: Double; const AType2: TConvType): Boolean;
|
||||||
|
|
||||||
|
function ConvUnitAdd(const AValue1: Double; const AType1: TConvType;
|
||||||
|
const AValue2: Double; const AType2, AResultType: TConvType): TConvUtilFloat;
|
||||||
|
function ConvUnitDiff(const AValue1: Double; const AType1: TConvType;
|
||||||
|
const AValue2: Double; const AType2, AResultType: TConvType): TConvUtilFloat;
|
||||||
|
|
||||||
|
function ConvUnitDec(const AValue: Double; const AType: TConvType;
|
||||||
|
const AAmount: Double; const AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
function ConvUnitDec(const AValue: Double; const AType, AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
function ConvUnitInc(const AValue: Double; const AType: TConvType;
|
||||||
|
const AAmount: Double; const AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
function ConvUnitInc(const AValue: Double; const AType, AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
|
||||||
function ConvFamilyToDescription(const AFamily: TConvFamily): string;
|
function ConvFamilyToDescription(const AFamily: TConvFamily): string;
|
||||||
function ConvTypeToDescription(const AType: TConvType): string;
|
function ConvTypeToDescription(const AType: TConvType): string;
|
||||||
function DescriptionToConvFamily(const ADescription: String; out AFamily: TConvFamily): Boolean;
|
function DescriptionToConvFamily(const ADescription: String; out AFamily: TConvFamily): Boolean;
|
||||||
@ -117,6 +129,37 @@ Type ResourceData = record
|
|||||||
var TheUnits : array of ResourceData =nil;
|
var TheUnits : array of ResourceData =nil;
|
||||||
TheFamilies : array of string =nil;
|
TheFamilies : array of string =nil;
|
||||||
|
|
||||||
|
function ConvUnitDec(const AValue: Double; const AType: TConvType;
|
||||||
|
const AAmount: Double; const AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
|
||||||
|
var
|
||||||
|
D1: Double;
|
||||||
|
|
||||||
|
begin
|
||||||
|
D1:=Convert(AAmount,AAmountType,AType);
|
||||||
|
result:=AValue-D1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ConvUnitDec(const AValue: Double; const AType, AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
begin
|
||||||
|
result:=ConvUnitDec(AValue, AType, 1.0, AAmountType);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ConvUnitInc(const AValue: Double; const AType: TConvType;
|
||||||
|
const AAmount: Double; const AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
|
||||||
|
var
|
||||||
|
D1: Double;
|
||||||
|
|
||||||
|
begin
|
||||||
|
D1:=Convert(AAmount,AAmountType,AType);
|
||||||
|
result:=AValue+D1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ConvUnitInc(const AValue: Double; const AType, AAmountType: TConvType): TConvUtilFloat;
|
||||||
|
begin
|
||||||
|
result:=ConvUnitInc(AValue, AType, 1.0, AAmountType);
|
||||||
|
end;
|
||||||
|
|
||||||
function ConvFamilyToDescription(const AFamily: TConvFamily): string;
|
function ConvFamilyToDescription(const AFamily: TConvFamily): string;
|
||||||
|
|
||||||
@ -396,6 +439,24 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function ConvUnitAdd(const AValue1: Double; const AType1: TConvType;
|
||||||
|
const AValue2: Double; const AType2, AResultType: TConvType): TConvUtilFloat;
|
||||||
|
|
||||||
|
var
|
||||||
|
D1, D2: Double;
|
||||||
|
|
||||||
|
begin
|
||||||
|
D1:=ConvertFrom(AType1, AValue1);
|
||||||
|
D2:=ConvertFrom(AType2,AValue2);
|
||||||
|
result:=ConvertTo(D1+D2,AResultType);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ConvUnitDiff(const AValue1: Double; const AType1: TConvType;
|
||||||
|
const AValue2: Double; const AType2, AResultType: TConvType): TConvUtilFloat;
|
||||||
|
begin
|
||||||
|
result:=ConvUnitAdd(AVAlue1, ATYpe1, -AValue2, AType2, AResultType);
|
||||||
|
end;
|
||||||
|
|
||||||
Constructor TConvTypeInfo.Create(Const AConvFamily : TConvFamily;const ADescription:String);
|
Constructor TConvTypeInfo.Create(Const AConvFamily : TConvFamily;const ADescription:String);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user