Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Auf Änderungen eines X-beliebigen Objektes reagieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Benny4 an!   Senden Sie eine Private Message an Benny4  Schreiben Sie einen Gästebucheintrag für Benny4

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 11. Dez. 2008 13:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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 Sub

Private 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


Sehen Sie sich das Profil von Benny4 an!   Senden Sie eine Private Message an Benny4  Schreiben Sie einen Gästebucheintrag für Benny4

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 12. Dez. 2008 10:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred,

danke dir, werde das sofort ausprobieren, wenn ich dazu komme. Danke

------------------
Grüsse Benny

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Benny4
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von Benny4 an!   Senden Sie eine Private Message an Benny4  Schreiben Sie einen Gästebucheintrag für Benny4

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 12. Dez. 2008 10:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred,

hab das jetzt probiert, aber es tut sich nichts. Wo muss ich denn diese Funktionen einbauen, damit da auch was geschieht?

------------------
Grüsse Benny

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Benny4
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von Benny4 an!   Senden Sie eine Private Message an Benny4  Schreiben Sie einen Gästebucheintrag für Benny4

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 12. Dez. 2008 12:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Sorry, hat sich erledigt, war wohl etwas zu voreilig.

------------------
Grüsse Benny

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz