事情是这样的,我有一个 panel上面有若干 image  label button我现在, 要在 MouseEnter 的时候把这个panel的背景色改成 蓝,
MouseLeave 的时候把这个 panel的背景色改成 默认。procedure TForm3.Panel6MouseEnter(Sender: TObject);
begin
    Panel6.Color := clBlue;
end;procedure TForm3.Panel6MouseLeave(Sender: TObject);
begin
  Panel6.Color := clBtnFace;
end;//===================================================问题:    当鼠标移动到 panel 中 的 label上的时候,  他也变成默认色,  这不是我想要的效果。我要的效果是,只要鼠标进入了panel,不管移动到panel中的哪一个控件上面,  整个panel都应该变蓝才对。
求解答,求算法,求思路

解决方案 »

  1.   

    楼主,把你的这些事件,写到panel的控件中对应的事件应该就可以了。
    你现在的事件是Panel6的。
      

  2.   

    type
      TControlEx = class(TControl);  for I := 0 to Panel6.ControlCount - 1 do
      begin
        TControlEx(Panel6.Controls[I]).OnMouseEnter := Panel6MouseEnter;
        TControlEx(Panel6.Controls[I]).OnMouseLeave := Panel6MouseLeave;
      end;
      

  3.   

    panel内的控件也设置MouseEnter,MouseLeave事件,关联到Panel就行了,不用每个重写
      

  4.   

    这种我试过了,这样切换的时候会闪一下。比较容易出错。而且有些控件是没有  onMouse系列事件的,还需要自己改。