Shape-Indexe

11/03/2009 - 10:21 von kippi | Report spam
Hallo zusammen,

in unserem Prozessvisualisierungssystem steuern wir Visio über die COM-
Schnittstelle. Wir verwenden in den Shape-Sheeteigenschaften die "User-
defined Cells", um Verweise auf Shape-spezifische Verbindungen mit den
Prozessvariablen zu vermerken. Ein Shape wird von unserer Software
über den Shape-Index identifiziert. Nun haben wir festgestellt, das
nach Verwenden der Visio-Funktion "Send to Back" die Shape-Indexe von
Visio veràndert werden -> ein und dasselbe Shape-Objekt erhàlt einen
neuen Index. Leider können wir in diesen Shape-Indexànderungen keine
vorhersehbare Harmonie entdecken.

Fragen:
1. Kann man die Shape-Indexe "einfrieren" (mit "Send to Back" wird
kein neues Shape generiert)?
2. Ist ein Algorithmus der Shape-Indexànderungen bekannt?

Danke,
Kippi
 

Lesen sie die antworten

#1 Dieter Sternberg
11/03/2009 - 19:47 | Warnen spam
Hallo Kippi,

den Shape-Index zu verwenden, ist eine ungünstige Entscheidung.
Besser wàre es, die Shape-ID zu benutzen. Sie bleibt über die Lebenszeit
des Shapes unveràndert.
Der Shape-Index (also die Position in der Shapes-Collection des
Parent-Objekts) spiegelt die Z-Order wieder. Weiter hinten liegende
Objekte haben einen kleineren Index als weiter vorn liegende. Visio wird
die Shapes in dieser Reihenfolge zeichnen.
Das ganze wirkt aber nur dann, wenn sich Shapes tatsàchlich überlappen.
Ein SendToBack bei einem solo liegenden Shape veràndert nicht seinen
Index. Zu welchem anderen Shape auch?

Fragen:
1. Kann man die Shape-Indexe "einfrieren" (mit "Send to Back" wird


kein neues Shape generiert)?
Nein. SendToBack generiert kein neues Shape sondern verschiebt es nur in
der Collection des Parents. Besser Shape-ID benutzen.

2. Ist ein Algorithmus der Shape-Indexànderungen bekannt?


Sicher. Aber wohl nur den Visio-Entwicklern :-)

Und der Shape-Index bietet weitere Ràume für Überraschungen:
Werden Führungslinien (Guides) auf's Blatt gezogen, legt sie Visio in
der Z-Order immer ganz nach hinten - und damit àndert sich der Index
aller anderen Shapes.

Grüsse
Dieter

kippi schrieb:
Hallo zusammen,

in unserem Prozessvisualisierungssystem steuern wir Visio über die COM-
Schnittstelle. Wir verwenden in den Shape-Sheeteigenschaften die "User-
defined Cells", um Verweise auf Shape-spezifische Verbindungen mit den
Prozessvariablen zu vermerken. Ein Shape wird von unserer Software
über den Shape-Index identifiziert. Nun haben wir festgestellt, das
nach Verwenden der Visio-Funktion "Send to Back" die Shape-Indexe von
Visio veràndert werden -> ein und dasselbe Shape-Objekt erhàlt einen
neuen Index. Leider können wir in diesen Shape-Indexànderungen keine
vorhersehbare Harmonie entdecken.

Fragen:
1. Kann man die Shape-Indexe "einfrieren" (mit "Send to Back" wird
kein neues Shape generiert)?
2. Ist ein Algorithmus der Shape-Indexànderungen bekannt?

Danke,
Kippi

Ähnliche fragen