Bonjour à tous,
je boucle sur un truc. Je vous explique. J'ai un contrôle TEdit. Je voudrais coupler le contenu de ce contrôle à un champs d'un fichier XML (plus une série de petits calculs). Mais je ne voudrais pas que chaque modification du champs génère une modif dans le fichier XML (genre à chaque caractère entré) et donc les calculs qui vont avec, mais plutôt lorsque le TEdit perd le focus par exemple.
Du coup, j'ai regardé Onchange qui me parait pas mal. Mais voila dixit Embarcadero :
Ce qui me gêne, 'est que la propriété Text est modifiée à chaque Onchange. Du coup je vais voir Modified et je trouve :Ecrivez un gestionnaire d'événement OnChange pour effectuer des actions spécifiques quand le texte du contrôle de saisie a peut-être changé. Utilisez la propriété Modified pour savoir si une modification a réellement eu lieu. La propriété Text du contrôle de saisie est déjà actualisée pour refléter les modifications. Cet événement offre la première opportunité de répondre aux modifications effectuées par l'utilisateur dans le contrôle de saisie.Ce qui m'arrange pas car je tourne en rond. Je me doute bien que la gestion de "OnExit" resoud ce cas particulier, mais...Utilisez la propriété Modified pour déterminer si l'utilisateur a modifié la propriété Text du contrôle de saisie. Modified est seulement réinitialisée à False quand vous affectez une valeur à la propriété Text. En particulier, elle n'est pas réinitialisée quand le contrôle reçoit la focalisation.
En filigrane, la question est plus large :
Sur l'appel d'un destructeur par exemple, le mécanisme d'appel permet de traiter le "inherited" à n'importe quel moment du traitement. Est-ce possible pour tous les autres events ou pas ? Ca tient à la déclaration au départ (Override...) ?
J'avais oublié le traditionnel "Merci à tous..."
Partager