ACADApp_Beginquirt事件
您好当我关闭ACAD时,我正试图切换当前的活动工作区
但是,我收到一个错误“获取文档对象失败”
有人知道解决方法吗
谢谢
马克
Private 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
**** Hidden Message ***** 问题在于,您可以在不关闭应用程序的情况下关闭所有图形,并且无法在打开文档的情况下进行更改。您需要做的是检查打开了多少文档,如果=1,则设置var,然后关闭。如果是医生。计数>1,什么也不做
酷CM!
我不会想到这个,但它很有意义
是的,如果没有绘图(对象)可以处理,它怎么能对文档(绘图)做某事
谢谢!
Mark
CM
此方法:
If Documents.Count > 0 Then
GoTo Continue
Else
Exit Sub
End If
Continue:
MsgBox "Do Something"
在自己的子例程中工作,但不与我的ACADAP_Beginquirt代码一起工作
标记
CM
当我将该代码放入应用程序事件时;它仍然说,无法获取文档对象。
我想知道这是否是因为我处于对象级事件中?
Mark
好的
,我认为这里的问题是,在关闭之前的事件(即使它说在关闭之前),我认为它在运行事件之前关闭了所有图形;因此我得到了一个失败的文档错误。
这是一个有趣的问题。
可能是一个 Do While Application.documents > 0 将起作用。
我不知道。
马克 很久以前我就遇到了这个问题,兰德尔给了一个解决方法。 不幸的是,就目前而言,他给我的程序已经不再使用它,因此代码不再存在。 当我有机会时,我会挖掘我的档案,看看我是否能找到它。
只是一个想法,如果你在不保存它的情况下关闭绘图,那么你所处的空间没有任何区别,对吗? 硬币的另一面是,你真正想做的是确保它在适当的空间里节省时间。 因此,您可以改用 BeginSave 事件。
嘿Bob
这是一个非常好的主意,但我不能诚实地说我每次关闭时都会保存绘图。
现在我正在使用工作正常的ACADApp_SysVarChanged事件。
我切换工作区,它可以完成我需要的所有事情,只是我不经常记得这样做。
所以,我认为ACAD在关闭时为我切换会很好。
马克
这正是我的观点。 如果不保存图形,则当图形关闭时,它所在的空间无关紧要,因为,好吧,您没有保存。
哦,是的,对不起,我错过了。我不确定
(在这一点上)空间与它有什么关系,但答案是,不,这并不重要。
马克
页:
[1]
2