(CodeLib-Manager)
Registriert seit: 10. Jun 2002
4.648 Beiträge
Delphi XE Professional
|
Re: Klick auf Button simulieren nach dem Scrollen?
8. Sep 2008, 08:45
Zitat von thomas2009:
Es hat tatsächlich geklappt Danke!
Trackbar hat auch den Event OnClick oder OnMouseDown nicht, kann man auch das Problem
lösen, genauso wie du OnMouseUp vorgeschalgen hast ?
_
Diese Ereignisse kannst du auch nachrüsten:
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, CommCtrl, StdCtrls;
// TTrackbar um ein OnChanged Ereignis erweitern
type
TTrackBar = class(ComCtrls.TTrackBar)
private
FOnChanged : TNotifyEvent;
procedure CNHScroll(var msg: TWMHScroll); message CN_HSCROLL;
published
property OnChanged: TNotifyEvent read FOnChanged write FOnChanged;
property OnMouseDown;
property OnMouseUp;
property OnClick;
public
end;
type
TForm1 = class(TForm)
TrackBar1: TTrackBar;
Button1: TButton;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
procedure TrackBarChanged(Sender: TObject);
procedure TrackBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure TrackBarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure TrackBarClick(Sender: TObject);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TTrackBar.CNHScroll(var msg: TWMHScroll);
begin
inherited;
if Assigned(fOnChanged) then
if (msg.ScrollCode in [TB_THUMBPOSITION, TB_LINEUP, TB_LINEDOWN, TB_PAGEUP, TB_PAGEDOWN]) then
begin
FOnChanged(Self);
end;
end;
procedure TForm1.TrackBarChanged(Sender: TObject);
begin
ListBox1.Items.Add('Position geändert ! ');
end;
procedure TForm1.TrackBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ListBox1.Items.Add('TrackBar OnMouseDown');
end;
procedure TForm1.TrackBarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ListBox1.Items.Add('TrackBar OnMouseUp');
end;
procedure TForm1.TrackBarClick(Sender: TObject);
begin
ListBox1.Items.Add('TrackBar OnClick');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TrackBar1.OnChanged := TrackBarChanged;
TrackBar1.OnMouseDown := TrackBarMouseDown;
TrackBar1.OnMouseUp := TrackBarMouseUp;
TrackBar1.OnClick := TrackBarClick;
end;
Thomas
|
|
Zitat
|