明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1212|回复: 1

求助关于鼠标双击的问题

[复制链接]
发表于 2009-4-9 13:21:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-4-9 13:25:33 编辑

;;如何消除双击时的多次响应问题
;;前面是反应器的程序段,问题在最后

(defun newdcr(/)
 (vl-load-com)
 (if (member "acdblclkedit.arx" (arx)) (arxunload "acdblclkedit.arx" nil) )
 (setq dcr (VLR-Mouse-Reactor nil '((:VLR-beginDoubleClick . stdcr))) )
 (vlr-add dcr)
(princ)
)


(defun stdcr ( ro po / obj )
 (setq obj (car (nentselp (car po))))
 (ttfun obj) 
(princ)
)

(defun ttfun( ent / a b )
 (setq a (entget ent))
 (setq b (cdr (assoc 0 a)))
 (if (= b "TEXT") (princ (cdr (assoc 1 a))) (princ "\n不是文字\n"))
(princ)
)

(newdcr)

;;以上程序段是一个测试用小程序,双击文字时,输出文本内容,非文字时报错。
;;acadr2004下运行

;| 以下是返回结果
<图元名: 7ef5a5c8><图元名: 7ef5a5c8><图元名: 7ef5a5c8><图元名: 7ef5a5c8><图元名: 7ef5a5c8><图元名: 7ef5a5c8><图元名: 7ef5a5c8><图元名: 7ef5a5c8>abcd<图元名: 7ef5a5c8>abcdabcd
|;
;;其中图元名先出现了7次,第8次出现时执行了一次ttfun子函数,然后图元名又出现了,同时执行了一次ttfun,最后又返回了一次或几次ttfun的执行结果
;| 现在就有几个问题了
1。为什么会出现多次图元名,如何不让它出现---一次也不出现
2。为什么会多次出现ttfun的执行结果,这样的情况是不是可以理解成ttfun运行了多次,也就是一次双击操作,由于系统响应的原因,反应器作出了多次响应。
3。如果是多次响应的原因,那什么不是一次图元名一次运行结果这样间隔的出现。
4。程序运行最后,命令栏并没有回到"command : "这样的状态,需要按一次"ESC"。但是这并不影响直接运行命令。

求助:如何让反应器只响应一次,最好不出现额外的信息输出?

|;

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2009-4-9 13:34:00 | 显示全部楼层

主要问题已解决

(vlr-add dcr)

这一句里dcr写成了另一个反应器名

图元名不再出现了

但ttfun的结果依然返回两次

如何只返回一次????

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-2 13:37 , Processed in 0.153108 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表