如何判断对话框消失?
这两天在弄一个尺寸检查工具,碰一问题横竖解决不了,具体如图。图一,运行界面
点击“开始检查”按钮,出现的状况如图二
就是当我点击检查后还没等窗口消失,程序就开始往下执行,导致画面千疮百孔。
是液晶屏反应太慢,还是CPU变化太快……
我想问下,有没有什么语句能够(if (对话框图形消失)……
对话框函数部分如下
(while (> dcl1 1)
(if (not (new_dialog "ccjcc" dcl_1 "" dclxy1)) (exit))
(if cclayt
(progn
(set_tile "laynam" cclayt) (z_disimg "c01" cc1col) (z_disimg "c02" cc2col) (set_tile "tog1" set1)
(set_tile dat1 "1") (set_tile dat2 "1") (set_tile dat3 "1") (set_tile dat4 "1"))
(setq cclayt "dimchk" cc1col 1 cc2col tcol dat1 "RAD1" dat2 "RAD3" dat3 "RAD5" dat4 "RAD7" set1 "1")
);if
(if (= dcl1 2)
(if (= ssn 0) (set_tile "error" "未发现可疑标注!") (set_tile "error" (strcat "发现可疑标注 " (itoa ssn)))));ifif
(if (= dcl1 4)
(if (tblsearch "LAYER" cclayt) (set_tile "error" "倒塌! 好像没能删除...") (set_tile "error" "成功删除标记层!")));ifif
(if (> inichk 0) (mode_tile "setlc" 0) (mode_tile "setlc" 1))
(action_tile "RAD1" "(setq dat1 $key)")
(action_tile "RAD2" "(setq dat1 $key)")
(action_tile "RAD3" "(setq dat2 $key)")
(action_tile "RAD4" "(setq dat2 $key)")
(action_tile "RAD5" "(setq dat3 $key)")
(action_tile "RAD6" "(setq dat3 $key)")
(action_tile "RAD7" "(setq dat4 $key)")
(action_tile "RAD8" "(setq dat4 $key)")
(action_tile "RAD9" "(setq dat4 $key)")
(action_tile "cchk" "(setq cclayt (get_tile \"laynam\")) (setq dclxy (done_dialog 2))")——————这个按钮
(action_tile "chtc" "(setq dclxy (done_dialog 3))")
(action_tile "delt" "(if (tblsearch \"LAYER\" cclayt) (setq dclxy (done_dialog 4)) (alert \"未发现标记层!\"))")
(action_tile "c01""(z_7col) (z_disimg \"c01\" cc1col) (z_disimg \"c02\" cc2col)")
(action_tile "c02""(z_7col) (z_disimg \"c01\" cc1col) (z_disimg \"c02\" cc2col)")
(action_tile "setlc" "(setq cclayt (get_tile \"laynam\")) (z_rwcc 1)")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(setq dclxy (done_dialog 0))")
(action_tile "help" "(z_chlp)")
(setq dcl1 (start_dialog))
(cond ((= dcl1 2) (setq dclxy1 dclxy) (load (strcat lspath "ass1") "bad1") (z_cchk))
((= dcl1 3) (setq dclxy1 dclxy) (z_ccchtc))
((= dcl1 4) (setq dclxy1 dclxy) (z_delt))
);cond
);while
走过路过,不要错过,有主意的出个主意,没主意的吆喝两声给个人场~
谢谢各位了!
最外面的这个循环有点可疑,(while (> dcl1 1)
不是对话框没有关闭 而是对话框又被显示出来了吧 vectra 发表于 2015-2-15 14:17 static/image/common/back.gif
最外面的这个循环有点可疑,(while (> dcl1 1)
不是对话框没有关闭 而是对话框又被显示出来了吧
哇~谢谢vectra关注!
应该不是,后面跟着的先是警告信息,然后才结束检查重现对话框
xyp1964 发表于 2015-2-15 20:27 static/image/common/back.gif
谢谢xyp1964!
怎么你们写起代码都那么简洁整齐?真叫人愤怒嫉妒恨……
下载试试~ xyp1964 发表于 2015-2-15 20:27 static/image/common/back.gif
你那个我还没完全看懂,不过我按那思路简化了对话框,把处理那部分分出来做返回窗口,去掉颜色显示,可还是不行。
由于前面还有父对话框,可能问题比较复杂。
页:
[1]