革天明 发表于 2013-1-18 15:56:53

DCL上的控件能否做到延时3秒才可使用?

一个button,希望其在DCL弹出后的三秒才可使用,即DCL弹出时控件是灰色不可用的,等3秒钟后此控件才可以使用?路过的大侠请给个招。

革天明 发表于 2013-1-19 16:53:46

本帖最后由 革天明 于 2013-1-19 16:53 编辑

无解的话就算了,DCL还是弱啊,谢谢诸位了!

Gu_xl 发表于 2013-1-18 17:09:13

可以做到!但lisp是单线程,在等待的3秒时间内你什么也不能干!所以,你的想法有什么意义呢!

革天明 发表于 2013-1-18 17:57:12

我就是要它什么都不能干,其它同事使用我写的程序,工作的太快了,出错的机率有点大,我想浪费这3秒钟,使他们有时间检查,
请教如何做到?

革天明 发表于 2013-1-18 20:34:06

yjr111你来查岗的吧,小心脏受不鸟!

cable2004 发表于 2013-1-18 21:35:58

本帖最后由 cable2004 于 2013-1-19 01:40 编辑

看看!看看!
看看!看看!
看看!看看!

yjr111 发表于 2013-1-18 21:51:48

其实很简单的了,先new_dialog,然后mode_tile 1,然后delay 30s后mode_tile 0就行了哦

yjr111 发表于 2013-1-18 22:19:00

(defun c:tt()
(setq fn (open (setq lsdcl (VL-FILENAME-MKTEMP "tmp" "" ".dcl")) "w"))
(foreach x
        (list
        "cs:dialog{label=\"测试\";"
        ":row{"
        "label=\"测试\";key=\"cs\";"
        "}"
        "ok_cancel;"
        " }"
        )
(write-line x fn)
)
(close fn)
(setq dcl_id(LOAD_DIALOG lsdcl))
(VL-FILE-DELETE lsdcl)
(setq t0 (vtime))
(new_dialog "cs" dcl_id)
(while(<(- (vtime) t0)3)
(mode_tile "cs" 1)
(mode_tile "accept" 1)
(mode_tile "cancel" 1)
)
(mode_tile "cs" 0)
(mode_tile "accept" 0)
(mode_tile "cancel" 0)
(action_tile "accept" "(done_dialog)")
(action_tile "cancel" "(done_dialog -1)")
(setq sd(start_dialog))
(if (< sd 1)(unload_dialog dcl_id))
(princ)
)
(defun vtime ()
(* 86400 (getvar "tdusrtimer"))
)

ZZXXQQ 发表于 2013-1-19 08:08:00

这样也行:
;...
(mode_tile "cs" 1)
(mode_tile "accept" 1)
(mode_tile "cancel" 1)
(while (< (- (vtime) t0) 3))
(mode_tile "cs" 0)
(mode_tile "accept" 0)
(mode_tile "cancel" 0)
;...

革天明 发表于 2013-1-19 08:55:49

ZZXXQQ 发表于 2013-1-19 08:08 static/image/common/back.gif
这样也行:
;...
(mode_tile "cs" 1)


不能达到我的要求,
(mode_tile "cs" 1)
(set_tile "kkk" kehuhao1)
(set_tile "kkl" liushuihao1)
(while (< (- (vtime) t0) 3)
   (mode_tile "cs" 0)
)
这个时候KKK和KKL的内容非要等到CS可用时才填入,而我想实现这些内容先填入,等待3秒CS才可使用,现在是CS可用才填入,没什么意义了

革天明 发表于 2013-1-19 08:58:09

KKK和KKL是两个edit_box,希望里面的内容先填入,等待CS按键可用
页: [1] 2
查看完整版本: DCL上的控件能否做到延时3秒才可使用?