我在Button的MouseDown事件中有此按钮的拖动代码:
ReleaseCapture;
Button1.Perform(WM_SYSCOMMAND,$f012,0);
能时间按钮拖动.
但是我在Button的OnClick中的单击事件却不能用:
如写Showmessage('OK');
没有响应,请问怎么解决呢>?
ReleaseCapture;
Button1.Perform(WM_SYSCOMMAND,$f012,0);
能时间按钮拖动.
但是我在Button的OnClick中的单击事件却不能用:
如写Showmessage('OK');
没有响应,请问怎么解决呢>?
procedure TForm2.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Button1.Perform(WM_SYSCOMMAND,$f012,0);
showmessage('ok');
end;
你的方法虽然行
但是我要求放在OnClick事件中响应啊
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//SetCapture(Handle);
ReleaseCapture;
Button1.Perform(WM_SYSCOMMAND,$f012,0);
Button1.OnClick(Sender) ;
inherited;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('OK');
end;
而你的MOUSEDOWN里写了Button1.Perform(WM_SYSCOMMAND,$f012,0); 估计是它在作怪,让以后的ONCLICK事件无法正常响应。。
是不是必须把buttonclick的事件放在Button1MouseDown才行呢
有没有不在Button1MouseDown中调用ButtonClick的方法
其定义如下:
function ReleaseCapture; external user32 name 'ReleaseCapture';
你可以换一种拖动BUTTON的方式。
该函数从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理.捕获鼠标的窗口
接收所有的鼠标输入,除非点击鼠标键时,光标热点在令一个线程的窗口中.按照它的功能所叙,那不就不是ReleaseCapture的影响么?