Programmgesteuert Shapes verschieben

13/03/2009 - 16:16 von kippi | Report spam
Hallo *,

von meinem C++ Programm aus verschiebe ich Shapes indem ich PinX
veràndere. Der Code:

VShape.AttachDispatch(VShapes.GetItem(COleVariant((short) (nShape))));
// Neue ShapePosition setzen
VCell.AttachDispatch(VShape.GetCellsSRC(VISSECTIONOBJECT,
VISROWXFORMOUT, VISXFORMPINX));
sPinOriginal = VCell.GetFormula(); // Aktuelle Position auslesen
dValue = atof(sPinOriginal); // Wert Konvertieren
dValue += dOffset; // Offset (= 500. hin oder
-500. zurück)
sPinNeu.Format("%8.2f mm", dValue); // Konvertieren
VCell.SetFormula(sPinNeu); // PinX setzen

Die meisten Shapes werden wie erwartet verschoben. Einige kehren
jedoch nicht auf ihre Ursprungsposition zurück, sondern "schwimmen"
daneben. Meine Beobachtung: Die problematischen Shapes enthalten
meistens Bögen oder Vektoren mit Pfeilen.

Muss ich mehr berücksichtigen als nur PinX zu veràndern?

Danke,
Kippi
 

Lesen sie die antworten

#1 Senaj Lelic [DE MVP Visio]
17/03/2009 - 17:15 | Warnen spam
Hallo Christian,
leider kenne ich C++ so gar nicht - ich vermute einen Fehler im
Konvertieren.
Wenn ich das bei mir als VBA oder .NET mache gehts problemlos.
Lies doch mal bitte die Formula und das REsult aus (vorher und nachher) und
schreib das mal hier rein

Senaj Lelic
maguro DataAssist GmbH
DE MVP Visio


"kippi" schrieb im Newsbeitrag
news:
Hallo *,

von meinem C++ Programm aus verschiebe ich Shapes indem ich PinX
veràndere. Der Code:

VShape.AttachDispatch(VShapes.GetItem(COleVariant((short) (nShape))));
// Neue ShapePosition setzen
VCell.AttachDispatch(VShape.GetCellsSRC(VISSECTIONOBJECT,
VISROWXFORMOUT, VISXFORMPINX));
sPinOriginal = VCell.GetFormula(); // Aktuelle Position auslesen
dValue = atof(sPinOriginal); // Wert Konvertieren
dValue += dOffset; // Offset (= 500. hin oder
-500. zurück)
sPinNeu.Format("%8.2f mm", dValue); // Konvertieren
VCell.SetFormula(sPinNeu); // PinX setzen

Die meisten Shapes werden wie erwartet verschoben. Einige kehren
jedoch nicht auf ihre Ursprungsposition zurück, sondern "schwimmen"
daneben. Meine Beobachtung: Die problematischen Shapes enthalten
meistens Bögen oder Vektoren mit Pfeilen.

Muss ich mehr berücksichtigen als nur PinX zu veràndern?

Danke,
Kippi

Ähnliche fragen