Jump to content

Empfohlene Beiträge

Geschrieben

Hallo EV-Spezialisten:

Ich habe ein kleines Problem angehängt, bei dem verschiedenste indirekte Zugriffe schön funktionieren, nur einer nicht (test2). Was mache ich denn da falsch? Oder geht ausgerechnet der Fall nicht? Das wäre leider der, den ich am dringensten brauche. Es wird hier mit Countdowns gearbeitet, die einem Objekt zugeordnet sind. Dass es generell geht, zeigen drei der vier Tests. Nur eben der Eine will nicht. Stimmt da was mit der Schreibweise nicht? In den anderen Fällen geht's doch auch so... Bin ratlos.

Grüße und Dank für jede Hilfe
   Andy

ovtest.mbp

Geschrieben

Moin Karl,
darum geht's ja - voller Name soll nicht. In den anderen Fällen funktioniert (objekt), wie's ja auch in der EV steht. Nur in genau diesem Fall nicht. Aber genau dieser Ausdruck wäre wichtig, um Dinge so zu parametrisieren, dass man Dinge nur einmal schreiben muß, schnell kopieren kann und nur den Parameter ändert. Mein Bushaltestellenbeispiel hat gezeigt, wie mit recht wenig Aufwand eine ganze Route mit Bushaltestellen versorgt werden kann, und ich erinnere mich, dass Du mir mal gesagt hast, wie viele Gründe es für eine Lok gibt, die Geschwindigkeit zu ändern. Das spielt hier mit rein. Ich prognostiziere mal, dass Bahnland bestätigen wird, dass ich da mal wieder eine Lücke im System gefunden habe.

Grüße
  Andy
 

Geschrieben

Ich will gerade noch einmal einen Vorschlag hier einbringen, wenn der (vielleicht eben noch in dieser Version) unterzubringen wäre, dann wäre das für die EV ein starker Gewinn. Nehmen wir an, ich hätte in den Objektvariablen eine Variable countdown1 untergebracht, Dieser Countdown läuft jetzt ab. In den Ereignissen findet die EV nun das Ereignis 'countdown1 läuft ab'.
Jetzt findet sie keinen globalen 'countdown1', schnappt sich deshalb aus der Liste der aufgetretenen Ereignisse den ersten Objekt-Countdown, bei dem's mit dem Namen paßt und liefert idealerweise in dem noch ungenutzten _Trigger2 den Objektnamen zurück. Dann könnte man hervorragend 'im Objekt' weiterarbeiten. Jetzt muß sie natürlich noch die anderen Ereignisse abklappern, ob noch ein anderes Objekt zugeschlagen hat. Das wäre durchaus eine Sonderbehandlung im Vergleich zu den anderen Ereignissen. Aber, diskutierbar sollte das in jedem Fall sein.

Oh, Antwort kommt rein, die ich erst lesen, wenn das hier raus ist.

Geschrieben

Hallo Andy,

in deinem OVtest  sprichst du, unter -Start/Aktionen-, 4 Count down starten mit : gleis, count down 1......4 an.

in test2 Ereignis: Count down läuft ab benutzt du den Namen : $(objekt).Count down 2. Diesen Timer konnte ich

allerdings in der Auflistung nicht finden, deshalb bin ich von einem "Schreibfehler" ausgegangen.

Womöglich steh ich auch auf dem Schlauch.

Gruß

Karl

Geschrieben

Hallo Karl,

das ist eben die indirekte Programmierung, die ist in der Wiki auch so beschrieben. Du findest noch andere (objekt) Anweisungen in den Tests, die alle funktionieren. Ob da jetzt nenau in diesem Fall das $ davor gehört, wissen die Götter. Mal braucht er's, mal nicht unbedingt. Das ist bei mir jetzt auch ein wenig 'learning by doing'. Ich habe alle Kombinationen durchprobiert. Nada!

In der Liste wirst Du etwas Indirektes nie finden. Aber er zeigt, dass alle Countdowns leben. Es scheint so, als wäre die Anwendung eines Countdowns auf einer Objektvariablen nicht unbedingt im Sinne des Erfinders. Er macht zwar einiges mit, aber eben nicht alles. Ich teste mal, wie er auf das Setzen einer Objektvariablen reagiert. Vielleicht mag er das ja. Ich sitze aber gerade an meinem kleinen Notebook, da geht Forum, aber kein MBS, weil's die minimale Bildschirmauflösung nicht bringt.

Gruß
   Andy

Geschrieben

So, Test gemacht. und das dürfte die 'Lücke' bestätigen. Beim Ereignis 'Variable wird gesetzt' ist der Variablenname nämlich gar nicht editierbar, sondern muß aus der Selektionsliste gewählt werden, und damit ist da der indirekte Zugriff gar nicht erst möglich. Dann gehe ich davon aus, dass beim abgelaufenen Countdown dies eigentlich auch der Fall sein sollte, das Eingabefeld ist halt nur nicht als 'read-only' markiert. Also: Im Ereignis gibt es schlicht und einfach keinen indirekten Zugriff, nur in der Bedingung und der Aktion. Abhaken, erledigt, Papierkorb, umdenken.

Sorry für die Aufregung
   Andy

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...