anchor.diff:       or ((AText = FDecimalSeparator) and (UTF8Pos(AText, Text) <= 0)) then
       consumed := False
     else
  -    consumed := True;
  +    Exit; //==>
  +
     inherited HandleKeyChar(AText, shiftstate, consumed);
  +
     if FMaxLimit then
       if GetValue > FMaxValue then
         SetValue(FMaxValue);
  
positive.code:      or ((AText = FDecimalSeparator) and (UTF8Pos(AText, Text) <= 0)) then
      consumed := False
    else
      consumed := True;
    inherited HandleKeyChar(AText, shiftstate, consumed);
    if FMaxLimit then
      if GetValue > FMaxValue then
        SetValue(FMaxValue);
  
negative.code:   s: TfpgChar;
    prevval: string;
  begin
    inherited HandleKeyChar(AText, shiftstate, consumed);
    if consumed then
      Exit; //==>
  
    prevval   := Text;
    s         := AText;
  
    if (not ReadOnly) then
    begin
      // Handle only printable characters
      // UTF-8 characters beyond ANSI range are supposed to be printable
  