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 :

Faire conserver le focus à un champ de saisie [WD14]


Sujet :

WinDev

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Points : 184
    Points
    184
    Par défaut Faire conserver le focus à un champ de saisie
    Bonjour,
    J'ai une feuille avec un champ de saisie et n boutons. Ces boutons affichent une image, jouent un son etc etc...
    Le champ de saisie a le focus à l'ouverture de la feuille. Naturellement lorsque je clique sur un des boutons, le champ perd le focus. Je voudrais redonner le focus au champ de saisie sans mettre "DonneFocus" dans le code de chaque bouton. Y a-t-il un moyen pour que le champ de saisie conserve le focus sans écrire "DonneFocus" dans chaque bouton cliqué.
    Merci

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 073
    Points : 9 521
    Points
    9 521
    Par défaut
    bonjour,

    il suffit de mettre tes boutons en type "interruption"

    Description/IHM/type

    bouton type Interruption :
    Le code du bouton est exécuté. Un bouton Interruption ne conserve pas le focus. Le focus est rendu au champ utilisé précédemment. Le code de sortie de ce champ n'est pas exécuté lors du clic sur le bouton.

    Ami calmant, J.P

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Points : 184
    Points
    184
    Par défaut
    Merci, c'est une solution que j'avais zappée.
    Le problème est que, en réalité, je ne clique pas seulement sur des boutons mais également sur des champs image et je voudrais qu'un clique sur ces champs image conserve le focus sur mon champ de saisie... et je ne trouve pas l'équivalent du type "interruption".

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour,
    je ne sais pas si exactement ce que tu veux mais pourquoi pas un reprisesaisie sur ton champ de saisie lors du clic sur ton image ?
    Bon dev
    Gancau

  5. #5
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Je continue
    J'ai fait une recherche sur focus dans l'aide en ligne de WD15, je ne pense pas que ce soit une nouveauté.
    Tu as reprisesaisie ou donnefocus comme fonction pour ton pb
    A+
    Gancau

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Pour être sur de redonner le focus tout le temps tu peux créer un évènement sur tous les champs avec un reprisesaisie ou donnefocus dans la procédure que tu appelles :

    Evénement(Focus_Saisie,*.*, 513)

    Les évènements sont des interruptions dans le sens où dans le cas de cet évènement, pour tout clic, le code de la procédure sera exécuté.
    Par contre si tu as une image dans laquelle tu as du code lors d'un clic souris je ne sais pas dans quel ordre sera exécuté le code : code du champ puis évènement ou l'inverse.

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Points : 184
    Points
    184
    Par défaut
    merci pour la réponse,
    J'ai créé l'évènement, pas de problème. En ce qui concerne l'ordre d'exécution pour les images, ça correspond à l'ordre du code.
    Je dois donc insérer la procédure dans chaque champ cliqué ?? (sauf pour les bouton car je peux utiliser le type "interruption" comme me l'a suggéré jurassic pork)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    444
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 444
    Points : 428
    Points
    428
    Par défaut
    Evénement(Focus_Saisie,*.*, 513) : signifie que pour tout clic dans un champ de n'importe quelle fenêtre, la procédure Focus_Saisie sera exécutée donc pas besoin de modifier un seul champ.

    Petit aide pour les évènements Ici.

    Par contre comme c'est une interruption, là où je n'ai pas fais de test c'est concernant l'ordre d'exécution du code : si tu clic sur un bouton je ne sais pas si le code d'exécution sur le clic du bouton se fera avant ou après l'exécution du code de la procédure appelée puisque en fait quand tu clic sur ton bouton, le code qui s'exécute dans la partie "Clic sur BTN_..." est aussi une interruption.

    J'ose espérer que les codes des champs son exécutés avant puisque dans l'ordre d'apparition dans le code de la fenêtre les champs sont toujours placés avant les procédures.

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Points : 184
    Points
    184
    Par défaut
    Merci beaucoup
    Je viens de faire l'essai et ça marche bien.
    Encore merci

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Points : 184
    Points
    184
    Par défaut
    Je relance le discussion car je constate que ça ne marche pas si bien que cela.
    Je rappelle que mon objectif est de faire conserver le focus à un champ de saisie "sai_saisie" quelque soit le champ cliqué sur la feuille (boutons ou images) sachant que je ne souhaite pas écrire "DonneFocus(sai_saisie)" dans le code de chacun des champs.
    Sur les conseil de sphynxounet, j'ai créé un évènement que j'ai écrit dans l'initialisation de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Evénement(Focus_Saisie,".*", 513)
    Quant à la procédure Focus_saisie elle se limite à :
    .
    J'ai constaté que cette méthode marche bien pour le clic sur les Images mais pas toujours pour les boutons.
    A regarder de plus près je suis étonné de constater qu'il faut que le bouton soit inactif pour qu'il donne, par un clic, le focus au champ de saisie !!!!!
    Surprenant non ???
    Si quelqu'un peut m'expliquer... Par avance merci

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 379
    Points : 9 545
    Points
    9 545
    Par défaut
    En fait, il est "impropre" de dire que le code est exécuté lors du clic sur un bouton, image, etc... C'est lorsque le bouton est relaché que ce code est exécuté.

    Par exemple, clique sur le bouton de fermeture d'un fenêtre. Maintiens le bouton enfoncé, déplace ta souris et relâche le bouton. La fenêtre ne sera pas fermée.

    Le plus simple est quand même de mettre un reprisesaisie (ou donnefocus) dans les codes des éléments utilisés sur ta fenêtre.

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Points : 184
    Points
    184
    Par défaut
    Bonjour,
    merci pour la réponse, je vais effectivement me résigner à mettre "DonneFocus" dans le code de mes boutions ou les affecter du type "interruption".
    merci à tous pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/06/2012, 12h06
  2. mettre le focus sur les champs de saisie
    Par lastrecrue dans le forum jQuery
    Réponses: 2
    Dernier message: 24/12/2010, 11h28
  3. Focus sur champ de saisie sans JS
    Par parkerlewis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2007, 14h11
  4. Rendre le focus à champ de saisie après une action
    Par Gothico dans le forum WinDev
    Réponses: 3
    Dernier message: 24/10/2006, 16h21
  5. faire un insert pour un champ blob
    Par tripper.dim dans le forum InterBase
    Réponses: 10
    Dernier message: 02/05/2003, 16h56

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