delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
无法处理双击事件,该怎么办? VCL组件开发及应用
http://www.delphi2007.net/DelphiVCL/html/delphi_20061225152031121.html
自己编个文档管理小程序,界面布局是左边一个TreeView,管理文档结构,右边一个TWebBrowser控件,负责显示。当双击左边的文档时,右边显示该文档;单击其它文档时,清空显示。普通文档没有问题,如果当前显示是Word,Excel等Ole类型的文档时,双击其它文档时不能截获双击事件,而将双击分割成两个单击事件处理,成了更改文件名的操作,如何处理这种情况?老大们给点建议,谢谢

与文档类型无关,肯定是你的代码自己的问题,打死我也不信,TreeView还这么神,能够自动识别Word的文件?呵呵

可能我没说清楚,双击TreeView下的文档节点时,在TWebBrowser中显示双击的文档,我现在碰到的问题实际上是,当TWebBrowser当前显示的文档为Word,Excel等OLE文档时,想要双击其他文档节点进行显示切换,但是由于这个过程中浏览器控件先要关闭前一个文档,然后再显示新双击的文档,使得双击事件的两次点击间隔被延迟,分成了两个单击事件进行处理,碰到这种情况该如何处理?将被分隔的两个单击事件还原成一个双击事件进行处理,或者有其他更好的方法,谢谢~~

可能可以在单击后等一下,判断是否是双击然后再处理。。。   或者像办法规避这个问题。。。

浏览器都是单击的吧??是不是这个原因??如果让我做的话,也只能像楼上那样做了

你的关闭TWebBrowser是写在哪个事件里的?

to   keyz:  
  TWebBrowser的关闭是写在双击事件里的~~  
  首先是ClearBrowser,   再执行关闭Browser操作,并一直检查Browser状态,因为Browser的关闭是有一个时延的,直到检测Browser状态为关闭时,才根据新文档的URL进行Open操作。  
   
  to   littlestone08:  
    我所说的单击双击事件都是针对TreeView的节点而言的,Browser只是根据TreeView传递的URL进行文件打开和显示而已。

(1)单击操作和双击操作的判断,是由操作系统通过对鼠标的采样来确定而直接送给Delphi系统,还是由Delphi系统自己进行计算来评判?  
          (2)因为我实际所进行的是双击操作(两次单击的时间间隔小于系统设定),而由于TBrowser进行OLE文档操作的时延使程序双击操作解释为两次单击操作,哪位达人对Delphi单击、双击事件的处理流程比较明白的,可否说明一下,就目前自己分析,当鼠标双击时,系统事件处理应该是:  
          (捕获第一个击键)OnMouseClick   ->   OnMouseDown   ->   。。。->   (捕获第二次击键)判断为双击事件OnMouseDbClick->   ...  
          当确定前面的流程为一次双击操作时,前面的流程如何实现?通过消息堆栈储存第一次点击消息暂不处理,然后判断为双击时抛弃前一次单击消息而不作单击事件处理?  
   
  想到啥写啥,也不知对不对,请高手指点,呵呵

(1)单击操作和双击操作的判断,是由操作系统通过对鼠标的采样来确定而直接送给Delphi系统,还是由Delphi系统自己进行计算来评判?  
          (2)因为我实际所进行的是双击操作(两次单击的时间间隔小于系统设定),而由于TBrowser进行OLE文档操作的时延使程序双击操作解释为两次单击操作,哪位达人对Delphi单击、双击事件的处理流程比较明白的,可否说明一下,就目前自己分析,当鼠标双击时,系统事件处理应该是:  
          (捕获第一个击键)OnMouseClick   ->   OnMouseDown   ->   。。。->   (捕获第二次击键)判断为双击事件OnMouseDbClick->   ...  
          当确定前面的流程为一次双击操作时,前面的流程如何实现?通过消息堆栈储存第一次点击消息暂不处理,然后判断为双击时抛弃前一次单击消息而不作单击事件处理?  
   
  想到啥写啥,也不知对不对,请高手指点,呵呵

试了一下,但是无法重现你的问题。。  
   
  测试了一下几个事件,发现双击的时候顺序是:  
  MouseDown  
  Click  
  MouseUp  
  DblClick  
  MouseDown  
  MouseUp  
 

posted on 2008-09-19 13:43 delphi2007 阅读(269) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。