IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Comportement RepriseSaisie étrange


Sujet :

WinDev

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut Comportement RepriseSaisie étrange
    Bonjour,

    J'ai une fenêtre avec un onglet et plusieurs champs sur chaque onglet. J'ai mis en place une navigation entre les champs qui utilise les touches TAB et SHIFT dans les traitements de sortie via la fonction ToucheEnfoncée().

    Bref sur l'onglet 1 il y a plusieurs champs mais principalement le champ SAI_Date et SAI_Code et sur l'onglet 2 il y a un champ SAI_Destinataire.

    Dans le code de sortie de SAI_Destinataire j'ai fait la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI (ToucheEnfoncée(VK_TAB) _ET_ ToucheEnfoncée(VK_SHIFT)) ALORS
    	RepriseSaisie(SAI_Code)
    FIN
    Qui doit donc renvoyer au champ SAI_Code quand on sort via SHIFT+TAB. Seulement ça ne fonctionne pas ça me renvoie à SAI_Date (le premier champ de l'onglet).

    Là où c'est bizarre c'est que j'ai fait plusieurs tests j'ai notamment essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI (ToucheEnfoncée(VK_TAB) _ET_ ToucheEnfoncée(VK_SHIFT)) ALORS
    	Info("")
    	RepriseSaisie(SAI_CodeClient)
    FIN
    Donc tout ce que j'ai changé c'est que j'ai ajouté la ligne Info("") juste pour dire donc, et en effet là ça fonctionne, après avoir affiché une boîte de dialogue vide, ça me renvoie au champ SAI_Code.

    Seulement dès que je supprime la ligne il ne veut plus m'emmener au champ SAI_Code je ne comprends pas pourquoi, vous avez une idée ?

  2. #2
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    As-tu essayer de changer manuellement l'onglet avant de faire ton RepriseSaisie?

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Par programmation tu veux dire ? Oui j'ai essayé ça changeait absolument rien.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Gaetch Voir le message
    Bonjour,

    J'ai une fenêtre avec un onglet et plusieurs champs sur chaque onglet. J'ai mis en place une navigation entre les champs qui utilise les touches TAB et SHIFT dans les traitements de sortie via la fonction ToucheEnfoncée().

    Bref sur l'onglet 1 il y a plusieurs champs mais principalement le champ SAI_Date et SAI_Code et sur l'onglet 2 il y a un champ SAI_Destinataire.

    Dans le code de sortie de SAI_Destinataire j'ai fait la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI (ToucheEnfoncée(VK_TAB) _ET_ ToucheEnfoncée(VK_SHIFT)) ALORS
        RepriseSaisie(SAI_Code)
    FIN
    Qui doit donc renvoyer au champ SAI_Code quand on sort via SHIFT+TAB. Seulement ça ne fonctionne pas ça me renvoie à SAI_Date (le premier champ de l'onglet).

    Là où c'est bizarre c'est que j'ai fait plusieurs tests j'ai notamment essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI (ToucheEnfoncée(VK_TAB) _ET_ ToucheEnfoncée(VK_SHIFT)) ALORS
        Info("")
        RepriseSaisie(SAI_CodeClient)
    FIN
    Donc tout ce que j'ai changé c'est que j'ai ajouté la ligne Info("") juste pour dire donc, et en effet là ça fonctionne, après avoir affiché une boîte de dialogue vide, ça me renvoie au champ SAI_Code.

    Seulement dès que je supprime la ligne il ne veut plus m'emmener au champ SAI_Code je ne comprends pas pourquoi, vous avez une idée ?
    Bonjour,
    Peut-être, en essayant :
    RepriseSaisie(onglet1.SAI_CodeClient)

    Je propose ça de tête, n'ayant pas de machine sous la main pour tester.

    Cordialement
    André

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 103
    Points
    1 103
    Par défaut
    A mon avis ton code executé n'est pas celui que tu crois.
    Tu fais un shift + tab, qui te fais sortir de ton champ, et entrer dans le précedent dans la liste des tabulation. Là seulement les touches sont testées, et ça te renmène au champ programmé par le code.
    mets donc des traces dans tes ToucheEnfoncée et EntréeDansChamp pour valider l'idée.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Pourquoi ne pas utiliser EcranPremier() au lieu de RepriseSaisie() ?

    A+

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Bowen Voir le message
    A mon avis ton code executé n'est pas celui que tu crois.
    Tu fais un shift + tab, qui te fais sortir de ton champ, et entrer dans le précedent dans la liste des tabulation. Là seulement les touches sont testées, et ça te renmène au champ programmé par le code.
    mets donc des traces dans tes ToucheEnfoncée et EntréeDansChamp pour valider l'idée.
    Bonjour Bowen,

    Bien vu, pour ce qui me concerne. En effet, j'ai lu un peu vite la question de Gaetch.
    Il est vrai que TAB + SHIFT provoque une marche arrière !!

    Je ferai plus attention la prochaine fois !!

    Toutefois, RepriseSaisie(ongletx.champdesaisie) est la solution.

    André

  8. #8
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 103
    Points
    1 103
    Par défaut
    Citation Envoyé par RougeCitron Voir le message
    Toutefois, RepriseSaisie(ongletx.champdesaisie) est la solution.
    Pas obligé, le RepriseSaisie ré-active bien l'onglet qui contient le champ, et il identifie bien le bon champ même sans identifier l'onglet. Le champ est unique sur la fenêtre, pas unique sur l'onglet.

    Pour info et hors sujet ici :
    Le seul cas où le RepriseSaisie ne fonctionne pas correctement c'est lorsqu'il est executé à partir d'un menu contextuel : en effet dans ce cas le code placé après le RepriseSaisie() est quand même executé.

Discussions similaires

  1. Comportement NIS étrange
    Par Leduc08 dans le forum Linux
    Réponses: 8
    Dernier message: 07/06/2013, 08h53
  2. [CakePHP] comportement HABTM étrange
    Par Borowsky dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/04/2012, 13h07
  3. [XL-2010] Comportement très étrange
    Par jpclabaux dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2012, 00h19
  4. Comportement très étrange pour CString
    Par squale32 dans le forum Visual C++
    Réponses: 15
    Dernier message: 15/05/2008, 11h55
  5. Comportement getURL() étrange
    Par BnA dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 17/12/2007, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo