![]() |
Klick auf Button simulieren nach dem Scrollen?
Hallo
Scrollbar oder Trackbar haben den Event OnmouseUp nicht Hat jemand eine Idee, wie ich nach dem Scrollen ein Klick auf Button1 simulieren kann ? _ |
Re: Klick auf Button simulieren nach dem Scrollen?
Hallo,
Die TTrackBar hat noch ein OnChange Event. |
Re: Klick auf Button simulieren nach dem Scrollen?
Delphi-Quellcode:
Button1.click;
|
Re: Klick auf Button simulieren nach dem Scrollen?
Zitat:
darum --- Zitat:
|
Re: Klick auf Button simulieren nach dem Scrollen?
Du könntest folgender massen die TTrackbar um ein OnChanged Ereignis erweitern
(oder eine neue Komponente erstellen)
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, CommCtrl; // 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; end; type TForm1 = class(TForm) TrackBar1: TTrackBar; procedure FormCreate(Sender: TObject); private procedure TrackBarChanged(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 Self.Caption := 'Position geändert ! '; end; procedure TForm1.FormCreate(Sender: TObject); begin // OnChanged Handler zuweisen TrackBar1.OnChanged := TrackBarChanged; end; end. |
Re: Klick auf Button simulieren nach dem Scrollen?
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 ? _ |
Re: Klick auf Button simulieren nach dem Scrollen?
Zitat:
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; |
Re: Klick auf Button simulieren nach dem Scrollen?
Ausgezeichnet ; )
vielen Dank |
Re: Klick auf Button simulieren nach dem Scrollen?
Ich wollte nun einen Scrollbar statt Trackbar verwenden
Ich habe einfach das Wort Trackbar mit Scrollbar ersetzt aber es hat nicht geklappt ! Was muss ich noch ändern ?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, CommCtrl, StdCtrls; // uses : CommCtrl // TScrollBar um ein OnChanged Ereignis erweitern type TScrollBar = class(ComCtrls.TScrollBar) 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) Memo1: TMemo; ListBox1: TListBox; ScrollBar1: TScrollBar; procedure FormCreate(Sender: TObject); private procedure ScrollBarChanged(Sender: TObject); procedure ScrollBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ScrollBarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ScrollBarClick(Sender: TObject); public end; var Form1: TForm1; implementation {$R *.dfm} procedure TScrollBar.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.ScrollBarChanged(Sender: TObject); begin ListBox1.Items.Add('Position geändert ! '); end; procedure TForm1.ScrollBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ListBox1.Items.Add('ScrollBar OnMouseDown'); end; procedure TForm1.ScrollBarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ListBox1.Items.Add('ScrollBar OnMouseUp'); end; procedure TForm1.ScrollBarClick(Sender: TObject); begin ListBox1.Items.Add('ScrollBar OnClick'); end; procedure TForm1.FormCreate(Sender: TObject); begin ScrollBar1.OnChanged := ScrollBarChanged; ScrollBar1.OnMouseDown := ScrollBarMouseDown; ScrollBar1.OnMouseUp := ScrollBarMouseUp; ScrollBar1.OnClick := ScrollBarClick; end; end. |
Re: Klick auf Button simulieren nach dem Scrollen?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz