Roadmap-Element mit Starbasic einsetzen

Hallo,
ich möchte das Roadmap-Element in einem Assistenten-Dialog wie im “Makro Kochbuch” von Thomas Krumbein S.119 beschrieben einsetzen. Die Initialisierung klappt auch. Allerdings wird mir nicht klar, wie man mit dem Wert in oDlg.model.step den Schritt auch im Roadmap-Element anpasst. Genau setzt es mit meinem Verständnis an dieser Stelle aus:

Sub Roadmap_itemStateChanged(oEvent)
	Select Case oEvent.ItemID
	Case 1 ..

Kann mir jemand auf die Sprünge helfen, wie das funktionieren soll und was es mit dem Object oEvent auf sich hat?

Also, mir ist nicht recht klar worum es bei der Frage wirklich geht.

Der Listener erzeugt doch wohl das Event mit der Eigenschaft .ItemID, die soviele natürlichzahlige Werte annehmen kann wie eben Items (“Start” usw.) eingefügt sind. Das

Select Case oEvent.ItemID  
  Case 1
    Schritt1()
  Case 2
    Schritt2()
 ...
End Select  

muss nun einfach für jeden der Fälle veranlassen, was nach Lage der Dinge zu tun ist. Im Beispiel wird - weil man ja auch Schritte zurück gehen kann - Schritt2 nachsehen müssen, ob schon Objekte gemäß Schritt3 erzeugt wurden, und muss sie ggf. wieder entfernen oder zur Aktualisierung vorbereiten oder… Auf jeden Fall wird es dann die Lizenz anzegen müssen, vielleicht prüfen, ob der Text bis zum Ende gescrollt wurde, die entspechende CheckBox und den PushButton “Vor >>” "enable"n …
Schritt1, Schritt2… sind gewählte Namen für Sub, die eben auch in einem zugänglichen Modul definiert sein müssen.
Aber eigentlich steht das ja im Text.
Wie die Dinge im einzelnen gehen weiß ich nicht weil ich nie mit einem solchen Roadmap-Dialog gearbeitet habe.
Vielleicht hilft LibreOffice: UnoControlRoadmapModel Service Reference ein bisschen weiter.

(Mir ist klar, dass das keine echte Antwort ist, aber meine Rückfrage war zu lang für einen Kommentar.)

Danke für die schnelle Antwort. Also ist die Event-Quelle der Listener. Das wird sicher funktionieren. Aber wie kann ich dafür sorgen, dass nach dem Betätigen der Schalter ein entsprechendes Event gesendet wird? Bisher beeinflussen die Schalter ja oDlg.model.step und das bleibt ohne Wirkung auf die Roadmap.

Was den Listener betrifft, würde ich ihn nicht als Quelle (Source) sehen. Das sollte der Dialog sein. Unterschiedliche Arten von Events werden aber im Detail ziemlich unterschiedlich behandelt, und was ‘Roadmap’ betrifft müsste ich erst experimentieren. Was je nach Status geschehen soll, ist jeden falls Sache der Case-Sub. Welche Objekte Zugriff erlauben und wie, weiß ich nicht. Jedenfalls wird der Dialog ein Objekt zur Textanzeige enthalten oder referenzieren…

Ich persönlich “liebe” so komplexe Tools, die nach den Konzepten aus fremden Köpfen gebaut sind, nicht besonders. Ich brauche keine standardisierte “Roadmap”. (Schon das Wort, das ja eigentlich eine simple Sequenz meint, ist mir zuwider. Lizenzen gibt es bei mir nicht, und eine knappe Antwort auf eine knappe Frage bekomme ich mit ‘InputBox’.
(Jetzt werde ich für ein paar dutzend Stunden verreisen.)

Danke Lupp. Ich hab die Lösung für mich gefunden und in einer Antwort verpackt. Mir war am Anfang nicht klar, dass der Zustand des Roadmap-Elementes unabhängig vom Step-Wert des Dialogs ist. Sehr sinnvoll erscheint mir das auch jetzt nicht :slight_smile: Aber so funktioniert es für mich.

Um mit den Schaltern “Weiter”, “Vor” und “Zurück” die Schritte des Roadmap-Elementes zu beeinflussen, muss die Eigenschaft oDlg.getControl(“Roadmap”).model.currentItemID manipuliert werden. So z.B. wenn die Anzeige des Roadmap-Elements um eins erhöht werden soll, also ein Schritt weiter geschaltet werden soll:

Sub Weiter
	oDlg.getControl("Roadmap").model.currentItemID = oDlg.getControl("Roadmap").model.currentItemID + 1
	oDlg.model.step = oDlg.model.step + 1	
End Sub

Gleichzeitig wird der Anzeigeschritt des Dialogs angepasst (2. Zeile).

Außerdem können am Ende des Unterprogramms Sub InitializeRoadmap folgende Startwerte gesetzt werden:

oDlg.getControl("Roadmap").model.step= 0 'Roadmap-Element ist unabhägig vom Step sichtbar
oDlg.getControl("Roadmap").model.currentItemID = 1 'Roadmap beginnt mit Willkommen
oDlg.model.step = 1 'Dialog beginnt mit Step = 1 für die Kontrollelemente