我想在一个panel上做一个停留事件,当鼠标停留在上面时就变颜色。离开又恢复原来的颜色。

解决方案 »

  1.   

    直接采用MOUSEENTER和MOUSELEAVE事件就可以
      

  2.   

    procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      panel1.Color:=$00C8FFC8; //变色
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      panel1.Color:=clBtnFace;//还原
    end;
      

  3.   

    上面的代码我测试通过的,不知道你是怎么写的。那你用第2种方法吧:private
        { Private declarations }
        procedure CMMouseEnter(var msg:tmessage);message CM_MOUSEENTER;
        procedure CMMouseLeave(var msg:tmessage);message CM_MOUSELEAVE;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CMMouseEnter(var msg: tmessage);
    begin
        if msg.LParam=integer(panel1) then
        panel1.Color:=$00C8FFC8; //变色
    end;procedure TForm1.CMMouseLeave(var msg: tmessage);
    begin
         if msg.LParam=integer(panel1) then
        panel1.Color:=clBtnFace;//还原
    end;
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, Buttons;
    type
      Tpanel = class(ExtCtrls.Tpanel)
      private
        procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
        procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
    end;
    type
      TForm1 = class(TForm)
        Panel1: TPanel;
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TPanel.CMMouseEnter(var Message: TMessage);
    begin
      Color:=$00C8FFC8;
    end;
    procedure TPanel.CMMouseLeave(var Message: TMessage);
    begin
     Color:=clbtnface;
    end;
    end.
      

  5.   

    procedure TPanel.CMMouseEnter(var Message: TMessage);
    begin
      Color:=$00C8FFC8;
    end;
    procedure TPanel.CMMouseLeave(var Message: TMessage);
    begin
     Color:=c$00D6EECA;
    end;