From 79e39c6318ec00135f1ec36402f78a2592bb544a Mon Sep 17 00:00:00 2001 From: alexs75 Date: Wed, 15 Apr 2020 22:28:52 +0000 Subject: [PATCH] RxFPC:RxDBGrid - check numeric field MinValue and MaxValue on RxDBGrid rxUpDown editor git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7386 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/trunk/rxdb/rxdbgrid.pas | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/components/rx/trunk/rxdb/rxdbgrid.pas b/components/rx/trunk/rxdb/rxdbgrid.pas index 11de58dd5..aafbd9a17 100644 --- a/components/rx/trunk/rxdb/rxdbgrid.pas +++ b/components/rx/trunk/rxdb/rxdbgrid.pas @@ -2533,6 +2533,7 @@ var Col:TRxColumn; msg: TGridMessage; + V: Boolean; begin Col:=TRxColumnEditButtons(Collection).FOwner as TRxColumn; F:=Col.Field; @@ -2545,7 +2546,16 @@ begin if F.IsNull then F.Value:=0; - F.Value:=F.Value - 1; + if F is TLongintField then + V:=(TLongintField(F).MinValue <> 0) and (TLongintField(F).MaxValue <> 0) and (TLongintField(F).MinValue < F.Value) + else + if F is TFloatField then + V:=(TFloatField(F).MinValue <> 0) and (TFloatField(F).MaxValue <> 0) and (TFloatField(F).MinValue < F.Value) + else + V:=true; + + if V then + F.Value:=F.Value - 1; Msg.LclMsg.msg:=GM_SETVALUE; Msg.Grid:=Col.Grid; @@ -2561,6 +2571,7 @@ var Col:TRxColumn; msg: TGridMessage; + V: Boolean; begin Col:=TRxColumnEditButtons(Collection).FOwner as TRxColumn; F:=Col.Field; @@ -2572,7 +2583,17 @@ begin if F.IsNull then F.Value:=0; - F.Value:=F.Value + 1; + + if F is TLongintField then + V:=(TLongintField(F).MinValue <> 0) and (TLongintField(F).MaxValue <> 0) and (TLongintField(F).MaxValue > F.Value) + else + if F is TFloatField then + V:=(TFloatField(F).MinValue <> 0) and (TFloatField(F).MaxValue <> 0) and (TFloatField(F).MaxValue < F.Value) + else + V:=true; + + if V then + F.Value:=F.Value + 1; Msg.LclMsg.msg:=GM_SETVALUE; Msg.Grid:=Col.Grid;