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 :

Sélection/Navigation dans une colonne de Type Combo


Sujet :

WinDev

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut Sélection/Navigation dans une colonne de Type Combo
    Bonjour à tous,

    Je souhaiterai avoir 2 comportements différents sur une colonne de type Combo :
    - La navigation via les flèches du clavier passe par le traitement 'Sélection d'une ligne'
    - La sélection par la souris d'une ligne passe par le même traitement.

    Lors de la navigation je ne souhaite pas que le traitement de sélection se fasse, mais je coince.
    Auriez-vous une quelconque idée à ce sujet ?

    Merci

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Je viens d'essayer la fonction Evenement(..) mais sur une table, ça ne retourne que le nom de la table et pas la colonne.
    Je continue mes recherches...

  3. #3
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    J'essayerais en rajoutant l'événement "Bouton gauche enfoncé (WM_LBUTTONDOWN)" sur la table qui mettrait à jour un booléen global à la fenêtre.

    Dans l'événement sélection de ligne, je testerais ce booléen pour savoir si j'exécute le traitement ou non et je mettrais ce booléen à faux.

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Oui, en effet, je vais voir ce que je peux faire avec un booléen.

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Argh, quand on clique dans la liste de la combo, ça ne passe pas dans le traitement 'Bouton Gauche enfoncé' de la table

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Je viens de faire un essai sur une combo simple.

    On peut ajouter un traitement 'Clic Gauche' qui s'active bien lorsqu'on sélectionne un élément de la liste.
    Le traitement 'Sélection' s'active après.

    Dans une colonne de type combo, on ne peut pas ajouter de traitement à la colonne.

  7. #7
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Je viens d'essayer la fonction Evenement(..) mais sur une table, ça ne retourne que le nom de la table et pas la colonne.
    Je continue mes recherches...
    Je suppose que cette événement est (ou était) lié au clic soursi.
    Pour connaître la table correspondant au clic, on peut utiliser la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableInfoXY(SourisPosX(), SourisPosY(), toNomColonne) //écrit de mémoire, voir l'aide de la fonction TableInfoXY

  8. #8
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Merci pour ton aide.

    Je connais cette fonction et tu la mettrais où ?
    Car lorsqu'on clique sur un élément de la liste, l'événement clic de la table n'est pas exécuté.

  9. #9
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    A l'ouverture de la fenêtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Evénement(P_ClicTable, "*.*", WM_LBUTTONDOWN)
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROCEDURE P_ClicTable(p_MessageWindows, p_wParam, p_lParam)
     
    Trace(ChampSurvol())
    SI TableInfoXY(TABLE_SansNom1,tiNomColonne, SourisPosX(), SourisPosY())="COL_SansNom3" ALORS // TableInfoXY inutile car ChampSurvol renvoie déjà le nom de la colonne
    	Trace("Clic Colonne Combo")
    FIN
    Mais l'événement n'est pas déclenché lorsqu'on clique directement sur la flèche qui déroule la combo.
    En cachant le bouton de la combo (Onglet détail de la coolonne combo, "Bouton de la combo->Sans bouton), ce problème n'existe pas.

    Si arrivé là, le fonctionnement est celui voulu mais qu'il faut afficher le bouton de la combo, j'essayerais d'utiliser un gImage pour l'ajouter (mais elle apparaîtra sur toutes les lignes des options de la combo).
    OU
    Je continue à cacher la bouton de la combo et j'ajoute une colonne de type image juste à coté qui ouvre la combo (fonction ComboOuvre).


    Si je n'arrive toujours pas au résultat souhaité, je laisse passer le week-end en espérant une tout autre solution lundi matin pour répondre à la demande du client (pourquoi il faut gérer ces 2 types de navigations ?)

  10. #10
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Une petit image
    Nom : recherche.png
Affichages : 488
Taille : 20,2 Ko

    Mon besoin est de proposer une recherche à partir d'une colonne. Au fur et à mesure de la saisie, la combo reste ouverte et la liste affiche les résultats.
    Dans la liste, on peut naviguer avec les flèches haut et bas du clavier, et faire 'Entrée' pour valider l'élément.

    Si on veut cliquer sur un élément de la liste, le traitement utilisé sur la colonne est le traitement 'Sélection d'une ligne'. Malheureusement, cet événement est aussi déclenché lorsqu'on navigue avec les flèches.

    Le pourquoi de ces 2 types navigations : l'utilisateur clavier et l'utilisateur souris.


    Avec ta méthode, que j'avais déjà essayé, le clic sur la liste (ce qui est déroulé) ne déclenche pas l'événement, mais toi visiblement tu as un résultat.
    Passes-tu par une combo dans un conteneur ?

  11. #11
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Ah non désolé, j'y étais pas du tout.

    Quand on parlais de clic sur la combo, je croyais que c'était le clic qui ouvre la combo et non le clic qui sélectionne la ligne de la combo déjà ouverte.

    Je m'excuse de la perte de temps que j'ai pu provoquer.
    Par contre, je deviens intéressé par la réponse.

    EDIT : N'est-il pas possible de tester la valeur de ToucheEnfoncé (WK_DOWN) _OU_ ToucheEnfoncé(VK_UP) dans le code de sélection d'une ligne de la combo ?

  12. #12
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Pas de soucis et c'est moi qui m'excuse car je n'ai pas bien expliqué mon besoin au départ.

    Je te remercie pour le temps passé

  13. #13
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Je viens d'essayer la fonction Evenement(..) mais sur une table, ça ne retourne que le nom de la table et pas la colonne.
    Je continue mes recherches...
    Bonsoir,

    Peut-être que ceci pourra vous être utile : Comment exécuter un traitement spécifique lors d'un clic sur l'entête d'une colonne de table ?

    Bon travail

    Hemgé

  14. #14
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Bonjour Hemgé et merci pour ta contribution, mais malheureusement ce n'est pas le clic sur entête qui m'intéresse mais le clic sur la liste déroulée d'une combo, qui ne déclenche pas d'événement autre que la sélection de ligne.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Mon besoin est de proposer une recherche à partir d'une colonne. Au fur et à mesure de la saisie, la combo reste ouverte et la liste affiche les résultats.
    Dans un développement que j'ai fait en interne, je devais faire une recherche d'un client soit par rapport à son intitulé, soit par rapport à son code qui est enregistré en base (de type alphanumérique), ce que j'ai fait, j'ai mis un champ de saisi et un champ liste qui est caché, placé juste en dessous du champ de saisi.
    Dans l'événement "entrée dans SAI_XXX", je rend le champ liste visible, dans l'événement "à chaque modification de SAI_XXX", je remplis le champ liste en appliquant un filtre, et lorsque l'utilisateur fait sa sélection dans le champ liste, je remplis le champ de saisi et je cache de nouveau le champ liste.

    Si tes événements ne fonctionnent pas dans ton combo table, je pense que c'est parce qu'il est buggé, j'ai déjà signalé à PC SOFT que la fonction TableSelectPlus ne fonctionnait pas sur ce champ, provoquant une erreur fatale, alors que les autres fonctions TableXXX fonctionnent sur ce champ.

    A toi de voir si cette piste reste exploitable.

  16. #16
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Buggé, je ne dirais pas ça mais plutôt pas implémenté.
    Mais j'avais espéré pouvoir passé par la fonction Evenement(..).

    Ta proposition ne me convient pas dans le sens, où la recherche que je met en place pourra se faire sur la ligne en cours de saisie.
    Il existe déjà dans mon application d'autres moyens de recherche.

    Je vais quand même rester sur ce qu j'ai fait et on verra bien.

    Entre temps, si quelqu'un à une autre piste, je suis tout ouïe.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/10/2010, 17h22
  2. Enregistrer un PDF dans une colonne de type text
    Par xelab dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2010, 17h42
  3. Insérer la valeur NULL dans une colonne de type number
    Par cocoaparis dans le forum PL/SQL
    Réponses: 8
    Dernier message: 08/07/2009, 15h46
  4. Importer des fichiers images dans une colonne de type bytea
    Par piposnow dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 28/05/2009, 21h36
  5. Réponses: 5
    Dernier message: 19/04/2005, 09h46

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