![]() |
Trackbar Mouseleave-Event
Hallo erstmal,
ich habe mal eine Frage bezüglich einer Trackbar und Mouseleave-Events. Gibt es eine Möglichkeit einer Trackbar ein Mouseleave-Event hinzuzufügen oder auf eine MouseLeave-Event zu reagieren? Hintergrund ist: Ich möchte beim "Verlassen" der Trackbar, dass sie versteckt wird. Es ist aber nicht unbedingt vorstellbar das der Fokus sich ändert (also OnExit geht demzufolge nicht). Danke für jeden Tip. MFG Alex |
Re: Trackbar Mouseleave-Event
Hai Alex,
das hier wäre eine mögliche Lösung:
Delphi-Quellcode:
type
TForm1 = class(TForm) TrackBar1: TTrackBar; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } FTrackEnter : Boolean; procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.CMMouseEnter(var Message: TMessage); var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) = TrackBar1.Handle then //Maus ist über der TrackBar1 begin FTrackEnter := True; end; end; procedure TForm1.CMMouseLeave(var Message: TMessage); var ptWork : TPoint; begin GetCursorPos(ptWork); if (WindowFromPoint(ptWork) <> TrackBar1.Handle) and (FTrackEnter) then //Maus verlässt die TrackBar1 begin TrackBar1.Visible := False; FTrackEnter := False; end; end; procedure TForm1.Button1Click(Sender: TObject); begin TrackBar1.Visible := True; end; |
Re: Trackbar Mouseleave-Event
Hi Sharky,
danke für den Source aber leider habe ich da eine Kleinigkeit vergessen zu erzählen. :wall: Ich befinde mich innerhalb meiner eigenen Komponente und im MouseMove (dieser eigenen Kompo) lasse ich die Trackbar (die ist im privat von meiner Kompo deklariert und hat das Parent meiner Kompo) sichtbar werden.
Delphi-Quellcode:
Die Trackbar ist einfach nur zum verstellen eines Wertes da und sobald der User sich von der Trackbar wegbewegt, dann soll die Trackbar wieder versteckt werden. Leider funktioniert dein Source nicht (er springt zumindest nie in die if-Bedingung hinein).
FTrackbar := TTrackBar.Create(Self);
FTrackbar.Parent := Self.Parent; Hättest du eine Idee, wie ich die Trackbar verschwinden lassen kann? MFG Alex |
Re: Trackbar Mouseleave-Event
Hai Alex,
dann sollte es doch möglich sein das Du eine eigene TTrackBar ableitest und dieser dann die beiden Ereignisse beibringst. Diese abgeleitete verwendest Du dann in deiner Komponente. |
Re: Trackbar Mouseleave-Event
Ah, du meinst eine Trackbar mit den "MouseEvents" (Leave udn Enter) erstellen und dann in meiner Kompo verwenden? Stimmt, auf die Idee bin ich noch nicht gekommen.
Danke ich werde es mal testen. MFG Alex |
Re: Trackbar Mouseleave-Event
Jo, danke Sharky. Hat Super geklappt.
Habe mir wie du sagtest ne Trackbar "neu" erstellt und die zwei Events hinzugeschrieben und es klappt super. MFG Alex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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