Hallo an Alle,
ich habe ein Problem mit Events. Ich wollte ein Programm schreiben das immer bevor die Datei gespeichert wird ein paar Attribute ausliest. Dafür wäre ja das BeginSave Event genau richtig.
Aber wie kriege ich es an jede Database ran? Und am besten sollte es vor jedem Speichern auch nur einmal ausgeführt werden. Die Vorgehensweise unten funktioniert soweit, nur nicht bei der ersten Datei die geöffnet wird. Also wenn ich eine DWG doppelklicke und diese dann speichere wird der Befehl leider nicht ausgeführt. Öffne ich eine weiter Datei dann klappt es auch wenn ich zu der ursprünlichen Datei zurück kehre. Gibt es eine Alternative zu DocumentActivated, die bei jedem Dateiöffnen ausgeführt wird?
Oder weiß jemand ein Beispiel wie man das BeginSave Event anders verwendet?
Danke Theo
Public Class Events
Private Shared pDocManager As Autodesk.AutoCAD.ApplicationServices.DocumentCollection = Nothing
Private Shared MyDB As Database = Nothing
Public Class Mirror_Initialize
Implements Autodesk.AutoCAD.Runtime.IExtensionApplication
Public Sub Initialize() Implements Autodesk.AutoCAD.Runtime.IExtensionApplication.Initialize
Try
pDocManager = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager
AddHandler pDocManager.DocumentActivated, AddressOf DocActivated
AddHandler pDocManager.DocumentToBeDeactivated, AddressOf DocdeActivated
Catch
Call MsgBox("Error initializing CADde_DocEvents", MsgBoxStyle.Critical, "CADde_DocEvents FEHLER")
End Try
End Sub
Private Shared Sub DocActivated(ByVal sender As Object, ByVal e As Autodesk.AutoCAD.ApplicationServices.DocumentCollectionEventArgs)
Try
MyDB = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database
AddHandler MyDB.BeginSave, AddressOf SerchforLinks
Catch
Call MsgBox("Automatisches Aktualisieren ging schief", MsgBoxStyle.Critical)
End Try
End Sub
Private Shared Sub DocdeActivated(ByVal sender As Object, ByVal e As Autodesk.AutoCAD.ApplicationServices.DocumentCollectionEventArgs)
Try
RemoveHandler MyDB.BeginSave, AddressOf SerchforLinks
Catch
MsgBox("Fehler bei Terminate")
End Try
End Sub
Public Sub Terminate() Implements Autodesk.AutoCAD.Runtime.IExtensionApplication.Terminate
Try
If pDocManager IsNot Nothing Then RemoveHandler pDocManager.DocumentBecameCurrent, AddressOf DocActivated
Catch
MsgBox("Fehler bei Terminate")
End Try
End Sub
End Class
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP