Flatstyle控件集中FlatButton的问题!!(请教高人)(200分)

  • 主题发起人 主题发起人 nb121212
  • 开始时间 开始时间
N

nb121212

Unregistered / Unconfirmed
GUEST, unregistred user!
Flatstyle控件集中FlatButton:
其实现了--当鼠标移入该FlatButton按钮是,按钮颜色等发生变化,但没有了onEnter,onEixt
事件了。如果不用鼠标移入该按钮,就想实现“颜色等发生变化”的功能,如何实现??
比如说在另一个DBgrid控件的单击事件中实现“鼠标移入该按钮”一样的功能,怎么实现??
 
我用过flatbutton,的确是这样的,但是不是可以改颜色的吗?在DBgrid的事件里改变
flatbutton的颜色不行吗?哦,很久没用了,不确定:)
 
如果你想加入onEnter,onEixt事件,可直接在源码TFlatButtonUnit.PAS中的
published 下添加以下两句:
property OnEnter;
property OnExit;
因为它是从TCustomControl类继承下来的,TCustomControl类本身就拥有这两个事件。
只是它没有在TFlatButtonUnit中声明而已。

如果你只是想改变颜色,楼上兄弟的方法是可行的。



 
两位说的我都已试过,
lcl_003兄说的,我是这样实现的,把color的颜色甚至成colorFocused的颜色,这样和鼠标
移入的颜色一样了,就是少了体现鼠标移入时产生的立体阴影了,如何用canvas或panit实现?
gonghh兄说的,我也加入了,TFlatButton有setFouces方法吗?
 
那估计就得该源码了:(
 
我不想改控件,在另一个DBgrid控件的单击事件中实现“鼠标移入该按钮”一样的功能,
如何用canvas或panit实现立体阴影?
 
TFlatButton有setFouces方法。
如果你只是上面的效果,不用修改源代码。
实现“鼠标移入该按钮”一样的功能,实现立体阴影用FlatButton1.MouseEnter,
取消立体阴影,只要鼠标焦点不在其控件上,执行FlatButton1.MouseLeave即可。
例子如下:
---------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);//产生立体阴影
begin
FlatButton1.MouseEnter;
end;

procedure TForm1.Button2Click(Sender: TObject);//取消立体阴影
begin
FlatButton1.MouseLeave;
end;
---------------------------------------------------------------------
 
今天上午,仔细看了源码,发现FmouseINbutton的字段,跟踪鼠标的是否在按钮中,然后
发现了mouseenter,mouseleave方法,回来发现gonghh已有答案,正确。
给分,不过lcl_003也要给分,是他让我研究源码,
谢谢!!!!
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部