In der Entwicklungsphase ist die frühzeitige Erkennung von Syntaxfehlern wichtig, um qualitativ hochwertigen Code zu erstellen. Die Codeprüfung in Echtzeit ist eine wertvolle Hilfe für Entwickler. Sie verbessert nicht nur die Effizienz, sondern auch die Qualität und steigert die Produktivität. Durch die sofortige Korrektur von Fehlern können Sie sich auf die funktionale Entwicklung Ihrer Anwendung konzentrieren, anstatt sich mit lästigen Fehlern zu beschäftigen, die während der Kompilierung auftreten.
Wir freuen uns, Ihnen mit 4D 20 R8 zwei neue Funktionen vorstellen zu können, die Ihre Arbeitsweise verändern werden.
- Die erste ist die Möglichkeit, eine Klasse mit einem Formular zu verknüpfen, was eine Syntaxprüfung mit Ausdrücken wie Form.myProperty ermöglicht.
- Die zweite ist eine Echtzeitprüfung von Ausdrücken in der Eigenschaftsliste, wobei eine Beschreibung des Fehlers oder der Warnung angezeigt wird.
Assoziieren einer Klasse mit einem Formular
Sie können jetzt eine Benutzerklasse mit einem Formular verknüpfen, indem Sie das neue Attribut„Formularklasse“ verwenden. Mit diesem Attribut können Sie das Objekt eingeben, das vom Form Befehl zurückgegebene Objekt einzugeben, was die Verwendung von Ausdrücken wie Form.myProperty ermöglicht. Die Benutzerklasse kann aus dem Host-Projekt oder einer Komponente stammen.
Automatische Instanziierung zur Laufzeit
Wenn Sie ein Formular öffnen, können Sie ein Objekt an den DIALOG Befehl übergeben. Auf dieses Objekt kann dann innerhalb des Formulars über den Befehl Form zugegriffen werden.
Das Objekt, das an den Befehl DIALOG Befehl übergebene Objekt kann eine Instanz einer Klasse sein. So können Sie es machen:
var $h : Integer
var $o : cs.Person
$o :=cs.Person.new()
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass"; $o)
Ab Version 4D 20 R8, wenn Sie die Eigenschaft„Form class“ im Formular definieren, ohne ein Objekt an den Befehl DIALOG Befehl übergeben, übernimmt 4D automatisch die Instanziierung. Schreiben Sie einfach:
var $h : Integer
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass")
Der Befehl Form Befehl gibt ein Objekt zurück, das eine Instanz der Klasse „Person“ ist. Sie können dies im Formular mit dem OB Instance of Befehl.
$n:=OB Instance of(Form; cs.Person)
Nun können Sie eine Klassenfunktion aufrufen, indem Sie einfach schreiben: „Form.message()“.
Vorteile für den Code-Editor
Funktion zur automatischen Vervollständigung
Der Befehl Form Befehl profitiert von der Autovervollständigung im Code-Editor. Wenn Sie „Form.“ eingeben, schlägt 4D alle Eigenschaften und Funktionen vor, die in der entsprechenden Klasse deklariert sind. Sie müssen nicht mehr zwei Buchstaben in einem Eigenschaftsnamen vertauschen oder einen Kleinbuchstaben anstelle eines Großbuchstabens in einem Funktionsnamen verwenden.
Zum Beispiel mit unserer einfachen Klasse „Person“, die wie folgt definiert ist:
property firstname : Text
property lastname : Text
property email : Text
Class constructor
This .firstname:=""
This .lastname:=""
This .email:=""
Function get fullname () : Text
return This .firstname+""+This.lastname
Bei Verwendung des Form Befehls innerhalb einer Formularmethode bietet Ihnen der Code-Editor eine genaue Liste zur Vervollständigung Ihres Codes:
Funktion „Syntax prüfen
Wenn Sie Ausdrücke vom Typ „Form.myProperty“ in der Formularmethode oder in den Methoden von Formularobjekten verwenden, profitieren Sie von der Leistungsfähigkeit der Syntaxprüfung.
Nehmen wir das Beispiel der vorherigen Klasse. Im Code der Formularmethode werden wir:
- zwingen wir eine ganze Zahl in ein Textattribut,
- verwenden wir ein unbekanntes Attribut,
- weisen wir eine ganze Zahl einem berechneten Attribut vom Typ Text zu.
In der folgenden Abbildung können Sie sehen, dass der Code-Editor effektiv Fehler oder Warnungen identifiziert hat.
Vorteile für den Formular-Editor
Syntaxprüfung in die Eigenschaftsliste integriert
Die Syntaxprüfung ist nicht mehr auf den Code-Editor beschränkt. Diese Funktionalität wird auf Ausdrücke in der Eigenschaftsliste (z. B.„Datenquelle“ oder„Meta-Info-Ausdruck„) ausgeweitet. Als Ergebnis erhalten Sie sofortige Benachrichtigungen über Fehler und Warnungen.
Sie brauchen nicht auf die Kompilierungsergebnisse zu warten, um Fehler zu entdecken. Dank dieser Funktion werden Sie bereits in der Bearbeitungsphase informiert.
Kompilierung
Wenn Sie die neuen Fehler nicht direkt behoben haben, werden sie natürlich trotzdem während des Kompilierungsprozesses vom Compiler erkannt.
Compiler-Dialog
Alle Warnungen und Fehler werden im Kompilierfenster angezeigt. Wenn Sie auf einen Ausdruck eines Formularobjekts doppelklicken, wird das entsprechende Formular geöffnet und das problematische Objekt und seine Eigenschaft in der Eigenschaftsliste hervorgehoben.
Befehl Projekt kompilieren
Im Falle eines Kompilierungsfehlers gibt der Compile project Befehl ein Objekt mit Warnungen und Fehlern zurück. Der Befehl wurde auch erweitert, um Warnungen oder Fehler zurückzugeben, die in den Form-Objekt-Ausdrücken entdeckt wurden.
{ "Erfolg":false, "errors":[{ "message": "Undeclared property 'firstName' used. (550.26)", "isError":false, "code":{ "type": "formObjectExpression", "formName": "Person", "objectName": "EingabeVorname", "propertyName": "dataSource", "file":"[object File]" } }] }
Was kommt als Nächstes?
Diese neuen Funktionen werden das Schreiben von Code einfacher und effizienter machen.
Zögern Sie nicht, uns Ihre Erfahrungen mit diesen Verbesserungen mitzuteilen. Ihre Kommentare sind für uns von unschätzbarem Wert, denn sie helfen uns zu verstehen, wie diese Werkzeuge Ihnen im Alltag helfen, und sie besser an Ihre Bedürfnisse anzupassen.