有两个panel,我在一个上按下鼠标后再把鼠标拖到另一个panel,发现他的鼠标事件无法响应,这是怎么回事?(50分)

  • 主题发起人 主题发起人 chen___ye
  • 开始时间 开始时间
C

chen___ye

Unregistered / Unconfirmed
GUEST, unregistred user!
一个上按下鼠标后再把鼠标拖到另一个panel,发现他的鼠标事件无法响应,这是怎么回事?<br>怎样解决?
 
相关的代码贴出来看看。
 
你是拖动Panel1到Paneel2上还是?
 
我是拖动鼠标,你试一下,我怀疑是不是前一个panel局柄没有释放
 
你是指什么事件?这个没问题:<br>procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;<br>&nbsp; Shift: TShiftState; X, Y: Integer);<br>begin<br>&nbsp; showmessage('Hello!');<br>end;<br><br>procedure TForm1.Panel2MouseUp(Sender: TObject; Button: TMouseButton;<br>&nbsp; Shift: TShiftState; X, Y: Integer);<br>begin<br>&nbsp; showmessage('Very Good!');<br>end;
 
此时鼠标在拖动状态,消息仍然发到panel1<br>不过可以在panel1的onMouseDown事件里<br>加上: postmessage(panel1.Handle,wm_lbuttonup,0,0);<br>人为产生一个up消息,使panel1误以为鼠标已抬起,<br>这样就能实现你要的功能
 
对于你的程序,你这样试一下:<br>在panel1按下鼠标后,不要放开,再把鼠标拖到panel2上放开鼠标,(是不出现对话框的)
 
可以触发OnMouseDown与OnMouseUp<br>只是不触发OnClick而已
 
刚才我用一个时钟实现了,但总觉得很本
 
用时钟实现?实现什么东西,不太明白你的意思
 
我用屏幕鼠标位置判断所选控件<br>zleo同志解答了我的问题,非常感谢!<br>其余同志也感谢参与
 
多人接受答案了。
 
后退
顶部