Hallo zusammen,
ich bin dabei ein Marko zu schreiben, welches den Benutzer ein bestimmtes Skizzensymbol platzieren lässt.
Hierfür habe ich eine Vorlage.idw in welcher 3 Skizzensymboldefinitionen, gespeichert sind.
Alle 3 Skizzensymbole haben 2 Textboxen (Je Sprache1 und Sprache2), die mit Leben zu befüllen sind.
Was ich bereits habe (und funktioniert):
- Formular, in welchem der Benutzer das Skizzensymbol (per RadioButton) sowie den Inhalt der Textboxen (per ComboBoxen) auswählen kann
- Überprüfung ob die gewünschte Skizzensymbol-Definition bereits im Dokument vorhanden ist
Wenn nicht wird diese aus der Vorlage.idw kopiert
Was noch fehlt:
- Skizzensymbol (vorzugsweise mit den ausgewählten Texten) an Mauszeiger kleben, damit der Benutzer diese dann positionieren kann
Für den letzten Punkt habe ich 2 Ideen, die leider beide noch nicht richtig hinhausen...
Idee 1:
Ich verwende das Command DrawingUserDefinedSymbolsQuickCtxCmd.
Änlich wie hier rufe ich das Command auf. Ich hatte die Hoffnung, dass ich mittels PostPrivateEvent die Definition als auch die gewünschten Texte übergeben kann...
Leider funktioniert beides nicht. Ich habe bereits herausgefunden, dass ich mittels SelectSet.Select(oDef) die Definition 'übergeben' kann. Ein Übergeben der beiden Sprachen habe ich noch nicht hinbekommen.
So bekomme ich es hin, dass mein Tool das leere Skizzensymbol an die Maus hängt und den Benutzer positionieren lässt. Wenn dieser die Position bestimmt hat, geht das "Aufforderungstexte"-Fenster auf, wo der Benutzer jetzt etwas eintragen könnte. Das soll aber, wie oben beschrieben automatisch passieren.
(Das die Texte nicht bereits beim Positionieren angezeigt werden ist zwar nicht super schön, wäre aber verkraftbar)
Idee 2:
Ich verwende sowas wie Pick um eine Position auf dem Blatt zu erhalten. Idealerweiße würde ich direkt den Point2D zurück bekommen, den ich für das Positionen mittels SketchedSymbols.add() benötigen würde.
Leider benötigt Pick ein Objekt auf der Zeichnung, welches ich nicht habe. Hier fehlen mir die Ideen wie ich weiter forschen könnte...
Notlösung:
Wenn ich keine Lösung finde, könnte ich für alle Kombinationsmöglichkeiten ein eigenes Skizzensymbol ohne Einfügetexte erstellen und dann nach der Eingabe das gesuchte direkt positionieren. Dies würde jedoch bedeuten, dass ich weit über 10 verschiedene Skizzensymbole benötigen würde:-( Zudem finde ich die Erweiterbarkeit so eingeschränkter...
Vielen Dank schonmal im Vorraus
Gruß DerBrain87
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP