Bryco 发表于 2008-1-18 13:35:06

ACADApp\u Beginquirt事件

嗨,当我关闭ACAD时,我试图切换我当前的活动工作区,但是,我得到了一个错误;无法获取文档对象
有人知道解决方法吗
谢谢MarkPrivate Sub ACADApp_BeginQuit(Cancel As Boolean)
Dim CurrSysVarData As Variant
Dim SysVarName As String
Dim NewSysVarData As String

SysVarName = "WSCURRENT"
CurrSysVarData = ThisDrawing.GetVariable(SysVarName)
NewSysVarData = "Exit"

If CurrSysVarData"Exit" Then
    ThisDrawing.SetVariable SysVarName, NewSysVarData
    If MsgBox("Would you like to save this drawing?", vbYesNo) = vbYes Then
   ThisDrawing.Save
   Application.Quit
    Else
   Application.Quit
   Exit Sub
    End If
End If
End Sub


最爱卓妍 发表于 2008-1-18 14:19:03

问题是,你可以在不关闭应用程序的情况下关闭所有图形,并且在没有打开文档的情况下无法进行更改 您需要做的是检查打开了多少文档,如果=1,则设置var,然后关闭 如果文件。计数(&gt);1、什么都不做

帮助 发表于 2008-1-18 15:07:55


酷CM
我不会想到这一点,但这很有意义。是的,如果没有绘图(对象),它怎么能对文档(绘图)做些什么呢?谢谢
标记

许愿树 发表于 2008-1-21 10:45:19

CM这种方法:
If Documents.Count > 0 Then
GoTo Continue
Else
Exit Sub
End If

Continue:
MsgBox "Do Something"

在其自己的子例程中工作,但它不与我的ACADApp\u beginquitt代码一起工作
知道吗
如果它单独起作用,那么理论上它应该完成这项工作
谢谢
标记

懂事 发表于 2008-1-21 11:57:56

当我把代码放到应用程序事件中时;它仍然表示,无法获取文档对象
我想知道是不是因为我在一个对象级事件中
标记

凉粉天下 发表于 2008-1-21 15:17:54

好的,我认为这里的问题是在关闭事件之前(即使它说的是关闭之前),我认为它在运行事件之前关闭了所有图形;因此,我得到了一个无法获取文档的错误
这是一个非常有趣的问题
可能是一个Do While应用程序。文档(&T);0将起作用
我不'我不知道
标记

海盗 发表于 2008-1-21 16:45:51

我很久以前就遇到了这个问题,Randall给了我一个解决办法 不幸的是,现在他给我的程序已经不再使用它了,所以代码已经不存在了 本人'当我有机会的时候,我会翻阅我的档案,看看能不能找到
只是想一想,如果你在不保存的情况下关闭图形,那么你在什么空间里也没有区别,对吗 硬币的另一面是,你真正想做的是确保它在适当的空间,节省时间 因此,您可以改用BeginSave事件。

飞丽不可 发表于 2008-1-21 17:59:09


嘿,鲍勃,这是一个非常好的主意,但我不能说我每次关门都会保存这幅画
现在,我正在使用ACADApp\u SysVarChanged事件,该事件运行良好
我切换了工作空间,从那里我需要做的每一件事都完成了,就是don 35;039;t I don#039;我不经常记得做那件事
所以,我想在关门的时候帮我做个开关会很好
标记

春春 发表于 2008-1-21 18:08:37

这正是我的观点 如果你不'不保存图形,它不#039;不管图形关闭时它在什么空间,因为,好吧,你没有't保存。

新歌 发表于 2008-1-21 18:22:24


哦,是的,很抱歉我错过了
I'我不确定(在这一点上)空间与它有什么关系,但答案是,没有关系
标记
页: [1] 2
查看完整版本: ACADApp\u Beginquirt事件