AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Trackbar Mouseleave-Event

Ein Thema von Alex_ITA01 · begonnen am 18. Apr 2005 · letzter Beitrag vom 19. Apr 2005
Antwort Antwort
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Trackbar Mouseleave-Event

  Alt 18. Apr 2005, 15:21
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
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Trackbar Mouseleave-Event

  Alt 19. Apr 2005, 05:40
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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

Re: Trackbar Mouseleave-Event

  Alt 19. Apr 2005, 07:56
Hi Sharky,
danke für den Source aber leider habe ich da eine Kleinigkeit vergessen zu erzählen.

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:
  FTrackbar := TTrackBar.Create(Self);
  FTrackbar.Parent := Self.Parent;
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).
Hättest du eine Idee, wie ich die Trackbar verschwinden lassen kann?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Trackbar Mouseleave-Event

  Alt 19. Apr 2005, 07:59
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#5

Re: Trackbar Mouseleave-Event

  Alt 19. Apr 2005, 08:03
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
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#6

Re: Trackbar Mouseleave-Event

  Alt 19. Apr 2005, 08:11
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
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz