freshairfly 发表于 2003-4-25 18:16:00

在VB中如何判断一个文档是否被关闭??

比如
Dim docNew=ACADDOCUMENT
Dim Documents=ACADDocuments
Set docNew=Documents.Add

docNew可能被用户关闭了
如果程序再对 docNew 进行操作的话就会出现错误

如何才能避免这样的错误呢?

mccad 发表于 2003-4-25 20:20:00

在Documents中查看各文件

efan2000 发表于 2003-4-25 20:35:00

提供一个自定义个函数

如果文档关闭时,那么对文档的操作就会无效,即出错,那么我们可以试着操作,如果出错,表示文档已经无效了。下面的函数是用于判断一个文档是否有效。
参数:AcadDoc 文档对象
返回值:True 有效
Private Function DocumentAvailable(ByVal AcadDoc As AcadDocument) As Boolean
    DocumentAvailable = False
    Dim Name As String
   
    On Error GoTo ErrTrap
    Name = AcadDoc.Name
    DocumentAvailable = True
    Exit Function
   
ErrTrap:
    On Error GoTo 0
End Function

freshairfly 发表于 2003-4-27 12:39:00

谢谢两位斑竹,可如何判断AutoCAD是否被关闭了呢?

两位斑竹的方法都可行
可是如何判断AutoCAD是否被关闭了呢?

freshairfly 发表于 2003-4-27 16:57:00

两位斑竹,你们的方法对于AcadDocument可行,但对于AcadApplication好象都不可行!

两位斑竹,你们的方法对于AcadDocument可行,但对于AcadApplication好象都不可行!!本来以为 efan2000 的方法对于AcadApplication对象也是可行的
可是试了以后发现不行(意外!!)

efan2000 发表于 2003-4-27 21:38:00

一样的,可以吧。

参数:AcadApp 应用程序对象
返回值:True 有效
Private Function ApplicationAvailable(ByVal AcadApp As AcadApplication) As Boolean
    ApplicationAvailable = False
    Dim Caption As String
   
    On Error GoTo ErrTrap
    Caption = AcadApp.Caption
    ApplicationAvailable = True
    Exit Function
   
ErrTrap:
    On Error GoTo 0
End Function

freshairfly 发表于 2003-4-28 08:48:00

呵呵,不好意思,的确可以,是我写错了!!

再次感谢两位斑竹!!
页: [1]
查看完整版本: 在VB中如何判断一个文档是否被关闭??