Podrías utilizar los mensajes, CM_MOUSEENTER y CM_MOUSELEAVE, este es un ejemplo un poco simplista:
Código:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TMyPannel = class(TPanel)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TMyPannel }
procedure TMyPannel.CMMouseEnter(var Message: TMessage);
begin
Color := clRed;
end;
procedure TMyPannel.CMMouseLeave(var Message: TMessage);
begin
Color := clBtnFace;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
With TMyPannel.Create( Self ) do
Parent := Self;
end;
end.