在delphi5中,用了setCapture(handle)以后,还是一定要用releaseCapture吗?我不用也没有任何问题的嘛。 (80分)

  • 主题发起人 主题发起人 zhshygshy
  • 开始时间 开始时间
Z

zhshygshy

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个在窗体内可以移动的工具栏。在工具栏ToolbarPanel的mouseDown事件里用了<br>SetCapture(handle)语句。其后,我并没有用releaseCapture。但是,我的实验发现,我再<br>点击ToolbarPanel时,发生的仍然是ToolbarPanelMouseDown事件,而不是Form1MouseDown<br>事件。为什么?Delphi5会自动releaseCapture吗?
 
没有哪位大侠可以帮帮我吗?
 
delphi5不会自动releaseCapture,所以你必须得自己做!会出现你这种情况的原因就是<br>因为你没有releaseCapture,加上去之后就应该没问题了!
 
可是出现这种现象正说明了鼠标的消息已经交给了panel而不是窗体了呀!也就是说我没有<br>写releaseCapture,但是好像Delphi已经帮我做了。奇怪!
 
大概是这样:因为你SetCapture后,你的mouse event就全部发到了你form里,但好像<br>delphi会跟据你所单击的区域分配这个event,当你的mouse再点击在panel上时,delphi<br>就把这个event分配给了panel所以会现这种情况,![只是个人见解,不一定正确啊]<br><br>要检验delphi是否以帮你releaseCapture你可以在你的form以外点击,看mouse的event会<br>不会发给你form的mousemove 或mouseclick里就知道了!
 
谢谢sunny18朋友。我实验过了,点击form以外的区域,不会引发form的mouseDown事件。真的<br>好像delphi帮我releaseCapture了。
 
那样啊,也许是我错了,等我试试后再说吧…!不好意思啊!
 
我试了一下,发现这个问题,<br><br>我新建了一个form ,上面两个button,btn1用于setCapture,btn2用于releaseCapture<br>如果我用setCapture(form.handle)的话,当我点击了btn1后,第一次再点击时,就会激发<br>form.click event,第二次点击就正常了,不知道怎么回事!而如果setCapture(btn1)的话<br>,第一次点击form内的非btn1不知做了什么,反正什么反应也没有,点击btn1正常及form<br>以外的都正常,第二次也会全正常 ,不知该怎么解释!
 
哇,sunny18, 这么晚你也不睡? &nbsp;:)<br>你说的“第二次就正常了”不就好像是releaseCapture已经自动执行了吗?!如果不是delphi<br>干的,那么是怎么回事情呢?我现在在看一本delphi4的教材,它说setCapture和releaseCapture<br>“总是成对出现的”。<br>#%@#$%#$^#$%^
 
要自己加。<br>比如编一个像OICQ一样能AutoHide的窗口,光响应Form的MouseEnter和<br>MouseLeave消息是不行的,还必须使用SetCapture和ReleaseCapture才行。
 
你要在窗口内移动控件,根本不需要SetCapture。<br>我的主页上有一系列的解决方法,包你满意。
 
真的没有人能够回答吗?
 
坛主:<br>象这样无人能答的问题该怎么办?能收回分数吗?
 
多人接受答案了。
 
我不太明白,你又不是这里的(Win API)坛主,凭什么结束我的帖子?!在没有获得答案的情况下,为什么自作主张将分数送出去?是谁给你的权利?<br>大富翁的规则里说过一个分坛主可以结束另一个栏目没有获得答案的帖子,并且不顾提问者的意愿随便就将分数乱送出去吗?<br><br>说实话,我对你的不满已经忍了很久了,只是原来出于对坛主的尊重,没有提出来说而已。<br>现在我已经忍无可忍了,相信和我有同感的网友也不会少,所以想拿出来说一说。<br><br>大富翁是大家讨论问题的地方,有些问题讨论的时间长一点也是正常的。为什么你总是要<br>跳出来,用威胁的语气说诸如“希望是你自己而不是我来结束帖子”之类的话。作为坛主,<br>你应当致力于将论坛搞得更好,人气更旺。而不是一味打击网友的积极性,利用坛主的权利“滥<br>杀无辜”。<br><br>有一些帖子,拖了很长时间,得到了答案又不给分,坛主当然有权且应该加以强行结束。<br>但是,我看到不少帖子,贴出来只有一周左右,就被你莫名地关闭了。让观看者颇为扫兴。这也是大富翁赋予<br>你的权利吗?<br><br>你可以统计一下,大富翁里被各分坛主强行结束的帖子有百分之几是由你做的?这些被强行<br>结束的帖子的提问者有多少是没有怨言,觉得自己理亏的?网友对你此举的影响如何?<br><br>如果你行事能够光明磊落的话,就不要利用坛主的权利,将本帖删除。<br><br>希望早日得到你的答复。<br><br><br>zhshygshy
 

Similar threads

D
回复
0
查看
930
DelphiTeacher的专栏
D
D
回复
0
查看
871
DelphiTeacher的专栏
D
D
回复
0
查看
944
DelphiTeacher的专栏
D
D
回复
0
查看
777
DelphiTeacher的专栏
D
后退
顶部