Pendant la phase de développement, la détection précoce des erreurs de syntaxe est importante pour produire un code de qualité. La vérification du code en temps réel est une aide précieuse pour les développeurs. Il permet non seulement d’améliorer l’efficacité, mais aussi la qualité et la productivité. En corrigeant les erreurs immédiatement, vous pouvez vous concentrer sur le développement fonctionnel de votre application, plutôt que sur les bogues gênants qui apparaissent lors de la compilation.
Avec 4D 20 R8, nous sommes ravis d’introduire deux nouvelles fonctionnalités qui transformeront votre façon de travailler.
- La première est la possibilité d’associer une classe à un formulaire, ce qui permet de vérifier la syntaxe d’expressions telles que Form.myProperty.
- La seconde est une vérification en temps réel des expressions dans la liste des propriétés, avec une description de l’erreur ou de l’avertissement affiché.
Associer une classe à un formulaire
Il est désormais possible d’associer une classe d’utilisateurs à un formulaire grâce au nouvel attribut « Form class« . Cet attribut permet de typer l’objet retourné par la commande Form ce qui permet d’utiliser des expressions telles que Form.myProperty. La classe utilisateur peut provenir du projet hôte ou d’un composant.
Instanciation automatique au moment de l’exécution
Lors de l’ouverture d’un formulaire, vous pouvez passer un objet à la commande DIALOG un objet. Cet objet devient alors accessible dans le formulaire via la commande Form.
L’objet passé à la commande DIALOG peut être une instance de classe. Voici comment procéder :
var $h : Integer
var $o : cs.Person
$o:=cs.Person.new()
$h:=Open form window("FormWithClass")
DIALOG ("FormWithClass" ; $o)
A partir de la version 4D 20 R8, si vous définissez la propriété « Form class » dans le formulaire sans passer d’objet à la commande DIALOG, 4D gère automatiquement l’instanciation. Il suffit d’écrire :
var $h : Integer
$h:=Open form window("FormWithClass")
DIALOG ("FormWithClass")
La commande Form renvoie un objet qui est une instance de la classe « Personne ». Vous pouvez le vérifier dans le formulaire avec la commande OB Instance of.
$n:=OB Instance of(Form; cs.Person)
Maintenant, vous pouvez appeler une fonction de classe en écrivant simplement : « Form.message() ».
Avantages pour l’éditeur de code
Fonctionnalité d’autocomplétion
La commande Form bénéficie de l’auto-complétion dans l’éditeur de code. En tapant « Form. », 4D vous proposera toutes les propriétés et fonctions déclarées dans la classe associée. Plus de risque d’inverser deux lettres dans le nom d’une propriété ou d’utiliser une minuscule au lieu d’une majuscule dans le nom d’une fonction.
Par exemple, avec notre simple classe « Personne » définie comme suit :
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
Lorsque l’on utilise la commande Form dans une méthode de formulaire, l’éditeur de code vous propose une liste précise pour compléter votre code :
Vérifier la syntaxe
Lorsque vous utilisez des expressions du type « Form.myProperty » dans la méthode de formulaire, ou dans les méthodes des objets de formulaire, vous bénéficiez de la puissance du vérificateur de syntaxe.
Reprenons l’exemple de la classe précédente. Dans le code de la méthode formulaire, nous :
- forçons un entier dans un attribut texte,
- utilisons un attribut inconnu,
- assignons un entier à un attribut calculé de type texte.
Dans l’image suivante, vous pouvez voir que l’éditeur de code a effectivement identifié des erreurs ou des avertissements.
Avantages pour l’éditeur de formulaires
Contrôle syntaxique intégré à la liste des propriétés
Le contrôle syntaxique n’est plus limité à l’éditeur de code. Cette fonctionnalité est étendue aux expressions de la liste des propriétés (telles que« Datasource » ou« Meta info expression« ). Ainsi, vous recevrez immédiatement des notifications d’erreurs et d’avertissements.
Il n’est pas nécessaire d’attendre les résultats de la compilation pour découvrir les erreurs. Grâce à cette fonctionnalité, vous serez informé dès la phase d’édition.
Compilation
Bien entendu, si vous n’avez pas résolu les nouvelles erreurs directement, le compilateur les détectera lors du processus de compilation.
Dialogue du compilateur
Tous les avertissements et erreurs seront affichés dans la fenêtre de compilation. Si vous double-cliquez sur l’expression d’un objet de formulaire, le formulaire correspondant s’ouvrira, mettant en évidence l’objet problématique et sa propriété dans la liste des propriétés.
Commande Compile projet
En cas d’échec de la compilation, la commande Compile project renvoie un objet contenant des avertissements et des erreurs. La commande a également été étendue pour renvoyer les avertissements ou les erreurs détectés dans les expressions d’objet de formulaire.
{ "success":false, "errors" :[{ "message" : "Propriété non déclarée 'firstName' utilisée. (550.26)", "isError":false, "code":{ "type" : "formObjectExpression", "formName" : "Personne", "objectName" : "InputFirstname", "propertyName" : "dataSource", "file" :"[objet File]" } }] }
Prochaines étapes
Ces nouvelles fonctionnalités rendront l’écriture de code plus facile et plus efficace.
N’hésitez pas à nous faire part de vos expériences avec ces améliorations. Vos commentaires sont précieux pour nous aider à comprendre comment ces outils vous aident au quotidien et à mieux les adapter à vos besoins.