Bryco 发表于 2007-8-14 18:37:14

记录事件和时间安排

大家好,多亏了基思's help,I'我让我的VB应用程序使用一个VBA存根,该存根设置了我的类的实例并终止 事件I'm编程在&#039时触发;应该是的,我'我很高兴
一个;粘性导叶“;我需要有条件地重置系统变量,这取决于哪个命令I'我正在接球 除第一次外,每次都有效 本人'我试着在我的VB程序、VBA存根和这两个地方设置系统变量 两者都给出了相同的结果——除第一次外,每次都有效
I'我创建了一个ACAD。使用ACVBA接收。ARX,并将相同的代码放入ACAD。我的存根DVB程序中有DVB,以防程序加载顺序影响这一点,但没有乐趣 换句话说,它没有#039;我是否在ACAD中自动加载程序似乎无关紧要。DVB或稍后手动加载,以及是否存在ACVBA。ARX(使用vanilla ACAD 2007)也不#039;这似乎无关紧要
I'我试图做的是使用ATTREQ来抑制DDATTE/ATTEDIT对话框 当我单步遍历VBA存根中的代码时,重置系统变量的请求发生在DDATTE对话框弹出之前,但它仍然会弹出
另一个有趣的因素是,当整个事情在VBA中完成时,这从未发生过
随着变量被设置在我的DVB存根中,它发生在VB程序加载之前很久(无论如何用计算机术语),所以我不&35;039;不明白为什么重置ATTREQ没有#039;t第一次影响DDATTE/ATTEDIT的显示 正如我所说,剩下的时间它的工作如预期
我错过了什么?

中原一点粽 发表于 2007-8-15 00:09:17

对于我来说,vba中的计时已经足够复杂了,但是;VBAIDE“;不#039;t、 (我只在vba中谈论)Public WithEvents AutoCAD As AcadApplication
Sub App_StartMacro()
    Set AutoCAD = ThisDrawing.Application
End Sub
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
    If CommandName = "COMMANDLINE" Then
      Set AutoCAD = ThisDrawing.Application
    End If
End Sub

湖水王道 发表于 2007-8-15 18:01:07

我原本希望BeginCommand能为我争取足够的额外时间来阻止讨厌的DDATTE/ATTEDIT对话框,但它没有't、  本人'在加载VB例程之前,我尝试在VBA中处理这个问题
现在,我'我只是将ATTREQ设置为0,看看这是否足够好 它在我的应用程序中有效,但我希望确保其他块插入(具有属性)正常工作;如果插入的对象具有属性,我的应用程序会强制ATTEDIT出现,因此它可能是。
页: [1]
查看完整版本: 记录事件和时间安排