Einzelnen Beitrag anzeigen

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