anchor.diff:  procedure TKMNumericEdit.SetValue(aValue: Integer);
   begin
     fValue := EnsureRange(aValue, ValueMin, ValueMax);
  -
  -  //if aValue = fValue then Exit;
  -
     fText := IntToStr(fValue);
     SetCursorPos(MaxLength);
   
  -  if Assigned(OnChange) then
  -    OnChange(Self);
  +  //External Value assignment should not generate OnChange event
   end;
   
   
   procedure TKMNumericEdit.ValidateText;
  +const
  +  DigitChars: set of Char = ['1' .. '9', '0'];
   var
     I: Integer;
  -const
  -  DigitChars: set of Char = ['1' .. '9', '0'];
   begin
     //Validate contents
     for I := Length(fText) downto 1 do
  
positive.code: begin
    Result := KeyEventHandled(Key, Shift);
    if inherited KeyUp(Key, Shift) then Exit;
  
    if Assigned(OnChange) then OnChange(Self);
  end;
  
  
  
negative.code:     Value := 0
    else
      Value := StrToInt(fText);
  
    if Assigned(OnChange) then
      OnChange(Self);
  end;
  
  
  