DCL上的控件能否做到延时3秒才可使用?
一个button,希望其在DCL弹出后的三秒才可使用,即DCL弹出时控件是灰色不可用的,等3秒钟后此控件才可以使用?路过的大侠请给个招。本帖最后由 革天明 于 2013-1-19 16:53 编辑
无解的话就算了,DCL还是弱啊,谢谢诸位了! 可以做到!但lisp是单线程,在等待的3秒时间内你什么也不能干!所以,你的想法有什么意义呢! 我就是要它什么都不能干,其它同事使用我写的程序,工作的太快了,出错的机率有点大,我想浪费这3秒钟,使他们有时间检查,
请教如何做到? yjr111你来查岗的吧,小心脏受不鸟! 本帖最后由 cable2004 于 2013-1-19 01:40 编辑
看看!看看!
看看!看看!
看看!看看!
其实很简单的了,先new_dialog,然后mode_tile 1,然后delay 30s后mode_tile 0就行了哦 (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"))
) 这样也行:
;...
(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)
;... 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可用才填入,没什么意义了
KKK和KKL是两个edit_box,希望里面的内容先填入,等待CS按键可用
页:
[1]
2