When using "FormNumPad" for operator input in its "clean" form it shows current value:

I need to limit possible input range and found this code, but it does't show current value as shown in picture below. Any suggestions?
FUNCTION CheckRealValueNumPad(STRING sTitle, STRING sTag, INT iMode, REAL rMin, REAL rMax)
REAL ReturnNumPad;
INT ReturnMessage;
STRING srMin = rMin
STRING srMax = rMax
STRING sUnit = TagInfoEx(sTag, 1)
//TagWrite(sTag, ReturnNumPad)
ReturnNumPad = FormNumPad(sTitle, (TagRead("sTag")), iMode)
IF IsError <> 299 THEN
IF (ReturnNumPad >= rMin) AND (ReturnNumPad <= rMax) THEN
TagWrite(sTag, ReturnNumPad)
ELSE
ReturnMessage = Message("Error", "Value must be between "+srMin+" and "+srMax+" "+sUnit,0)
IF ReturnMessage=0 THEN
CheckRealValueNumPad(sTitle, sTag, iMode)
ELSE
END
END
ELSE
END
END