Variablen deklarieren


Eine unangenehme Besonderheit bei der AddOn-Programmierung ist, dass bei jedem Aufruf eines Events die Variablen grundsätzlich auf den Wert Null gesetzt werden, soll heißen definiert man in einem Event z.B. Test und belegt diese mit 1, so ist die gleiche Variable in einem anderen Event immer Null.

Damit das nicht passiert bzw. man mit der gleichen Variablen in einem anderen Event arbeiten kann, gibt es die AddOn-Befehle:

- cpSetIntegerVar('Name',Wert);

- cpSetFloatVar('Name',Wert);

- cpGetIntegerVar('Name');

- cpGetFloatVar('Name');

 

Integer: ganze natürliche Zahlen (inkl. Vorzeichen), z.b. 1, 2, -1, 0,5.....

 

Float: Gleitkommazahl (inkl. Vorzeichen) 1,2345, -3,456 ...

 

In unserem Beispiel muss man jetzt wie folgt vorgehen:


....Event StartZiel

var

Test : integer;

begin

  Test:=1;

  cpSetIntergerVar('Test',1);

end;


....Event TankenEinfahrt

var

Test : integer;

begin

  Test:= cpGetIntegerVar('Test');

end;


Jetzt hat man erfolgreich den Variablenwert von Test in das andere Event "gerettet".......

 

und dann gleich noch einen Tip: man kann sich die Variablen-Namen auch zusammenbasteln. Oft benötigt man ja für jeden Fahrer und/oder Fahrzeug einen Variablenwert (z.B. StatusReifen).

 

Beispiel:

Es soll der Reifenzustand pro Fahrer abgespeichert werden bei einem Boxenstop:

Zustand 1 = Slick

Zustand 2 = Regenreifen

Wird bei also bei einem Boxenstop der Reifen gewechselt und man möchte den Zustand abspeichern, so sieht die Varaible wie folgt aus:

cpSetIntegerVar('StatusReifen'+inttostr(Cockpit.SlotID),1); // 1 = Slick

inttostr = Umwandlung einer Integerzahl in einen String, durch + wird der vorherige String (in diesem Fall StatusReifen) um den Inhalt von Cockpit.SlotID erweitert, also in StatusReifen1

Cockpit.SlotID = beinhaltet die ID, welche den Event (also Boxenstop) ausgelöst hat

--> Die Variable heißt dann jetzt im Klartext: StatusReifen1 (für Fahrer-ID 1) mit Inhalt 1

 

 

 

 

 

Nach oben