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/> (vl-load-com)<br/><strong> (dcl_LoadProject "plus" T)<br/> (setq Bflag T)<br/> (while (= Bflag T)<br/> (setq Bflag nil)<br/> (dcl_Form_Show plus_plus)<br/> )<br/></strong>)<br/>(defun c:plus_plus_btnp_OnClicked ()<br/><strong> (setq Bflag T)<br/> (dcl_Form_close plus_plus)<br/></strong> (setq pt1 (getpoint " insert point1"))<br/> (setq pt2 (getpoint " insert point2"))<br/> (setq x1 (car pt1))<br/> (setq x2 (car pt2))<br/> (setq y1 (cadr pt1))<br/> (setq y2 (cadr pt2))<br/> (dcl_Control_SetText plus_plus_text1 (itoa (fix (dist1 x1 y1 x2 y2))))<br/>)<br/>(defun dist1(x1 y1 x2 y2 / )<br/> (setq tt (sqrt (+ (* (- x2 x1) (- x2 x1)) (* (- y2 y1) (- y2 y1)))))<br/> (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]