Comment détecter les changements d'un champs d'une fenêtre
Utilisation d'une classe Xojo pour détecter les changements d'un contrôle.
Les fenêtres d'une application Windows sont peuplées de contrôles qui permettent notamment la saisi dans des zones de texte, ou encore la sélection d'une ou plusieurs options à partir de cases à cocher, de listes d'options ou de boutons radio.
Lorsque le texte d'une zone de texte change ou qu'une option d'un contrôle de sélection est modifiée, le gestionnaire d'événements est appelé.
On peut alors insérer une méthode à appeler lorsque que le gestionnaire d'évènements est invoqué par un changement à un contrôle. Par exemple, une telle méthode pourrait faire la mise à jour d'un enregistrement avec les nouvelles valeurs saisies.
La définition d'une classe s'avère utile dans ce cas. Regardons la classe définie ici-bas:
La classe zTextField est construite à partir de la classe TextField de Xojo. On y définit TextChange comme événement délégué à la nouvelle classe. Puis, on définit la méthode qui est invoqué par le déclenchement de l'événement TextChange.
// TextChange Event Handler
maFenetre.mUpdate = True
TextChange
La méthode ci-haute assigne la valeur True à une variable booléenne locale mUpdate. Ainsi, si toutes les zones de texte et les contrôles de sélection d'une fenêtre sont initiés par un constructeur tel que zTextField, on peut alors détecter les changements sur tous les champs de saisie d'une fenêtre et en faire le traitement par la méthode suivante:
If mUpdate Then
// Méthode pour faire le traitement des changements
EndIf
Xojo, comme tant d'autres langages de programmation orientée objet organise la conception d'un logiciel autour d'objets plutôt que de fonctions et de logique. Un objet peut être défini comme un champ de données ayant des attributs et un comportement uniques.