图形编辑程序里面划多义线或者多边形都是 从OnMouseDown开始, OnDblClick完成。这一连串过程 本可以通过OnMouseDown,OnMouseMove,OnDblClick配合完成现在我想写一个在函数 只在OnMouseDown(图形第一个点MouseDown时)下触发。这个函数就需要整合三个事件,我的初步设想是这样的:1.循环直到截获该控件的OnDblClick事件;
2.每次OnMouseDown (Pnts:array of TPoint)长度加一,加入Down点
3.在OnMouseMove事件中,处理界面上显示的问题我遇到的问题,就是不知截获鼠标按键事件的方法 (API?)ps: 我说得控件是个ActiveX
2.每次OnMouseDown (Pnts:array of TPoint)长度加一,加入Down点
3.在OnMouseMove事件中,处理界面上显示的问题我遇到的问题,就是不知截获鼠标按键事件的方法 (API?)ps: 我说得控件是个ActiveX
解决方案 »
- 弱弱的问delphi编写程序后安装问题
- Delphi6+SqlServer 编的软件用什么软件打包最好
- 有什么函数能查找listview中的column并返回该column的index?
- 求0day的网站
- 我用IdFtp1连到局域网另一台机器上,可是返回“socket error # 10061 connection refused”这是什么原因啊?
- 怎样控制StringGrid的字段的长度?
- 问一个用来关闭一个窗口简单的问题?
- 怎样扫描局域网中的一台计算机上的端口,又哪些是禁止的,
- 本人急需要一个美容店管理程序!
- 重分(100分)求解:如何减小delphi程序的大小(我做的程序老是很大!)
- 在线等!只要正确就给分!
- 菜鸟的菜菜菜问题??
Application.OnMessage可以截获整个程序的消息,有没有相应的只截获某个特定控件消息的方法?
class TMyClass = class
private
F_btn: TButton;
F_OldBtnClick: TNotifyEvent;
F_OldBtnMouseDown: TMouseEvent;
protected
procedure MyBtnClick(Sender: TObject);
procedure MyBtnMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
public
constructor Create(AttachedButton: TButton);
destructor Destroy; override;
end; implementsconstructor TMyClass.Create(AttachedButton: TButton);
begin
F_btn:= AttachedButton;
F_btn=nil then raise ....;
F_OldBtnClick := F_btn.OnClick;
F_OldBtnMouseDown:= F_btn.OnMouseDown;
F_btn.OnClick := MyBtnClick;
F_btn.OnMouseDown:= MyBtnMouseDown;
end;destructor TMyClass.Destroy;
begin
if F_btn<>nil then
begin
F_btn.OnClick := F_OldBtnClick;
F_btn.OnMouseDown := F_OldBtnMouseDown;
end;
inherited;
end;procedure TMyClass.MyBtnClick(Sender: TObject);
begin
if Assigned(F_OldBtnClick) then F_OldBtnClick(Sender);
//....(your code!)
end;procedure TMyClass.MyBtnMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Assigned(F_OldBtnMouseDown) then F_OldBtnMouseDown(Sender, Button, Shift, X, Y);
//....(your code!)
end;
前面一个class 不要呢(当Java了 :))
要写一个类来实现啊我原以为写一个函数就可以了.