anchor.diff:      property OnChange: TNotifyEvent read fOnChange write fOnChange;
       procedure MouseDown(X,Y: Integer; Shift: TShiftState; Button: TMouseButton); override;
       procedure MouseMove(X,Y: Integer; Shift: TShiftState); override;
  +    procedure MouseWheel(Sender: TObject; WheelDelta: Integer; var aHandled: Boolean); override;
       procedure Paint; override;
     end;
   
  
positive.code:     fFont: TKMFont;
      procedure SetCaption(const aValue: UnicodeString);
      procedure SetPosition(aValue: Word);
    public
      Step: Byte; //Change Position by this amount each time
      ThumbText: UnicodeString;
  
negative.code: end;
  
  
  function TKMTrackBar.DoHandleMouseWheelByDefault: Boolean;
  begin
    Result := False;
  end;
  
  
  procedure TKMTrackBar.MouseWheel(Sender: TObject; WheelDelta: Integer; var aHandled: Boolean);
  var
    NewPos: Integer;
  begin
    inherited;
  
    if aHandled or (WheelDelta = 0) then Exit;
  
    aHandled := WheelDelta <> 0;
  
    Focus;
  
    NewPos := Position;
  
    if WheelDelta <> 0 then
      NewPos := EnsureRange(NewPos - Step*Math.Sign(WheelDelta), fMinValue, fMaxValue);
  
    if NewPos <> Position then
    begin
      Position := NewPos;
  
      if Assigned(fOnChange) then
        fOnChange(Self);
    end;
  end;
  
  
  procedure TKMTrackBar.Paint;
  const //Text color for disabled and enabled control
    TextColor: array [Boolean] of TColor4 = ($FF888888, $FFFFFFFF);
  