Zusi-Menüs erweitern

Das Unterforum für Diskussionen rund um die Technik, Bedienung, Konfiguration usw. Das ist auch die erste Anlaufstelle für Bastler mit Fragen zu den Editoren.
Nachricht
Autor
Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Zusi-Menüs erweitern

#1 Beitrag von Carsten Hölscher »

Aus der Diskussion aus Braunschweig hab ich mal zwei Sachen eingebaut, hier Doku vorab:

Bild

Und die html-Datei sieht so aus:

Code: Alles auswählen

<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<title>Demodatei,</title>
</head>
<body bgcolor="#FFFFFF">
<p>Demodatei, um Züge aus der html-Datei zu starten</p>
<p><a href="fpndatei=timetables?_Docu?Streckenbaututorium.fpn?zugstart=69900">Testklick für Fahrplan und Zug</a></p>
<p><a href="fpndatei=timetables?_Docu?Streckenbaututorium.fpn">Testklick für Fahrplan </a></p>
<p><a href="fpndatei=?zugstart=69900">Testklick für Zug des bereits geladenen
Fahrplans</a></p>
</body>
</html>
Man könnte jetzt also grundsätzlich eine Internetseite ins Startmenü einbinden und aus der einen Zug starten. Da wäre ggf. noch zu überlegen, wie man diese Seite direkt im Simulator aufruft.

Carsten

Benutzeravatar
Johannes
Beiträge: 3203
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Zusi-Menüs erweitern

#2 Beitrag von Johannes »

Die Toolautoren sollen sich also absprechen, wer Menu0, 1, … benutzt?!

Was für Platzhalter sind bei "Parameter" möglich?

Zum "Direktstart aus HTML-Datei": Ich meine mich zu erinnern, dass wir ein URL-Format verwenden wollten, was auch die Implementierung eines benutzerdefinierten URL-Handlers erlaubt. Etwa "zusi3:zugstart?fpndatei=bla.fpn&zugnr=12345". Dann kann der Zugstart sowohl aus dem internen als auch einem externen Browser aufgerufen werden.

Flo Zille
Beiträge: 203
Registriert: 15.05.2018 09:06:32

Re: Zusi-Menüs erweitern

#3 Beitrag von Flo Zille »

Das ist eine praktische Funktion! Ich hatte mir schon länger Verknüpfungen für alle "Zusi-Programme" wie Dateiverwaltung, Editoren usw. im Hauptsimulator gewünscht, weil der Hauptsimulator eben recht leicht über Steam zu starten ist. Man kann im Anschluss auch ZusiDisplay einfach über das Menü starten, aber die restlichen Programme müssen "per Hand" gestartet werden, was gerade unter Linux mit Proton (wine von Steam) ziemlich umständlich ist, und selbst Start-Skripte müssen regelmäßig bei Proton-Updates angepasst werden.

Das mit der fortlaufenden Nummer ist aber nicht ganz so praktisch für die "Installationsroutinen" von externen Tools, oder geht hier auch eine beliebige Zufallszahl? Selbst wenn bei der Installation eines Tools eher umständlich die nächste freie fortlaufende Nummer erkannt und genutzt wird: Wenn ein Tool entfernt wird, hat man plötzlich eine Lücke und es kommt möglicherweise zu Problemen. Praktischer wären hier "Unterknoten" mit beliebigem Namen, z.B. HKEY_CURRENT_USER\Software\Zusi3\Fahrsim\Einstellungen\Menu\ZusiMeter und darunter dann die Einträge. Aber vielleicht ist das mit der Zusi-internen "Registryabstraktion" auch nicht so einfach umsetzbar, dann ist es eben so.

Zum URL-Handler wäre, wie auch schon von Johannes vorgeschlagen, so etwas interessant: How do I register a custom URL protocol in Windows?. Wenn im Zusi-internen Browser so ein Link geklickt wird, sollte das natürlich "abgefangen" und der Fahrplan/Zug geladen werden, und nicht das Programm erneut gestartet werden. Da ist wohl eine gewisse Sicherheitsproblematik zu beachten (in Foren usw. könnten beliebige Zusi-Links gepostet und dann geklickt werden, da sollte dann kein Unfug passieren – ich stelle mir einen wie auch immer erfolgreichen Angriff darüber aber gerade eher schwer vor).

Benutzeravatar
F. Schn.
Beiträge: 6697
Registriert: 24.10.2011 18:58:26

Re: Zusi-Menüs erweitern

#4 Beitrag von F. Schn. »

Also aus meiner Sicht ist das mit der Registry wenig Hilfreich. Die Diskussion aus Braunschweig richtete sich in meinen Augen vor allem an Leute, die die Tools nicht erst aufwendig kennen gelernt oder installiert haben. Das heißt, man müsste viel eher diese Zusatz-Menüs in eine ini-Datei im offiziellen Bestand eintragen und die gewünschten Zusatzprogramme über den Zusi-Updatemechanismus mitliefern. Weil in die Registry kann man sich eigentlich nur sinnvoll eintragen, wenn man eine komplexe Installationsroutine hat. Das haben viele Programme noch nicht mal. Die meisten Programme sind Plug and Play und können überall liegen. Aber selbst wenn sie da beim ersten Start herumspielen (was nicht sonderlich sinnvoll ist), muss man die Programme trotzdem erst mal kennen gelernt und heruntergeladen haben.

Für die HTML-Seite zielst du vermutlich auf die folgenden Anwendungsfälle: 1. Den Direktstart von Zügen aus der Readme-Datei von Fahrplänen. Müsste ich mal ausprobieren, ob das klappt, am besten sollte da der Fahrplan natürlich nicht neu laden. Und 2. um die ZusiDatenbank im integrierten Browser zu öffnen. Da müsste jonathanp was dazu sagen.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

hlinke
Beiträge: 155
Registriert: 21.08.2019 07:12:42
Aktuelle Projekte: Bildfahrplan
Wohnort: Trier
Kontaktdaten:

Re: Zusi-Menüs erweitern

#5 Beitrag von hlinke »

F. Schn. hat geschrieben: 31.08.2023 10:15:33 Die Diskussion aus Braunschweig richtete sich in meinen Augen vor allem an Leute, die die Tools nicht erst aufwendig kennen gelernt oder installiert haben. Das heißt, man müsste viel eher diese Zusatz-Menüs in eine ini-Datei im offiziellen Bestand eintragen und die gewünschten Zusatzprogramme über den Zusi-Updatemechanismus mitliefern. Weil in die Registry kann man sich eigentlich nur sinnvoll eintragen, wenn man eine komplexe Installationsroutine hat. Das haben viele Programme noch nicht mal. Die meisten Programme sind Plug and Play und können überall liegen. Aber selbst wenn sie da beim ersten Start herumspielen (was nicht sonderlich sinnvoll ist), muss man die Programme trotzdem erst mal kennen gelernt und heruntergeladen haben.
Genauso hatte ich die Diskussion in Braunschweig auch verstanden.
Der Menü-Eintrag sollte helfen, die Tools den Anwendern bekannt zu machen und eine einfachere Aufrufmöglichkeit bieten.
Dazu müßten die Tools über die Dateiverwaltung mit angeboten werden und dann sollte die Dateiverwaltung auch die Menü-Einträge in die Registry selbst vornehmen. Sonst besteht die Gefahr, daß wir einen Wildwuchs bekommen: Jedes Tool trägt sich mit irgendeiner Nummer (wahrscheinlich immer die 1) in irgendein Menü ein.
Wenn das nicht geregelt wird, klappt das nicht.
Da müssen wir uns noch einige Gedanken machen.

Viele Grüße
Harold

Benutzeravatar
Johannes
Beiträge: 3203
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Zusi-Menüs erweitern

#6 Beitrag von Johannes »

hlinke hat geschrieben: 31.08.2023 12:37:49Sonst besteht die Gefahr, daß wir einen Wildwuchs bekommen: Jedes Tool trägt sich mit irgendeiner Nummer (wahrscheinlich immer die 1) in irgendein Menü ein.
Das ist ja noch am einfachsten zu beheben. Statt irgendwelcher Nummern gibt es genau einen Unterschlüssel "Menu", und dessen Unterschlüssel werden dann abgearbeitet. Dann kann jeder den Unterschlüssel mit dem Toolnamen benennen und es gibt keine Konflikte.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-Menüs erweitern

#7 Beitrag von Carsten Hölscher »

Meine Idee war:
Ein Tool prüft beim Start, ob es schon einen registry-Eintrag gibt: Wenn nicht fragt es, ob es sich integrieren soll.
Wenn ja: so einen Einzeiler wie

Code: Alles auswählen

while registry.keyexists('....'+inttostr(i)) do inc(i)
Und mit der Nummer trägt man sich ein.
Beim Löschen könnte man alles unterhalb des Knotens leerräumen (hab nicht getestet, was Zusi dann macht, aber es wäre sehr einfach, es dann zu ignorieren).

Als Stufe 2 könnte man Tools mit dem Setup fest installieren, das wäre dann was fürs nächste Setup.

Carsten

Benutzeravatar
Johannes
Beiträge: 3203
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Zusi-Menüs erweitern

#8 Beitrag von Johannes »

Carsten Hölscher hat geschrieben: 31.08.2023 19:45:58 Wenn ja: so einen Einzeiler wie

Code: Alles auswählen

while registry.keyexists('....'+inttostr(i)) do inc(i)
Und mit der Nummer trägt man sich ein.
Aber warum so kompliziert? Kein mir bekannter Installer unterstützt so was, ohne benutzerdefinierten Code zu schreiben. Und für die Deinstallation muss ich mir die Nummer auch noch irgendwo merken.

Spricht was gegen meinen Alternativvorschlag (siehe oben)?

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-Menüs erweitern

#9 Beitrag von Carsten Hölscher »

Von der Sache her spricht nichts dagegen.
Erfordert halt einige Änderungen bei mir, könnte etwas dauern...

Carsten

Benutzeravatar
F. Schn.
Beiträge: 6697
Registriert: 24.10.2011 18:58:26

Re: Zusi-Menüs erweitern

#10 Beitrag von F. Schn. »

Also ich bin mir nicht sicher, ob es Sinn ergibt, da parallel zum nächsten Setup noch extra Setups für Zusatztools zu machen, die dann erst im nächsten Gesamt-Setup kommen können. (Und neue Tools auch immer erst mit dem nächsten Gesamt-Setup kommen können.) Ich hätte es jetzt eher wie ZusiDisplay und der Buchfahrplan angegangen: Die Tools werden automatisch mitinstalliert, liegen im Zusi-Programmordner und werden über das Zusi-Paketmanagement geupdated. Und bei so einem Komplettsatz an Tools wären irgendwelche Umwege über die Registry in meinen Augen eher hinderlich. Das klingt viel mehr nach einer Datei, die im Offiziellen Zusi-Ordner liegt und zentral über das ZPA gewartet werden kann.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

hlinke
Beiträge: 155
Registriert: 21.08.2019 07:12:42
Aktuelle Projekte: Bildfahrplan
Wohnort: Trier
Kontaktdaten:

Re: Zusi-Menüs erweitern

#11 Beitrag von hlinke »

F. Schn. hat geschrieben: 31.08.2023 20:11:55 Also ich bin mir nicht sicher, ob es Sinn ergibt, da parallel zum nächsten Setup noch extra Setups für Zusatztools zu machen, die dann erst im nächsten Gesamt-Setup kommen können. (Und neue Tools auch immer erst mit dem nächsten Gesamt-Setup kommen können.) Ich hätte es jetzt eher wie ZusiDisplay und der Buchfahrplan angegangen: Die Tools werden automatisch mitinstalliert, liegen im Zusi-Programmordner und werden über das Zusi-Paketmanagement geupdated. Und bei so einem Komplettsatz an Tools wären irgendwelche Umwege über die Registry in meinen Augen eher hinderlich. Das klingt viel mehr nach einer Datei, die im Offiziellen Zusi-Ordner liegt und zentral über das ZPA gewartet werden kann.
Diesen Ansatz würde ich auch bevorzugen.
Außerdem habe ich noch eine Frage: Wäre es möglich, bei den Parametern auch Variablen anzugeben, die dann von ZUSI vor dem Aufruf ausgefüllt werden?

Zum Beispiel:
  • %FPL wird durch den aktuell in ZUSI ausgewählten Fahrplan (Pfad und Name) ersetzt, wenn vom Anwender einer ausgewählt ist
  • %TRN wird durch den Pfad und Name der aktuell in ZUSI ausgewählten TRN-Datei ersetzt
usw.
Bei Bildfahrplan würde ich dann als Parameter angeben:
"FPL=%FPL TRN=%TRN"

Damit würde es beim Bildfahrplan zum Beispiel möglich, gleich den richtigen Bildfahrplan zu erzeugen und anzuzeigen, ohne daß der Anwender diese Informationen noch einmal eingeben muß.

Benutzeravatar
Johannes
Beiträge: 3203
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Zusi-Menüs erweitern

#12 Beitrag von Johannes »

Ich dagegen würde die Installation und die Einbindung in Zusi als zwei verschiedene Dinge ansehen. Ich möchte Tools nicht über die Dateiverwaltung vertreiben müssen, um diese Menüeinträge nutzen zu können.
Carsten Hölscher hat geschrieben: 31.08.2023 20:05:44 Von der Sache her spricht nichts dagegen.
Erfordert halt einige Änderungen bei mir, könnte etwas dauern...
Warum, ist doch "nur" ein Einzeiler :P

Code: Alles auswählen

TRegistry.GetKeyNames(stringlist); for i := 0 to stringlist.count do …

Benutzeravatar
F. Schn.
Beiträge: 6697
Registriert: 24.10.2011 18:58:26

Re: Zusi-Menüs erweitern

#13 Beitrag von F. Schn. »

Wenn dann würde ich eine Bestandsfremde Eintragung ausschließlich als zusätzliche ini-Datei im eigenen Datenverzeichnis sehen. Dort hätte man die Chance, die Eintragung durch die übliche Bereinigung (eigenes DV leeren) sofort wieder aufzuräumen. Wenn wir jetzt hier ein weitere Einstellungsgrab in der Registry schaffen, das zudem in diesem Fall nicht mal über die "Standardwerte alle Karten" zurücksetzbar ist, fürchte ich, dass das in Chaos endet.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-Menüs erweitern

#14 Beitrag von Carsten Hölscher »

Ich hab's intern schonm so vorbereitet, dass das Ganze auch in einer Bedienoberfläche in Zusi bearbeitet werden kann. Darum ist die Änderung auch kein Einzeiler.

Bei Parametern bitte erstmal sammeln.

Carsten

hlinke
Beiträge: 155
Registriert: 21.08.2019 07:12:42
Aktuelle Projekte: Bildfahrplan
Wohnort: Trier
Kontaktdaten:

Re: Zusi-Menüs erweitern

#15 Beitrag von hlinke »

Dann fange ich mal mit einer Liste der Parameter, die mich interessieren an:

%TRN - Aktuelle Zugdatei
%FPL - Aktuelle Fahrplandatei
%ZugNr - Aktuelle Zugnummer

Format, wie für die TCP Schnittstelle angeboten Pfade relativ zum ZUSI Verzeichnis oder absolute Pfade - wenn vom Anwender noch nicht ausgewählt, dann leerer String.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-Menüs erweitern

#16 Beitrag von Carsten Hölscher »

Hab die Vorschläge soweit eingebaut in der aktuellen Version.
Doku folgt gleich noch.

Carsten

hlinke
Beiträge: 155
Registriert: 21.08.2019 07:12:42
Aktuelle Projekte: Bildfahrplan
Wohnort: Trier
Kontaktdaten:

Re: Zusi-Menüs erweitern

#17 Beitrag von hlinke »

Hallo Carsten,

danke für die schnelle Anpassung.
Die Beschreibung habe ich in der Dokumentation der Version 3.5.6.0 im Kapiel 11.8 Erweiterung der Menüsysteme gefunden.

Danke auch für die Implementierung der variablen Parameter. Das macht die Sache viel einfacher.

Dann werde ich mich mal an die Implementierung machen :D

Eine Frage:
Was passiert, wenn mehrere Programme, denselben MenuIndex verwenden?
Werden die Einträge dann hintereinander im Menü erfolgen (was gut wäre) oder überschreiben sie sich (was schlecht wäre)?

Viele Grüße
Harold

hlinke
Beiträge: 155
Registriert: 21.08.2019 07:12:42
Aktuelle Projekte: Bildfahrplan
Wohnort: Trier
Kontaktdaten:

Re: Zusi-Menüs erweitern

#18 Beitrag von hlinke »

Hallo CVarsten,

ich habe meine ersten Tests mit den Menueinträgen gemacht.

Ich hatte als MenuIndex=10 eingegeben und bekomme dann die Fehlermeldung
Toolbar item index out of range (siehe Screenshot)

Bild

Wenn ich als MenuIndex=5 setze, wird der Bildfahrplan korrekt hinzugefügt.
Da ich nicht wissen kann, wieviele Menueeintrage es schon gibt, wenn mein Programm aufgerufen wird, wollte ich mit einer hohen Zahl starten.
Laut Anleitung sollten unbesetzte Indices möglich sein.

Vielleicht mußt Du hier nochmal nachschauen.

Viele Grüße
Harold

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Zusi-Menüs erweitern

#19 Beitrag von Carsten Hölscher »

Ja, unsinnige Einträge werden nicht abgefangen.
Es gibt immer ein Einfügen, kein Überschreiben.

Carsten

Benutzeravatar
F. Schn.
Beiträge: 6697
Registriert: 24.10.2011 18:58:26

Re: Zusi-Menüs erweitern

#20 Beitrag von F. Schn. »

Carsten Hölscher hat geschrieben: 02.09.2023 18:01:36 Bei Parametern bitte erstmal sammeln.
Sorry, hab irgendwie dummerweise meine Antwort nicht abgeschickt:
Für 3D-Editor und Ftd-Editor weiß ich zwar noch nicht, welche Tools es dafür geben könnte, aber diese würden natürlich auch die st3, ls3 und ftd-Datei benötigen.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Antworten