carrot1983 发表于 2008-6-16 15:13:00

<p>对话框的出现和拾取点的顺序,你原来的程序有问题。</p><p>你在对话框弹出来的时候用了getpoint,不知道你试过了没有?可以拾取吗?</p><p>只有你拾取到了点,得到了<font size="2">(itoa (fix (dist1 x1 y1 x2 y2)))) </font>这个距离值</p><p>此时,当你按下TEXTbutton的时候在TEXTbox里面才会出现这个距离值</p><p></p>

wzh 发表于 2008-6-17 19:08:00

<p>不是不算,你设置断点看一下,实际是调用了子程序,问题是计算完成后没有恢复对话框,是第一段的主程序有问题,按下列方式试一下:</p><p>(defun c:pls( / Bflag)<br/>&nbsp; (vl-load-com)<br/><strong>&nbsp; (dcl_LoadProject "plus" T)<br/>&nbsp; (setq Bflag T)<br/>&nbsp; (while (= Bflag T)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq Bflag nil)<br/>&nbsp; &nbsp;(dcl_Form_Show plus_plus)<br/>&nbsp; )<br/></strong>)<br/>(defun c:plus_plus_btnp_OnClicked ()<br/><strong>&nbsp; (setq Bflag T)<br/>&nbsp; (dcl_Form_close plus_plus)<br/></strong>&nbsp; (setq pt1 (getpoint " insert point1"))<br/>&nbsp; (setq pt2 (getpoint " insert point2"))<br/>&nbsp; (setq x1 (car pt1))<br/>&nbsp; (setq x2 (car pt2))<br/>&nbsp; (setq y1 (cadr pt1))<br/>&nbsp; (setq y2 (cadr pt2))<br/>&nbsp; (dcl_Control_SetText plus_plus_text1 (itoa (fix (dist1 x1 y1 x2 y2))))<br/>)<br/>(defun dist1(x1 y1 x2 y2 / )<br/>&nbsp; (setq tt (sqrt (+ (* (- x2 x1) (- x2 x1)) (* (- y2 y1) (- y2 y1)))))<br/>&nbsp; (eval 'tt)<br/>)<br/></p>

north911 发表于 2008-6-18 09:58:00

<p>问题已解决,多谢各位指教!</p>

north911 发表于 2008-6-18 18:53:00

<p>再问一个问题,在没有安装OPENDCL的机器上要运行有OPENDCL对话框的程序需要OpenDCL.16.arx之外,还需要其它什么设置?</p>

north911 发表于 2008-6-19 09:51:00

直接加载OpenDCL.16.arx或OpenDCL.17.arx要出错,哪位高手指点一下在没有安装OPENDCL的机器上要运行有OPENDCL对话框的程序。

haiyunzhou 发表于 2012-2-9 21:23:17

学习了 非常感谢

honker1981 发表于 2012-2-11 18:15:27

btnp按钮的Event Invoke属性有没有设置为1?
页: 1 [2]
查看完整版本: 请教关于OPENDCL问题