写一个控件(80分)

  • 主题发起人 主题发起人 qufo
  • 开始时间 开始时间
Q

qufo

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实践一下写一个控件。自Tbutton 继承,增加一个 shy 属性,为布尔型,当为真时,在 OnMouseMove 的时候改变自己的位置,使其无法获得焦点,不能被鼠标点击。
要怎么写呢,我想要源码,学习一下。
 
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;
 
直接Override MouseMove方法就可以啦,
或者捕捉WM_MouseMove消息也行,
呵呵~~~~~~~~~~~~~~~~~
 
怪了,照OopsWare,的方法竟然在安装控件后找不到此skybutton的sky属性?这是为什么。
 
不好意思,忘了
....
public
published
property Sky: Boolean read FSky write FSky; // 新增的属性
end;
 
接受答案了.
 
后退
顶部