anchor.diff:      VK_HOME:    CursorPos := 0;
       VK_END:     CursorPos := Length(fText);
     end;
  +
  +  if Assigned(OnChange) then
  +    OnChange(Self);
   end;
   
   
  
positive.code: 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);
  end;
  
  
  procedure TKMNumericEdit.ValidateText;
  var
    I: Integer;
  const
    DigitChars: set of Char = ['1' .. '9', '0'];
  begin
    //Validate contents
    for I := Length(fText) downto 1 do
  
negative.code:     Value := Value + Byte(AButton = mbLeft) + Byte(AButton = mbRight) * 10
    else
      Exit;
  
    if Assigned(OnChange) then
      OnChange(Self);
  end;
  
  
  