diff options
Diffstat (limited to 'packages/rtl-objpas/src/inc/fmtbcd.pp')
-rw-r--r-- | packages/rtl-objpas/src/inc/fmtbcd.pp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/packages/rtl-objpas/src/inc/fmtbcd.pp b/packages/rtl-objpas/src/inc/fmtbcd.pp index f26041d984..293bc346fc 100644 --- a/packages/rtl-objpas/src/inc/fmtbcd.pp +++ b/packages/rtl-objpas/src/inc/fmtbcd.pp @@ -797,10 +797,12 @@ INTERFACE {$endif} function __get_null : tBCD; Inline; + function __get_zero : tBCD; Inline; function __get_one : tBCD; Inline; PROPERTY NullBCD : tBCD Read __get_null; + ZeroBCD : tBCD Read __get_zero; OneBCD : tBCD Read __get_one; //{$define __lo_bh := 1 * ( -( MaxFmtBCDFractionSize * 1 + 2 ) ) } @@ -887,16 +889,20 @@ IMPLEMENTATION OneBCD_ : tBCD; function __get_null : tBCD; Inline; - begin __get_null := NullBCD_; - end; + end; - function __get_one : tBCD; Inline; + function __get_zero : tBCD; Inline; + begin + __get_zero := NullBCD_; + __get_zero.Precision := 1; + end; + function __get_one : tBCD; Inline; begin __get_one := OneBCD_; - end; + end; type range_digits = 1..maxfmtbcdfractionsize; @@ -1584,7 +1590,7 @@ IMPLEMENTATION begin _SELECT _WHEN aValue = 0 - _THEN result := NullBCD; + _THEN result := ZeroBCD; _WHEN aValue = 1 _THEN result := OneBCD; _WHEN aValue = low ( myInttype ) @@ -4130,12 +4136,6 @@ begin else { array or something like that } not_implemented; end; - // peephole, avoids problems with databases, mantis #30853 - if (Result.Precision = 0) and (Result.SignSpecialPlaces = 0) then - begin - Result.Precision := 10; - Result.SignSpecialPlaces := 2; - end; end; function VarToBCD ( const aValue : Variant ) : tBCD; |