Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TPanel OnMouseExit? (https://www.delphipraxis.net/36642-tpanel-onmouseexit.html)

LoL 23. Dez 2004 07:39


TPanel OnMouseExit?
 
moin,

ich brauche eine komponente ähnlich wie TPanel. Der Rand(Bevel) muss einstelllbar sein. Ich will die Komponente grunsätzlich flach haben aber sobald man mit der maus drüber geht soll der Rand "raised" sein und sobald der maus-zeiger die Komponente verlässt soll die Kompo wieder flach sein. Also onMouseMove hab ich ja schon mal aber ich bräuchte noch sowas wie OnMouseExit. Ich hab mir jetzt gedacht ich schreib mir eine eigene Komponente mit dem "OnMouseExit"-Ereigniss aber vielleicht hat jemand ne bessere Idee?

PS: es ist einfach noch zu früh zum denken :drunken:

Jens Schumann 23. Dez 2004 08:08

Re: TPanel OnMouseExit?
 
Hallo,
such mal nach CM_MOUSELEAVE und CM_MOUSEENTER

Stevie 23. Dez 2004 08:13

Re: TPanel OnMouseExit?
 
Moin!
Delphi-Quellcode:
type
  TPanel = class(ExtCtrls.TPanel)
  protected
    procedure WMMouseMove(var Message: TWMMouse); message WM_MOUSEMOVE;
    procedure WMMouseLeave(var Message: TWMMouse); message WM_MOUSELEAVE;
  end;

{...}

procedure TPanel.WMMouseLeave(var Message: TWMMouse);
begin
  inherited;
  if BevelOuter = bvRaised then
    BevelOuter := bvNone;
end;

procedure TPanel.WMMouseMove(var Message: TWMMouse);
var
  EventTrack: TTrackMouseEvent;
begin
  inherited;
  if BevelOuter = bvNone then
  begin
    BevelOuter := bvRaised;
    EventTrack.dwFlags := TME_LEAVE;
    EventTrack.hwndTrack := Handle;
    EventTrack.cbSize := SizeOf(EventTrack);
    TrackMouseEvent(EventTrack);
  end;
end;
MfG
Stevie

LoL 23. Dez 2004 08:13

Re: TPanel OnMouseExit?
 
man hätte nur mal suchen müssen

Mouse Leave

is einfach noch zu früh

THX@Jens Schumann

LoL 23. Dez 2004 08:19

Re: TPanel OnMouseExit?
 
ich hab noch was viel besseres:
wenn man den speedbutton auf flat=true setzt dann erziele ich genau den erwünschten effekt


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 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