Andrew1979 发表于 2022-7-5 22:00:27

DCL对话框卡在循环中

编辑:我已经把范围缩小到橙色的代码。输入序列号后,第一个对话框似乎没有关闭。很明显,我在关闭对话框时出错了。
 
 
我对DCL还比较陌生,现在要解决问题有点挑战性。我认为与其说是DCL,不如说是LISP
 
基本上我有两个对话框。
第一个请求序列号,第二个请求授权码
 
序列号检查有效,然后继续询问授权码。
 
问题是,无论授权代码是正确的还是错误的,在按下对话框上的OK按钮后,第1个对话框再次出现,编辑框中带有序列号。
 
一旦发生这种情况,AutoCAD就会被卡住,无法中断对话框中发生的任何事情。必须按住ctrl+alt+delete,然后结束任务才能关闭AutoCAD
 
我卡住了。
 
这是代码
DCL第一箱:
第二个DCL对话框代码:
这里是一些lisp:
这里是最后一个被调用的函数,在那里所有事情都出错了
3

BIGAL 发表于 2022-7-5 22:09:51

这对我有效(action\u tile“sizze”“(setq item$value)(done\u对话框)”)返回项

Andrew1979 发表于 2022-7-5 22:16:51

 
谢谢你,我以前试过,但对我不起作用。我已经设法更改代码,使事情变得更好,但无论我做什么,我都无法关闭第一个对话框。我真的不明白问题出在哪里。

MSasu 发表于 2022-7-5 22:24:09

您的第一个对话框不会再次显示,它只是没有关闭,因为它的START\u对话框调用没有到达;我对你的代码做了一些调整:
4

Andrew1979 发表于 2022-7-5 22:33:06

太好了,谢谢你,看起来不错。我稍后会试一试,然后告诉你我怎么做。

MSasu 发表于 2022-7-5 22:45:18

祝你好运我还对你的代码进行了一些优化,你可能会发现这也很有用。

Andrew1979 发表于 2022-7-5 22:49:09

好吧,这似乎不起作用。它确实关闭了对话框,但除此之外什么也没做。如果你输入了正确或错误的代码,它只会关闭对话框。没有调用警报,也没有调用其他函数。有什么想法吗?谢谢

MSasu 发表于 2022-7-5 22:55:36

请注意,以上我只张贴了两个功能,我调整;您应该在代码中只替换它们。另外,请再次检查我的帖子,因为我修复了您的DCL的名称(它被更改为适合我的测试环境)。

Andrew1979 发表于 2022-7-5 23:01:38

是的,我注意到了变化,但做了调整。出于某种原因,它就是不起作用。然而,我现在已经根据您告诉我的,在DCL对话框未加载的情况下使其工作。
 
我几乎恢复了我的初始代码,但有一个例外:
5
 
现在它工作了。再次感谢
页: [1]
查看完整版本: DCL对话框卡在循环中