PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2025 → Déclencher une action quand l'utilisateur cesse de saisir.
Déclencher une action quand l'utilisateur cesse de saisir.
Débuté par Pascal BOULESTEIX, 21 mai 2025 11:24 - 7 réponses
Membre enregistré
1 180 messages
Posté le 21 mai 2025 - 11:24
Salut à tous
J'aimerai pouvoir lancer une action (typiquement une recherche dans une base hfsql) dès lors que le quidam cesse de saisir dans la zone de recherche.
Comment faire ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Posté le 21 mai 2025 - 12:07
Pascal BOULESTEIX a écrit :
Salut à tous
J'aimerai pouvoir lancer une action (typiquement une recherche dans une base hfsql) dès lors que le quidam cesse de saisir dans la zone de recherche.
Comment faire ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat


L'évènement sortie du champ de saisie peut le faire.
Ou a chaque modification du champ de saisie suivant tes besoins.
Membre enregistré
1 180 messages
Posté le 21 mai 2025 - 14:55
J'utilise déjà "A chaque modification" mais je n'aimerai lancer la recherche que si on peut interpréter que la saisie est finie, typiquement parce que le temps de saisie entre chaque lettre a freiné ou est interrompu. Bref ne lancer le minimum de recherche et non pour chaque lettre

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Posté le 21 mai 2025 - 15:13
Pascal BOULESTEIX a écrit :
J'utilise déjà "A chaque modification" mais je n'aimerai lancer la recherche que si on peut interpréter que la saisie est finie, typiquement parce que le temps de saisie entre chaque lettre a freiné ou est interrompu. Bref ne lancer le minimum de recherche et non pour chaque lettre

--
Pascal Boulesteix
Applications Visiolittoral et WNat


Bonjour,

pour ma part quand j'ai eu à faire ça, l'idée et de déclencher un timer à chaque modification du champ, permettant, à chaque frappe, de relancer le timer d'attente. Si au bout du délai, la modification du champ n'est pas exécutée, le timer se déclenche et lance ma recherche.

Pour le faire je fais :
- à chaque modification du champ de saisie, je fais un FinTimer(gnTimer) puis un gnTimer= TimerSys("A", 1s) qui appelle la procédure A qui gère la fin de saisie et déclenche la recherche. Niveau délai libre à vous de mettre ce que vous estimez raisonnable, 1s, 2s ... (ou le rendre paramétrable)
- dans la procédure A, je commence par un FinTimer(gnTimer) et j'exécute mon code de recherche
- à la fermeture de la fenêtre je fais également un FinTimer(gnTimer) pour ne rien laisser trainer
- gnTimer est une globale de la fenêtre

En espérant que ça puisse vous aider.
Posté le 21 mai 2025 - 15:16
Pascal BOULESTEIX a écrit :
J'utilise déjà "A chaque modification" mais je n'aimerai lancer la recherche que si on peut interpréter que la saisie est finie, typiquement parce que le temps de saisie entre chaque lettre a freiné ou est interrompu. Bref ne lancer le minimum de recherche et non pour chaque lettre

--
Pascal Boulesteix
Applications Visiolittoral et WNat


Et on peu combiner ça avec un Taille(moimeme) > x pour ne pas lancer de rechercher si on tape qu'un ou deux caractères par exemple
Posté le 21 mai 2025 - 20:49
Pascal BOULESTEIX a écrit :
J'utilise déjà "A chaque modification" mais je n'aimerai lancer la recherche que si on peut interpréter que la saisie est finie, typiquement parce que le temps de saisie entre chaque lettre a freiné ou est interrompu. Bref ne lancer le minimum de recherche et non pour chaque lettre

--
Pascal Boulesteix
Applications Visiolittoral et WNat


Utiliser l'évènement sortie du champ de saisie .
Membre enregistré
537 messages
Posté le 22 mai 2025 - 12:52
Tu peux regarder l'exemple WM recherche, le principe chaque nouvelle frappe lance la recherche dans une nouvelle TP qui annule la TP précédente
Membre enregistré
1 180 messages
Posté le 23 mai 2025 - 15:38
Pas mal l'exemple :merci:

--
Pascal Boulesteix
Applications Visiolittoral et WNat