| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Auf Änderungen eines X-beliebigen Objektes reagieren (345 mal gelesen)
|
Benny4 Mitglied Softwareentwickler
Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2008 WIN XP Pro SP2
|
erstellt am: 11. Dez. 2008 13:41 <-- editieren / zitieren --> Unities abgeben:
Hi, ich möchte mit VB.NET auf jegliche Änderungen in meiner Zeichnung reagieren können. Im speziellen möchte ich, dass wenn der Benutzer z.B. eine Polylinie anklickt und sie mit den Grips verändert eine von mir definierte Aktion ausführen. Ebenso wenn die Polylinie verschoben wird, gedreht wird, u.s.w. Wie mache ich das am besten? ------------------ Grüsse Benny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 11. Dez. 2008 20:57 <-- editieren / zitieren -->
Hi, Du hast für Database Events, z.B. ObjectModified, das liefert Dir alle Objekte (und SubObjekte), an denen Änderungen durchgeführt werden. Code: Private pAcadDocDB as DatabaseServices.Database Private Sub activateDatabaseEvents(byref DB as DatabaseServices.Database) If DB IsNot Nothing Then Try pAcadDocDB = DB AddHandler pAcadDocDB.ObjectModified, AddressOf AcadObject_Modified ''andere Beispiele: 'AddHandler pAcadDocDB.ObjectAppended, AddressOf AcadObject_Appended 'AddHandler pAcadDocDB.ObjectErased, AddressOf AcadObject_Erased Catch ex As Exception Debug.Print("Error xxx") End Try End If End SubPrivate Sub removeDatabaseEvents() If pAcadDocDB IsNot Nothing Then Try RemoveHandler pAcadDocDB.ObjectModified, AddressOf AcadObject_Modified 'RemoveHandler pAcadDocDB.ObjectAppended, AddressOf AcadObject_Appended 'RemoveHandler pAcadDocDB.ObjectErased, AddressOf AcadObject_Erased Catch ex As Exception debug.print("Error xxxx") Finally pAcadDocDB = Nothing End Try End If End Sub Private Sub AcadObject_Modified(ByVal sender As Object, ByVal e As DatabaseServices.ObjectEventArgs) 'unter e.DBObject findest Du das modifizierte Element End Sub
Mit Eventhandling baust Du Dir gleichzeitig jede Menge 'potentielle' Fehlerquellen ein. Z.B. solltest Du immer aufpassen, dass EventHandling, welches mit AddHandler seine Delegates initialisiert hat, auch wieder ordnungsgemäß beendet werden, weiters nicht mehrfach initialisiert werden. Auch Befehlsüberprüfung wäre vorteilhaft, z.B. 'UNDO' oder 'AUDIT'. - alfred -
|
Benny4 Mitglied Softwareentwickler
Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2008 WIN XP Pro SP2
|
erstellt am: 12. Dez. 2008 10:07 <-- editieren / zitieren --> Unities abgeben:
|
Benny4 Mitglied Softwareentwickler
Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2008 WIN XP Pro SP2
|
erstellt am: 12. Dez. 2008 10:42 <-- editieren / zitieren --> Unities abgeben:
|
Benny4 Mitglied Softwareentwickler
Beiträge: 178 Registriert: 16.02.2006 AutoCAD 2008 WIN XP Pro SP2
|
erstellt am: 12. Dez. 2008 12:00 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|