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
问题是,你可以在不关闭应用程序的情况下关闭所有图形,并且在没有打开文档的情况下无法进行更改 ;您需要做的是检查打开了多少文档,如果=1,则设置var,然后关闭 ;如果文件。计数(>);1、什么都不做
酷CM
我不会想到这一点,但这很有意义。是的,如果没有绘图(对象),它怎么能对文档(绘图)做些什么呢?谢谢
标记 CM这种方法:
If Documents.Count > 0 Then
GoTo Continue
Else
Exit Sub
End If
Continue:
MsgBox "Do Something"
在其自己的子例程中工作,但它不与我的ACADApp\u beginquitt代码一起工作
知道吗
如果它单独起作用,那么理论上它应该完成这项工作
谢谢
标记 当我把代码放到应用程序事件中时;它仍然表示,无法获取文档对象
我想知道是不是因为我在一个对象级事件中
标记 好的,我认为这里的问题是在关闭事件之前(即使它说的是关闭之前),我认为它在运行事件之前关闭了所有图形;因此,我得到了一个无法获取文档的错误
这是一个非常有趣的问题
可能是一个Do While应用程序。文档(&T);0将起作用
我不';我不知道
标记 我很久以前就遇到了这个问题,Randall给了我一个解决办法 ;不幸的是,现在他给我的程序已经不再使用它了,所以代码已经不存在了 ;本人';当我有机会的时候,我会翻阅我的档案,看看能不能找到
只是想一想,如果你在不保存的情况下关闭图形,那么你在什么空间里也没有区别,对吗 ;硬币的另一面是,你真正想做的是确保它在适当的空间,节省时间 ;因此,您可以改用BeginSave事件。
嘿,鲍勃,这是一个非常好的主意,但我不能说我每次关门都会保存这幅画
现在,我正在使用ACADApp\u SysVarChanged事件,该事件运行良好
我切换了工作空间,从那里我需要做的每一件事都完成了,就是don 35;039;t I don#039;我不经常记得做那件事
所以,我想在关门的时候帮我做个开关会很好
标记 这正是我的观点 ;如果你不';不保存图形,它不#039;不管图形关闭时它在什么空间,因为,好吧,你没有';t保存。
哦,是的,很抱歉我错过了
I';我不确定(在这一点上)空间与它有什么关系,但答案是,没有关系
标记
页:
[1]
2