2016-06-27 14 views

Antwort

1

Wenn Sie XData verwenden, einige DXF codes are transformed with their owner. Sie können die Codes verwenden: ExtendedDataWorldXCoordinate (1011), ExtendedDataWorldXDisp (1012), ExtendedDataWorldXDir (1013), ExtendedDataDist (1041) und ExtendedDataScale (1042). In Ihrem Fall werde ich die Database.ObjectModified oder DBObject.Modified Ereignisse verwenden. Sie können this approach verwenden, um zu ermitteln, welche Eigenschaften geändert wurden.

Um eine gute Leistung zu erhalten, sollten Sie eine ObjectOverrule verwenden, wo Sie die Open Methode überschreiben, um den Zustand Ihrer Linienzug speichern, wenn es für Schreib- und vergleichen Sie es mit dem Zustand, in dem Close Methode gefunden wird geöffnet. Dann können Sie Ihre XData in einem CommandEnded Event-Handler ändern, um sicher zu sein.

Sie können auch die Ereignisse DBObject.OpenedForModify und DBObject.ObjectClosed verwenden.

In der Tat gibt es eine Menge Möglichkeiten, es zu tun, aber die scheint die beste Option zu sein, da Sie einen Filter für die XData festlegen können. Und wenn Sie die Methode Close überschreiben, haben Sie direkten Zugriff auf das Objekt und seinen Status, während Sie im DBObject.ObjectClosed-Ereignis nur die ID haben.