WIN171 发表于 2002-6-21 22:08:00

斑竹,各位高手,我现在已经没有脾气了

请教各位高手,本人用vba(cad2000中文版)和vb6编cad程序,碰到一个有趣的问题:在程序中使用GetEntity时,在编程状态,按F8运行时一切正常,提示选择图元,但是在按F5运行时,程序在UserForm1状态下可能是陷入死循环(类似死机)。本人试过在vb6中编程,遇到同样的问题。
本人不光在GetEntity时发生以上现象,在使用选择集时,使用SelectOnScreen时也发生同样的问题。
怎么办?

mccad 发表于 2002-6-22 12:36:00

贴你出问题的程序出来吧(我倒没碰过此类问题,可能我编的程序少吧)

陈伯雄 发表于 2002-6-24 14:54:00

何不用VLISP,多么顺畅...

WIN171 发表于 2002-6-24 23:37:00

请看程序

在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

mccad 发表于 2002-6-25 07:41:00

窗口没有隐藏是不能执行选择图元等操作的,这一方面LISP、VBA都是一样的

WIN171 发表于 2002-6-25 23:29:00

版主,能否百忙之中明示?在此预先谢过

斑竹,能否明示本程序如何隐藏窗体?
    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?请明示,如有简单例子则不胜感激。

mccad 发表于 2002-6-29 16:30:00

改成这样吧

Private Sub CommandButton1_Click()
    Dim Ent As AcadEntity
    Dim BasePnt As Variant
    Me.Hide
    ThisDrawing.Utility.GetEntity Ent, BasePnt, "请选择图元"
    Me.show
End Sub

mccad 发表于 2002-6-29 17:02:00

或者,如果你用的是2002版,可以将窗体改为非模态窗体

如图,将窗体的ShowModal属性改为False,
这样,就不用去隐藏窗体了.

WIN171 发表于 2002-6-30 00:09:00

多谢,旧问题已经解决,还有新问题

按照提示,问题已解决。
另外,网站的vba实用函数中,很多使用到VLAX类。我在vba程序中,
Dim Ent as NEW VLAX 时,总是提示自定义类型未定义,请问如何解决?

mccad 发表于 2002-6-30 09:18:00

该类在下载中心有下载,把它导入为类模块就行

页: [1] 2
查看完整版本: 斑竹,各位高手,我现在已经没有脾气了