斑竹,各位高手,我现在已经没有脾气了
请教各位高手,本人用vba(cad2000中文版)和vb6编cad程序,碰到一个有趣的问题:在程序中使用GetEntity时,在编程状态,按F8运行时一切正常,提示选择图元,但是在按F5运行时,程序在UserForm1状态下可能是陷入死循环(类似死机)。本人试过在vb6中编程,遇到同样的问题。本人不光在GetEntity时发生以上现象,在使用选择集时,使用SelectOnScreen时也发生同样的问题。
怎么办?
贴你出问题的程序出来吧(我倒没碰过此类问题,可能我编的程序少吧)
何不用VLISP,多么顺畅...
请看程序
在vba中新建窗体,插入command控件,定义该控件的过程为:dim Ent as Acadentity
dim BasePnt as variant
thisdrawing.utility.getentity Ent,BasePnt,"请选择图元"
或者定义选择集:
dim SSEt as acadselectionset
然后清空thisdrawing中的选择集,再利用选择集的add加入选择集"AAA"
然后利用SSet.selectonscreen在屏幕上选择
----------------总是在选择图元的这一步出问题,不论是getentity或selectonscreen
窗口没有隐藏是不能执行选择图元等操作的,这一方面LISP、VBA都是一样的
版主,能否百忙之中明示?在此预先谢过
斑竹,能否明示本程序如何隐藏窗体?Private Sub CommandButton1_Click()
Dim Ent As AcadEntity
Dim BasePnt As Variant
AppActivate Application.Caption
ThisDrawing.Utility.GetEntity Ent, BasePnt, "Select a entity"
MsgBox "OK"
End Sub
另外,我发现该过程在窗体中使用时,会发生我所说的问题,如果在模块中使用时就不会有问题。窗体中和在模块中到底有何区别?
其次,在明经社区中的实用函数中,许多用到了VLAX,我在使用时,如果自己定义某一变量为VLAX时,程序总提示自定义类型未定义,如何才能使用VLAX?请明示,如有简单例子则不胜感激。
改成这样吧
Private Sub CommandButton1_Click()Dim Ent As AcadEntity
Dim BasePnt As Variant
Me.Hide
ThisDrawing.Utility.GetEntity Ent, BasePnt, "请选择图元"
Me.show
End Sub
或者,如果你用的是2002版,可以将窗体改为非模态窗体
如图,将窗体的ShowModal属性改为False,这样,就不用去隐藏窗体了.
多谢,旧问题已经解决,还有新问题
按照提示,问题已解决。另外,网站的vba实用函数中,很多使用到VLAX类。我在vba程序中,
Dim Ent as NEW VLAX 时,总是提示自定义类型未定义,请问如何解决?
该类在下载中心有下载,把它导入为类模块就行
页:
[1]
2