乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 124|回复: 6

为何出错!

[复制链接]

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-2-9 15:23:00 | 显示全部楼层 |阅读模式
(defun C:HELLO( / dcl_id )
  (setq dcl_id (load_dialog "d:\\wjh\\study\\autolisp\\tmp.dcl"));加载 DCL 文件
  (if (not (new_dialog "hello" dcl_id))                ;初始化对话框
    (exit)                                        ;如果不工作就退出
  )
  (start_list "p_list" 2)
  (add_list "comghit")
;!!!---------------------*****出错地方*****----------------------------!!!
  ;如果加上下面这句,程序就死掉,似乎进了死循环,为什么?是用法不对吗?
  ;(add_list "comghit")
  (end_list)
  (start_dialog)                ;显示对话框
  (unload_dialog dcl_id)        ;卸载 DCL 文件
  (princ)
)
回复

使用道具 举报

5

主题

16

帖子

4

银币

初来乍到

Rank: 1

铜币
34
发表于 2003-2-9 16:10:00 | 显示全部楼层
(defun C:HELLO( / dcl_id )
  (setq dcl_id (load_dialog "d:/tmp.dcl"))
  ;问题出在这里,如果(new_dialog "hello" dcl_id)成功,则你无法再去控制对话框了.
  ;(if (not (new_dialog "hello" dcl_id))
  ;    (exit)
  ;)
  (if (new_dialog "hello" dcl_id)
      (progn
           (start_list "test" 2)
           (add_list "comghit")
           (add_list "comghit")
           (end_list)
           (start_dialog)
           (unload_dialog dcl_id)
           (print dcl_id)
      )
  )
  (princ)
)
hello:dialog{
      label="hello";
      :popup_list {
            label="";
            key="test";
            width=15;
            list="1";
      }
      : row {
            fixed_width = true;
            alignment = right;
            : button {
                     label = "下一步";
                     key = "next";
                     width = 8;
            }
            : button {
                     label = "取消";
                     key = "cancel";
                     is_cancel = true;
                     width = 8;
            }
      }
}
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-2-10 09:34:00 | 显示全部楼层
我觉得你并没有改变什么东西,
if expression1 then expression 2
if not expression1 then exit
expression 2
不都是expression1为真时执行expression2吗?
而且如果是你说的那种错误,应该是提示出错然后退出程序,不我的是程序就没有任何动静,也无法操作,只能结束任务。
回复

使用道具 举报

5

主题

16

帖子

4

银币

初来乍到

Rank: 1

铜币
34
发表于 2003-2-10 10:18:00 | 显示全部楼层
请注意这里:
  (if (not (new_dialog "hello" dcl_id))
      (exit)
  )
我已经说过,只要执行了(new_dialog "hello" dcl_id)而且成功的话,他就会显示出对话框,(start_dialog)只是表示你要开始控制对话框而已。我说的重点在于"控制",正因为你无法控制,所以才导致3键退出,不知道你明白没有。所以我是从来都不这样使用的。
回复

使用道具 举报

5

主题

16

帖子

4

银币

初来乍到

Rank: 1

铜币
34
发表于 2003-2-10 11:01:00 | 显示全部楼层
sorry,我是看着我的贴子给你回复的,的确有不妥的地方。
我再看看,不过你按我那种方法使用是绝对没错的。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-2-10 11:01:00 | 显示全部楼层
你在仔细看看,你和我的程序只是一个判断语句的两种写法,或许判断的另一种结果所执行的语句不同(我的是(exit),你的是继续程序以后的内容),但这个判断语句在这里的判断结果应该都是执行(start_list)...的,而且我也执行了你的程序,结果一样。
    所以我怀疑是不是CAD的问题,我的CAD是盗版的。
          还是很感谢您的回答!!!
回复

使用道具 举报

5

主题

16

帖子

4

银币

初来乍到

Rank: 1

铜币
34
发表于 2003-2-10 11:09:00 | 显示全部楼层
不用客气,大家一起提高嘛。
我又重新试了你的程序,结果是没什么问题。我现在贴上完整的代码供你参考。
(defun C:HELLO( / dcl_id )
  (setq dcl_id (load_dialog "d:/tmp.dcl"))
  (if (not (new_dialog "hello" dcl_id))
      (exit)
  )
  (start_list "test" 2)
  (add_list "comghit")
  (add_list "comghit")
  (end_list)
  (start_dialog)
  (unload_dialog dcl_id)
  (princ)
)
hello:dialog{
      label="hello";
      : list_box {
            label="";
            key="test";
            width=15;
            list="1";
      }
      : row {
            fixed_width = true;
            alignment = right;
            : button {
                     label = "确定";
                     key = "accept";
                     width = 8;
            }
            : button {
                     label = "取消";
                     key = "cancel";
                     is_cancel = true;
                     width = 8;
            }
      }
}
如果可以的话,你可以上传你的代码,大家研究一下。或者你可以去广杰居下在2002迷你中文版,很好用。前提是你是用98。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-1 23:54 , Processed in 2.901329 second(s), 67 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表