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: end;
  
  
  procedure TKMNumericEdit.FocusChanged(aFocused: Boolean);
  begin
    inherited;
    if not aFocused and (fText = '-') then //after unfocus, if only '-' is in string, set value to 0
      Value := 0;
  end;
  
  
  procedure TKMNumericEdit.ControlMouseDown(Sender: TObject; Shift: TShiftState);
  begin
    inherited;
    if (Sender <> Self) and (fText = '-') then //after unfocus, if only '-' is in string, set value to 0
      Value := 0;
  end;
  
  
  
negative.code: 
    OnlyMinus := (fText = '-');
  
    if (fText = '') or OnlyMinus or IsEmpty then
      Value := 0
    else
      SetValueNCheckRange(StrToInt64(fText));
  
    if OnlyMinus then fText := '-'; //Set text back to '-' while still editing.
    if IsEmpty then fText := ''; //Set text back to '' while still editing.
  
    CursorPos := Min(CursorPos, Length(fText)); //In case we had leading zeros in fText string
  
  