User Tools

Site Tools


action-example-lcimg-de

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

action-example-lcimg-de [2018/11/12 08:56] (current)
Line 1: Line 1:
 +====== Blockbelegung als Lokbild =====
  
 +[[:​german#​objekte|{{ ​ :​objects.png}}]][[:​german|{{ ​ :​rocrail-logo-35.png}}]]
 +[[german|Inhalt]] -> [[german#​Objekte|Objekte]] ->  [[actions-de|Aktionen]] ​
 +  * [[actions-de|Aktionen definieren]] | [[actionctrl-de|Aktionssteuerung]] | [[actioncond-de|Aktionsbedingung]] | [[action-example-de|Beispiele]]
 +    * **Blockbelegung als Lokbild**
 +\\
 +\\
 +===== Beschreibung =====
 +Es wird eine Möglichkeit beschrieben,​ wie die Blockbelegung zusätzlich mit einem Bild der Lok angezeigt werden kann.
 +
 +Die Steuerung erfolgt über Aktionen, die durch Ereignisse bzw. Zustände eines Blocks ausgelöst werden.
 +
 +Die Anzeige erfolgt in einem [[text-de|Text-Objekt]],​ das im Gleisplan z.B. direkt über oder unter dem Block-Symbol angeordnet wird. 
 +
 +Das Beispiel verwendet den Block **b1**, unter dem ein Text-Feld **b1 Textfeld** gleicher Größe (4x1 Rasterfelder) positioniert ist. 
 +\\
 +\\
 +==== Anpassen der Bildgröße ====
 +Die regulären Lokbilder sind für ein Text-Feld mit einer Höhe von 1 Rasterfeld zu groß.
 +
 +Deshalb werden mit einem Bildbearbeitungs-Programm von den Lokbildern Daumennagel(//​thumbnail//​)-Kopien mit 32 Pixel Höhe erzeugt.
 +
 +Damit diese Bilder im gleichen Unter-Ordner //images// gespeichert werden können, wird dem Original-Dateinamen der Prefix **th-** vorangestellt.
 +
 +__Beispiel:​__ **br89.png** mit 160x80 Pixel wird mit 64x32 Pixel als **th-br89.png** gespeichert.\\
 +
 +Hat das Text-Feld die Größe 4x1 Rasterfelder (wie das Blocksymbol),​ kann das reduzierte Lokbild bis 128x32 Pixel haben.
 +
 +Damit die Bilder zentriert erscheinen, sollte eine zu geringe Bildbreite bei der Bearbeitung an den Seitenrändern mit Freiflächen bis zur Textfeldbreite aufgefüllt werden.
 +
 +//(Das ist hier bei dem gezeigten Beispiel noch nicht berücksichtigt.)//​
 +\\
 +\\
 +==== Einrichtung der Aktionen ====
 +Der [[actions-de|Dialog zur Einrichtung der Aktionen]] wird über das Menü //​Tabellen->​Aktionen...//​ aufgerufen.
 +
 +{{:​actions:​lcimg-action-def.png}}
 +
 +Die Aktion **b1 Lokbild** ist vom Typ **text**, mit der Kennung des Text-Feldes **b1 Textfeld**, dem Befehl **update** und dem Parameter **th-%lcimg%**.
 +
 +In den Eigenschaften jeder Lok ist der Name einer Bilddatei definiert. Die Variable **%lcimg%** enthält diesen Namen von der Lok, für die der Block die Aktion auslöst.
 +
 +Damit das oben beschriebene reduzierte Lokbild verwendet wird, muss natürlich auch hier der Prefix **th-** vorangestellt werden.
 +
 +Zu jeder Aktion, die ein Lokbild einfügt, wird auch eine weitere Aktion benötigt, die das Bild aus dem Text-Feld entfernt, wenn die Lok den Block verlassen hat.
 +
 +Diese zweite Aktion **b1 Lokbild frei** ist wie die erste definiert, nur das Parameter-Feld bleibt leer.
 +
 +:!: //Weil das zugeordnete Textfeld statisch ist, müssen für __jedes__ Textfeld, dass ein Lokbild zeigen soll, jeweils __beide__ Aktionen eingerichtet werden.//
 +\\
 +\\
 +==== Einrichtung der Aktionssteuerung des Blocks ====
 +In den [[block-gen-de|Eigenschaften des Blocks]] **b1** wird über die Schaltfläche "​Actions..."​ der [[actionctrl-de|Dialog zur Aktionssteuerung]] aufgerufen.
 +
 +{{:​actions:​lcimg-action-ctrl.png}}
 +
 +Den beiden zuvor definierten Aktionen werden hier die auslösenden Ereignisse bzw. Zustände zugewiesen  ​
 +
 +Die Aktion **b1 Lokbild** wird mit dem Status **enter** eingetragen.
 +
 +Die Aktion **b1 Lokbild frei** wird mit dem Status **free** eingetragen.
 +\\
 +\\
 +==== Funktion der Aktionen ==== 
 +Beim **enter**-Ereignis schreibt Aktion **b1 Lokbild** den Dateinamen des reduzierten Lokbildes in das Textfeld.
 +
 +Dieser Text wird als Name einer Bilddatei erkannt und das Bild wird angezeigt.
 +
 +Erhält der Block den Status **free** (die Lok ist im Folgeblock angekommen),​ schreibt Aktion **b1 Lokbild frei** das leere Parameterfeld in das Textfeld, löscht also vorherige Einträge. ​
 +
 +Ein zuvor angezeigtes Bild oder ein Text verschwindet.
 +\\
 +\\
 +^So sieht es aus^
 +|{{:​actions:​lcimg.gif}}|
 +Hier hat die "​89er"​ gerade den Rückmelder **r1** aktiviert, der das **enter**-Ereignis für Block **b1** erzeugt und damit die Aktion **b1 Lokbild** auslöst.
 +
 +Diese Aktion fügt den mit dem Parameter übergebenen Text **th-br89.png** in das 4x1 Rasterfelder breite Text-Feld unter dem Block ein.
 +
 +Dieser Text wird als Name einer Bilddatei erkannt und das Bild wird angezeigt.
 +\\
 +\\
 +==== Hinweis ====
 +Das Potenzial ist noch nicht ausgeschöpft.
 +
 +Es können weitere Aktionen definiert werden, die mit Aktionssteuerungen aufgerufen werden, in denen zusätzliche Bedingungen enthalten sind. 
 +
 +Damit können gespiegelte oder anders bearbeitete Bilder mit jeweils anderen Prefixen, z.B. die Fahrrichtungen,​ Platzierungen und andere Situationen darstellen.
 +
 +Als kleine Spielerei könnte die Aktion **b1 Lokbild frei** anstelle des leeren Text-Feldes,​ die Bilddatei //"​Wartende_Preiserlein_auf_dem_Bahnsteig.png"//​ darstellen lassen.
 +
 +\\
action-example-lcimg-de.txt · Last modified: 2018/11/12 08:56 (external edit)