找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2727|回复: 6

[原创]:DCL按钮双击效果 (源码)

[复制链接]
发表于 2009-7-14 09:17:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本文简单实现DCL对话框双击效果

作者:nonsmall

思路扩展:其他控件、Grread左右键双击、右键反应器里面也可以用这个方法
;nonsmall 作品: Visual DCL 全自动对话框自动连接程序

(defun c:tt( / dcl_id chk)
    (setq DCL (vl-filename-mktemp nil nil ".Dcl"))
    (setq f (open dcl "w"))
    (foreach s '(
"/*nonsmall 作品: Visual DCL*/"
""
"Form1:dialog"
"{"
" label = \"nonsmall作品\";"
"    :column"
"    {"
"        :text"
"       {"
"            key = \"Label1\" ;"
"            label = \"点击效果显示\" ;"
"            width = 22.95 ;"
"            height = 2.475 ;"
"            fixed_height = true ;"
"            fixed_width = true ;"
"        }"
"        :button"
"        {"
"            key = \"Command1\" ;"
"            label = \"单击双击不一样\" ;"
"            width = 24.15 ;"
"            height = 3.075 ;"
"            fixed_height = true ;"
"            fixed_width = true ;"
"        }"
"    }"
"    ok_cancel ;"
"}"
    )
    (write-line s f))
    (close f)
    (setq dcl_id (load_dialog DCL))
    (vl-file-delete Dcl)
    (setq chk 2)
    (setq old_time 0)
    (while (> chk 1)
        (new_dialog "Form1" dcl_id)
        (Action_Tile "Command1" "(Action_Command1)")
        (Action_Tile "accept" "(Action_accept)")
        (Action_Tile "cancel" "(Action_cancel)")
        (setq chk (start_dialog))
    )
    (unload_dialog dcl_id)
    (princ)
)

(defun Action_accept()
    (done_dialog 1)
)
(defun Action_cancel()
    (done_dialog 0)
)
(defun Action_Command1()
    (setq new_time (read (substr (rtos (getvar "date") 2 15) 9 6)))
    (setq pass_time (- new_time old_time))
    (cond
        ((> pass_time 5)
            (set_tile "Label1" "单击")
        )
        ((alert "双击")
            
        )
    )
    (setq old_time new_time)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2009-7-19 16:23:45 | 显示全部楼层
最近开始研究对话框了,谢谢楼主!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1304个

财富等级: 财源广进

发表于 2009-7-22 10:39:39 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2010-2-12 10:50:29 | 显示全部楼层
直接利用时差判断思路
和系统判断思路一样,非常好。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2010-2-12 16:15:41 | 显示全部楼层
不妥之处:“双击”引发了一个单击和一个双击事件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-5-2 00:17:43 | 显示全部楼层
想法很巧妙。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 22个

财富等级: 恭喜发财

发表于 2014-1-3 07:22:14 | 显示全部楼层
猫老师的功力早就今非昔比了,仿学院派弄个xyp-Dcl-Init共享一个,大家编DCL就省事啦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 06:35 , Processed in 0.184317 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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