Hi,
ich möchte einen Panel eine Art Hover-Effekt geben. Das heißt ist die Maus über den Panel soll es eine andere Farbe haben als wenn die Maus nicht über den Panel ist.
Ich habe versucht das mit den OnMouseMove-Eregnis zu realisieren. Funktioniert jedoch nicht.
Delphi-Quellcode:
procedure Tfrm_Designer.pnl_ShowHideSideBarMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
BarPosition: TPoint;
begin
BarPosition := ClientToScreen(Point(pnl_ShowHideSideBar.Left, pnl_ShowHideSideBar.Top));
//mouse is not in panel?
if X > BarPosition.X + 8 then
begin
pnl_ShowHideSideBar.Color := $00D1D8DB;
end
else
begin
pnl_ShowHideSideBar.Color := clSkyBlue;
end;
end;
Das Panel ist 8 Pixel breit.
Ich möchte nicht in jeden onMouseMove-Ereignis jeder Komponente die Farbe des Panels setzen. Auch möchte ich auf einen ressourceenlastigen Timer verzichten. Welche Möglichkeiten gibt es noch? onEnter und onExit habe ich auch schon probiert, geht auch nicht...
Ciao,
Andy