DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Options et manipulations
  • Présentation
  • Création d'une propriété personnalisée
  • Comment le faire ?
  • Exemple
  • Astuce
  • Droits d'accès à une propriété personnalisée
  • Passage de propriétés personnalisées en paramètre à une fonction ou procédure WLangage
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Une propriété personnalisée est un élément de code possédant deux événements:
  • un événement de récupération de la valeur,
  • un événement d'affectation de la valeur.
Une propriété personnalisée peut être utilisée comme une variable ou un membre (récupération directe de la valeur, affectation par le symbole '=', ...). Lors de l'exécution :
  • Toute opération nécessitant la lecture de la propriété exécute l'événement de récupération de la valeur. Cet événement doit renvoyer une valeur.
  • Toute opération nécessitant l'écriture de la propriété exécute l'événement d'affectation de la valeur. Cet événement doit traiter un paramètre.
Il est possible de créer des propriétés personnalisées sur les éléments suivants :
  • les modèles de champs.
  • les modèles de fenêtres.
  • les fenêtres.
  • les fenêtres internes.
  • les pages.
  • les pages internes.
  • les modèles de pages.
Création d'une propriété personnalisée

Comment le faire ?

Pour créer une propriété personnalisée :
  1. Affichez si nécessaire le volet "Explorateur de projet" (sous le volet "Accueil", dans le groupe "Environnement", déroulez "Volets" et sélectionnez "Volets" puis "Explorateur de projet").
  2. Dans le volet "Explorateur de projet", affichez l'élément sur lequel vous souhaitez ajouter une propriété personnalisée.
  3. Sélectionnez l'élément voulu. Affichez le menu contextuel de l'élément et sélectionnez l'option "Nouvelle propriété".
  4. Saisissez le nom de la propriété dans la fenêtre qui s'affiche et validez.
  5. L'éditeur de code affiche les événements liés à la propriété :
    • Evénement "Récupération de la propriété". Cet événement doit contenir le mot-clé "RENVOYER" (ou le mot-clé "RETOUR =") permettant de renvoyer la valeur de la propriété.
    • Evénement "Affectation de la propriété". Cet événement permet de fournir une valeur à la propriété. Cette valeur est passée en paramètre. Cet événement ne doit pas renvoyer de résultat.
  6. Saisissez le code de votre propriété.
  7. Saisissez le code d'appel à la propriété personnalisée dans l'élément voulu.

Exemple

  1. Création d'une propriété personnalisée pour un modèle de champs qui renvoie la durée :
    PROCÉDURE PUBLIQUE Durée()
    RENVOYER DateDifférence(SAI_Date_début, SAI_Date_fin)
  2. L'appel à cette propriété du modèle sera effectué dans le code de la fenêtre :
    Info("Le nombre de jours sélectionnés est : " + CMOD_Durée.Durée)

Astuce

Il est possible de surcharger une propriété WLangage existante. Dans ce cas, le code de la propriété personnalisée sera exécutée.
Dans le code de la propriété personnalisé, il est possible d'accéder à la propriété originale en utilisant la syntaxe :
MoiMême.<Propriété originale>
Exemple : Affectation de la propriété Bulle :
PROCÉDURE Bulle(Valeur)
 
MoiMême.Bulle = "Nombre de jours : " + Valeur
Droits d'accès à une propriété personnalisée
Attention : La propriété personnalisée est accessible en lecture et/ou en écriture en fonction des événements associés qui ont été définis :
  • Si l'événement "Récupération de la propriété" est vide, la lecture de la propriété est interdite. Si une lecture est effectuée, une erreur de compilation est affichée sous l'éditeur de code. Une erreur se produira également en exécution.
  • Si l'événement "Affectation de la propriété" est vide, l'écriture de la propriété est interdite. Si une écriture est réalisée, une erreur de compilation est affichée sous l'éditeur de code. Une erreur se produira également en exécution.
Passage de propriétés personnalisées en paramètre à une fonction ou procédure WLangage
Les différents cas sont les suivants.
Si le paramètre est passé par référence (cas par défaut) et non typé :
  • la propriété personnalisée est passée en paramètre.
  • aucun événement associé à la propriété personnalisée n'est exécuté au moment de l'appel.
  • la lecture du paramètre formel exécute l'événement "Récupération de la propriété".
  • l'écriture du paramètre formel exécute l'événement "Affectation de la propriété".
Si le paramètre est passé par valeur (LOCAL) et non typé :
  • la valeur de la propriété personnalisée est passée en paramètre.
  • le code de récupération de la valeur est exécuté au moment de l'appel.
  • la lecture du paramètre formel accède à la valeur passée au moment de l'appel et n'exécute pas l'événement "Récupération de la propriété".
  • l'écriture du paramètre formel modifie la valeur passée au moment de l'appel et n'exécute pas l'événement "Affectation de la propriété".
Si le paramètre est passé par référence (cas par défaut) et typé :
  • la propriété personnalisée est passée en paramètre.
  • le type de la propriété doit être correct. Dans le cas contraire, une erreur WLangage est affichée.
  • aucun événement associé à la propriété n'est exécuté au moment de l'appel.
  • la lecture du paramètre formel exécute l'événement "Récupération de la propriété".
  • l'écriture du paramètre formel exécute l'événement "Affectation de la propriété".
Si le paramètre est passé par valeur (LOCAL) et typé :
  • la valeur de la propriété personnalisée est passée en paramètre.
  • l'événement "Récupération de la propriété" est exécuté au moment de l'appel.
  • si nécessaire, la valeur de la propriété est convertie dans le type du paramètre.
  • la lecture du paramètre formel accède à la valeur passée au moment de l'appel et n'exécute pas l'événement "Récupération de la propriété".
  • l'écriture du paramètre formel modifie la valeur passée au moment de l'appel et n'exécute pas l'événement "Affectation de la propriété".
Version minimum requise
  • Version 25
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 19/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale