anchor.diff:      procedure SetValueNCheckRange(aValue: Int64);
       procedure SetValue(aValue: Integer);
       procedure SetSharedHint(aHint: UnicodeString);
  +    procedure CheckValueOnUnfocus;
     protected
       procedure SetLeft(aValue: Integer); override;
       procedure SetTop(aValue: Integer); override;
  
positive.code: 
    OnlyMinus := (fText = '-');
  
    if (fText = '') or OnlyMinus then
      Value := 0
    else
      SetValueNCheckRange(StrToInt64(fText));
  
    if OnlyMinus then fText := '-'; //Set text back to '-' while still editing.
  
    CursorPos := Min(CursorPos, Length(fText)); //In case we had leading zeros in fText string
  
  
negative.code: var
    I: Integer;
    AllowedChars: TSetOfAnsiChar;
    OnlyMinus, IsEmpty: Boolean;
  begin
    IsEmpty := (fText = #8); // When deleting text with Backspace last character is still in string - backspace character (#8)
  
    AllowedChars := ['0'..'9'];
    //Validate contents
    for I := Length(fText) downto 1 do
  