Hallo Hansruedi
Die Klasse in der StartElementSelect ist nicht relevant, ich verwende eine Klasse InteractorHelper in der ich Dinge mache wie Handles bewegen und das Selektieren implementiert habe.
Aus einem Grund, den ich nicht verstehe, wird beim ersten Mal aufrufen der Funktion StartElementSelect(…) diese nicht so ausgeführt, wie ich es erwarten würde.
Da ich die Methode aber so lange aufrufen will bis auf einen Button gedrückt wird, starte ich die Methode so lange neu, bis eben dieser Button gedrückt wird, da die Funktion nur aufgerufen werden muss, wenn sich der Mauszeiger auf der Zeichenfläche befindet, rufe ich die Klasse immer über process_mouse_msg im Interactor auf. Hier ist anzumerken, dass process_mouse_msg nur aufgerufen wird, wenn StartElementSelect abgeschlossen wurde. Um StartElementSelect zu beenden, muss AllplanIFW.InputFunctionStarter.RemoveFunction(), die Funktion darf aber nur aufgerufen werden, wenn StartElementSelect aktiv ist. Das wiederholte aufrufen, bis ein Event stattfindet bringt aber noch andere Probleme mit sich, unter anderem muss man sich um darum kümmern, dass nur die zuletzt Ausgewählten Elemente markiert sind.
Ich weiss nicht wie sinnvoll meine Lösung ist, sie scheint aber zuverlässig zu funktionieren.
Wo und wie die Funktion aufgerufen werden soll, weiss ich nicht, ich kann lediglich erklären wie ich das Problem gelöst habe.
Freundliche Grüsse
Yannic