Q qufo Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-16 #1 我想实践一下写一个控件。自Tbutton 继承,增加一个 shy 属性,为布尔型,当为真时,在 OnMouseMove 的时候改变自己的位置,使其无法获得焦点,不能被鼠标点击。 要怎么写呢,我想要源码,学习一下。
我想实践一下写一个控件。自Tbutton 继承,增加一个 shy 属性,为布尔型,当为真时,在 OnMouseMove 的时候改变自己的位置,使其无法获得焦点,不能被鼠标点击。 要怎么写呢,我想要源码,学习一下。
O OopsWare Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-16 #2 type TSkyButton = class(TButton) // 继承于TButton private FSky: Boolean; protected procedure MouseMove(Shift: TShiftState; X, Y: Integer); override; public property Sky: Boolean read FSky write FSky; // 新增的属性 end; implementation procedure TSkyButton.MouseMove(Shift: TShiftState; X, Y: Integer); begin if FSky then begin // 如果 X:Y 在按钮区域内,则通过修改Left,Top移动按钮... end; inherited MouseMove(Shift, X, Y); end;
type TSkyButton = class(TButton) // 继承于TButton private FSky: Boolean; protected procedure MouseMove(Shift: TShiftState; X, Y: Integer); override; public property Sky: Boolean read FSky write FSky; // 新增的属性 end; implementation procedure TSkyButton.MouseMove(Shift: TShiftState; X, Y: Integer); begin if FSky then begin // 如果 X:Y 在按钮区域内,则通过修改Left,Top移动按钮... end; inherited MouseMove(Shift, X, Y); end;
N Netsoft Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-16 #3 直接Override MouseMove方法就可以啦, 或者捕捉WM_MouseMove消息也行, 呵呵~~~~~~~~~~~~~~~~~
Q qufo Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-16 #4 怪了,照OopsWare,的方法竟然在安装控件后找不到此skybutton的sky属性?这是为什么。
O OopsWare Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-16 #5 不好意思,忘了 .... public published property Sky: Boolean read FSky write FSky; // 新增的属性 end;