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.