Problem im Main-Script

  • Ich habe in den Letzten Tagen mal einen Anfang eines Fahrzeug Scripts Angefangen.

    Nun habe ich seit ich Eine Tueren.pas Datei hinzugefügt, welche noch keinerlei "Richtige" Einträge enthält und auf einmal Bekomme Ich den Fehler Identifier expected in Zeile 86( bezieungsweise die Erste procedure nach den Public Buttons)! Voher funktionierte noch alles Tadellos und Ist meines Erachtens auch nicht Falsch.

    Main Script :


  • Vielen Dank Marcel,

    das geht jetzt.

    Jetzt soll meine völlig leere Türen Datei in Zeile 18 Fehler haben (Identifier expected.

  • Fahrschalter:


    Cockpit:

    und eben die Tech und Standart Elemente von Marcel

  • procedure Fahrschalter_SimStep

    Also wenn ich mich nicht verzählt habe fehlt da ein "end"


    Was nimmst du denn für einen Editor. Macht der keine Syntaxhervorhebung, mit der man solche Probleme sieht?


    Die Kombination "then end" fühlt sich auch etwas ungünstig an. Wenn du da Platzhalter setzen willst, dann kommt mir "then begin end" besser vor.

  • Notepad ist erst mal keine schlechte Wahl, den benutze ich auch für etliche Dinge. Bei Pascal-Syntax sieht es etwas gewöhnungsbedürftig aus, weil beim Einklappen von Codeblöcken der Block mit dem "end" verschwindet, aber das "begin" mit einem Strich drunter stehenbleibt.

    Aber die reine Darstellung hilft dir nicht weiter.


    z.B. kommt dein scheinbarer Fehler aus der Tueren.pas in Wahrheit aus der Fahrschalter.pas. Du hast wie oben gesagt ein "end" zuwenig. Der Compiler merkt das aber erst weiter unten im Code. Durch die includes sieht der compiler eigentlich nur eine einzige - ziemlich lange - Datei und mault entsprechend genau da wo er den Fehler sieht, auch wenn die Ursache in einer ganz anderen Datei ist.


    Wenn man das behebt knallt es in der Tueren.pas dahinter gleich wieder, diesmal weil du globale Variablen in mehreren Dateien parallel deklariert hast.


    Du hast also einiges zu überarbeiten.

    Auch solltest du dir den grundsätzlichen Aufbau von Pascal-Programmen mal in Ruhe ansehen und dir die Logik dahinter verinnerlichen. Sonst fischst du im Trüben. Besser mal mit kleinen übersichtlichen Skripten anfangen und langsam ausbauen. Natürlich lernt man am lebenden Objekt leichter, aber wenn das Ding zu groß ist verschluckt man sich.

  • Vielen Dank für die Tipps.

    Ich habe mittlerweile alle Errors beseitigt.

    Das mit dem Aufbau von Pascal werde, und muss ich mir wirklich noch mal ansehen, da ich einiges doch noch nicht so ganz verstanden habe :)

  • Mach vielleicht mal ein paar Gehversuche mit dem Lazarus-Projekt: https://www.lazarus-ide.org/


    Die Lotus Script-engine scheint für mich sehr Delphi-affin zu sein. Delphi ist der Ururenkel von Turbo-Pascal und mit Lazarus bist du da ziemlich dicht dran, ohne Geld reinstecken zu müssen.


    Versuch zuerst einfach mal, ein Gefühl für die Sprachsyntax an sich zu gewinnen. Damit wirst du Anfängerfehler wie fehlende Strichpunkte los, oder schlechte Variablennamen. Dann versuch die prozedurale Programmierung zu verstehen, wie hängen Funktionsaufrufe zusammen, was verschachtelt man wie am besten. Dann kommen die Objekte und dann hast du das Handwerkszeug.


    Als ich noch jung war, war Pascal DAS akademische Werkzeug zum Programmieren-lernen. Inzwischen ist das natürlich ein alter Hut. Aber ein sehr bequemer. :-)

  • Da gibt es leider keine Objekte...

    Mir ging es hier um das grundlegende Verständnis der Pascal-Sprache. So wie ich bisher das Skriptsystem erforscht habe, gibt es Typendefinitionen Txxxx, die auf den ersten Blick (da kam ich auf den Holzweg) den Objektdefinitionen von Borland Pascal (meine Zeit) und (vermutlich) Delphi ähneln. Da bin ich aber raus, mein letztes Delphi war damals Delphi 2 und damit hab ich nicht viel gemacht.

    Aber nachdem der Kollege Bruhcraft mit typischen Programmier-Anfänger-Fehlern konfrontiert war (Variablenbezeichner, unpaarige Begin/Ends, der beliebte Strichpunkt) wollte ich ihm einfach einen Weg zeigen, erst mal das Prinzip zu verstehen. Hat man Pascal verstanden, wird man das Skriptsystem verstehen und als Bonus viele andere Programmiersprachen dazu.

    Ich bin eben gerade selbst beim Versuch, das Skript-System zu verstehen und experimentiere mit Lazarus, einfach um eine Umgebung zu haben, in der ich typische Schlampereien vermeide um nicht jeder Fehlermeldung beim Import im Content-Tool einzeln hinterherlaufen zu müssen.

    Wie schon bei Blender - wo ich immer noch bei einigen Themen durchhänge - geht es ja auch hier darum, eine sinnvolle Vorgehensweise zu finden.

    Eine Art Skript-IDE im Content-Tool einzubauen wäre sicher übertrieben, also erscheint mir der Lazarus-Weg im Moment am besten.

  • Ich fand Deinen Beitrag auch sehr gut, ich wollte das nur ergänzen, für alle Fälle. Ebenso, wie ich hier nochmal ergänzen möchte: Die Konvention "T{xxx}" verwendet man im "echten" Delphi in der Tat für Objekt-Klassendefinitionen, aber auch für ganz normale Typen (numerischen oder Records) und in diesem Sinne werden sie auch im Script verwendet.

  • Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

    Die letzte Antwort auf dieses Thema liegt mehr als 60 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstellen Sie ggf. ein neues Thema.

    Maximale Anzahl an Dateianhängen: 5
    Maximale Dateigröße: 500 kB
    Erlaubte Dateiendungen: bmp, cfg, ini, jpeg, jpg, lct, ldl, llg, lob, log, lpmtl, lptmt, ltx, pas, pdf, png, railtrack, rar, txt, veh, wav