Edycja komponentu TrackBar

0

Potrzebuję komponentu TrackBar który będzie w stanie obsłużyć zdarzenia onMouseDown/onMouseuUp. Stworzyłem więc nowy na podstawie tego komponentu ale nie mogę teraz przesuwać tego znacznika. Czy muszę samemu napisać te procedury na przesuwanie tego znacznika czy da się to zrobić w inny sposób?

unit TrackBar1;

interface

uses
  Windows,SysUtils, Classes, Controls, ComCtrls,Messages;
type
  TTrackBar1 = class(TTrackBar)
  private
    FOnMouseDown, FOnMouseUp : TNotifyEvent;
    { Private declarations }
  protected
    procedure CmMouseDown(var Msg : TMessage); message WM_LBUTTONDOWN;
    procedure CmMouseUp(var Msg : TMessage); message WM_LBUTTONUP;
    { Protected declarations }
  public
    { Public declarations }
  published
    property OnMouseDown : TNotifyEvent read FOnMouseDown write FOnMouseDown;
    property OnMouseUp : TNotifyEvent read FOnMouseUp write FOnMouseUp;
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TTrackBar1]);
end;

Procedure TTrackBar1.CmMouseDown(var Msg : TMessage);
Begin
  if Assigned(FOnMouseDown) then OnMouseDown(Self);
End;

Procedure TTrackBar1.CmMouseUp(var Msg : TMessage);
Begin
  if Assigned(FOnMouseUp) then OnMouseUp(Self);
End;

end.
0

Trackbar ma te zdarzenia tylko nieupublicznione. By je odkryć wystarczy zrobić tak:

 TmyTrackBar = class(Ttrackbar)
    published
    property Onmousedown;// dodane
    property Onmouseup;   //  zdarzenia
    property Onmouseenter;// których standardowo
    property Onmouseleave;// nie ma :-)
    
    property OnContextPopup;// a tu te co były w standardowym Trackbarze
    property OnChange;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnStartDock;
    property OnStartDrag;
  end;
0

Dziękuję :-)

0

Bardzo proszę:-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1