Frage stellen
0

Roadmap-Element mit Starbasic einsetzen

gefragt 2018-06-18 18:05:49 +0200

krueuw Gravatar-Bild

updated 2018-06-18 19:55:25 +0200

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?

Bearbeiten Tags ändern Melden schließen vereinen löschen

2 Antworten

0

geantwortet 2018-06-19 00:03:49 +0200

Lupp Gravatar-Bild

updated 2018-06-19 00:05:22 +0200

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 https://api.libreoffice.org/docs/idl/... ein bisschen weiter.

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

Bearbeiten Melden löschen Link mehr

Kommentare

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.

krueuw Gravatar-Bildkrueuw ( 2018-06-19 08:46:41 +0200 )Bearbeiten

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...

Lupp Gravatar-BildLupp ( 2018-06-19 10:58:56 +0200 )Bearbeiten

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.)

Lupp Gravatar-BildLupp ( 2018-06-19 11:04:41 +0200 )Bearbeiten

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 :-) Aber so funktioniert es für mich.

krueuw Gravatar-Bildkrueuw ( 2018-06-20 13:51:41 +0200 )Bearbeiten
0

geantwortet 2018-06-20 18:03:31 +0200

krueuw Gravatar-Bild

updated 2018-06-20 18:50:38 +0200

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
Bearbeiten Melden löschen Link mehr
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2018-06-18 18:05:49 +0200

Angesehen: 24 Mal

Aktualisiert: Jun 20 '18