|
| Inicio → WINDEV 2025 → RepriseSaisie ou DonneFocus suite à modification du volet affiché sur onglet dynamique |
| RepriseSaisie ou DonneFocus suite à modification du volet affiché sur onglet dynamique |
| Iniciado por Julien V, 01,oct. 2020 09:13 - 7 respuestas |
| |
| | | |
|
| |
Miembro registrado 134 mensajes |
|
| Publicado el 01,octubre 2020 - 09:13 |
Bonjour,
Dans une fenêtre comportant un champ onglet dynamique, j'ai besoin lorsque que l'on change d'onglet (déjà ouvert) de faire une reprise saisie ou une prise de focus sur un champ de saisie de certaines fenêtres internes.
A l'ouverture de l'onglet dynamique ça fonctionne très bien avec un DonneFocus sur le champ en question à l'initialisation de la fenêtre interne.
Dans la fenêtre comportant le champ onglet dynamique j'ai le code suivant au traitement Modification du volet affiché
proc est une Procedure
proc = ChercheProcédure( ExtraitChaîne( ONG_menu, 1, TAB ) + "." + "lproc_focus" ) SI proc <> Null ALORS proc() Ainsi si j'ai une procédure locale lproc_focus() dans mes fenêtres internes appelées dans le champ onglet dynamique, celle-ci s'exécute.
J'ai essayé du DonneFocus, du RepriseSaisie, du EcranPremier sans succès, c'est toujours l'onglet qui a le focus et non le champ de saisie de la fenêtre interne de l'onglet.
Si quelqu'un a une piste ? Je sèche... |
| |
| |
| | | |
|
| | |
| |
| Publicado el 01,octubre 2020 - 10:59 |
Bonjour
Dans le champs onglet, vous devez ajouter la gestion de l'événement de prise de focus et y inclure ce code :
RepriseSaisie("ONG_menu.MonChamp")
Ce code est à adapter si vous devez donner le focus à un champ particulier en fonction de l'onglet ou si vous avez des onglets qui ne doivent pas donner un focus particulier.
Exemple, si vous avez un premier onglet fixe qui ne doit pas gérer la prise de focus :
SI OngMonOnglet[OngMonOnglet].Libellé <> "Titre de mon onglet fixe" ALORS RepriseSaisie("OngMonOnglet.MonChamp") FIN
Bon dev.
Laurent M. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 01,octubre 2020 - 11:05 |
Bonjour Julien j'ai une classe qui s'occupe de gérer mon onglet dynamique et ses onglets ouvert et le traitement dont tu parles je l'ai géré. Je vais pouvoir t'aider
proc est une Procedure
proc = ChercheProcédure( ExtraitChaîne( ONG_menu, 1, TAB ) + "." + "lproc_focus" ) SI proc <> Null ALORS proc() Place ce code dans le traitement d'entré de ta fenêtre interne, ça devrait résoudre ton problème
-- Les innocents sont toujours accusés à tord. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 01,octubre 2020 - 12:15 |
Bonjour,
Merci pour la réponse, malheureusement ça ne fonctionne pas
Ci-dessous une capture de ce que cela fait

En espérant que ça soit lisible |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 01,octubre 2020 - 12:16 |
| Il faut ouvrir l'image à part, sinon on voit que le focus se met quand je fais une tabulation |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 01,octubre 2020 - 12:50 |
Excuse moi j'ai oublié une autre partie du code, en plus du traitement sur l'entre de la fenêtre interne Rajouter sur ton champ onglet ce code (dans le code de déclaration de fenêtre principale)
proc est une Procedure proc = ChercheProcédure( ExtraitChaîne( ONG_menu, 1, TAB ) + "." + "lproc_focus" )
Evénement(BoutonGaucheRelâché, ChampOnglet..Nom, WM_LBUTTONUP)
Procedure BoutonGaucheRelâché(ParamMessageWindows <utile>, wParam <utile>, lParam <utile>)
SELON ParamMessageWindows CAS WM_LBUTTONUP proc() AUTRE CAS FIN
-- Les innocents sont toujours accusés à tord. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 01,octubre 2020 - 13:23 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 296 mensajes |
|
| Publicado el 01,octubre 2020 - 13:45 |
Sinon je t'invite à réfléchir à une classe qui s'occupera de tout ceci, tu es sur la bonne voie mais remarque que tu dois déclarer ton procédure pour récupérer le nom de ton champs dans chacun de tes fenêtres interne, une classe t'éviterai ceci ! Je t'en pris c'est toujours un plaisir de partager
-- Les innocents sont toujours accusés à tord. |
| |
| |
| | | |
|
| | | | |
| | |
|