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 :

problème de Table avec colonne image (évènement clic)


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Points : 10
    Points
    10
    Par défaut problème de Table avec colonne image (évènement clic)
    bonjour


    je crée une table mémoire (ex : 5 colonnes, 12 lignes) dont la dernière
    colonne est une image (la même sur les 12 lignes).

    dans le code de cette colonne j'ai bien "clic sur la colonne".
    là je souhaite récupérer l'indice de la ligne de l'image sur laquelle
    l'utilisateur a cliqué (numli = tableselect(latable)). et bien il me
    renvoie l'indice de la ligne active avant le clic ! normalement le clic
    devrait sélectionner la ligne, non ?

    ou j'ai loupé qq chose ?

    merci pour votre aide

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 376
    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 376
    Points : 9 541
    Points
    9 541
    Par défaut
    Tu as quelle version de Windev ?

    Si c'est pour récupérer le numéro de ligne, tu peux mettre le code dans le le code de sélection du tableau.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Tu as quelle version de Windev ?

    Si c'est pour récupérer le numéro de ligne, tu peux mettre le code dans le le code de sélection du tableau.
    j'ai windev 14, le problème c'est que supposant que la ligne sélectionnée a le numéro 5, et je veux cliquer sur l'image de la ligne 1, il me retourne l'indice de la ligne 5 (la ligne selectionnée)..

  4. #4
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    732
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 732
    Points : 1 653
    Points
    1 653
    Par défaut
    Bonjour,

    Le problème c'est que parfois l'indice par défaut d'une table sera "l'indice en cours", et parfois ça sera "la ligne sélectionnée", ce qui peut prêter à confusion.
    Dans votre cas c'est la ligne sélectionnée, et le code est appelé avant ce changement de sélection.

    Moi je fais MaTable = MaTable, ou TableSelectPlus(MaTable, MaTable) au début du code de clic.
    En plus ça permet à l'utilisateur de voir la ligne sélectionnée immédiatement, et pas seulement après le code de clic (qui peut être long si on ouvre une fenêtre).

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 376
    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 376
    Points : 9 541
    Points
    9 541
    Par défaut
    Bonne astuce Hibernatus.

    Je plussoie. Et ça répond directement au problème de Yassine

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Tu as quelle version de Windev ?

    Si c'est pour récupérer le numéro de ligne, tu peux mettre le code dans le le code de sélection du tableau.
    Citation Envoyé par Hibernatus34 Voir le message
    Bonjour,

    Le problème c'est que parfois l'indice par défaut d'une table sera "l'indice en cours", et parfois ça sera "la ligne sélectionnée", ce qui peut prêter à confusion.
    Dans votre cas c'est la ligne sélectionnée, et le code est appelé avant ce changement de sélection.

    Moi je fais MaTable = MaTable, ou TableSelectPlus(MaTable, MaTable) au début du code de clic.
    En plus ça permet à l'utilisateur de voir la ligne sélectionnée immédiatement, et pas seulement après le code de clic (qui peut être long si on ouvre une fenêtre).


    malheureusement mm probleme

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 276
    Points : 739
    Points
    739
    Par défaut
    Dans le code de clic de la colonne, utiliser la fonction TableInfoXY pour récupérer l'indice de la ligne où le clic a eu lieu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nLigne = TableInfoXY(TABLE1, tiNumLigne, SourisPosX(), SourisPosY())
    // nLigne contient l'indice de la ligne qui a été cliquée

  8. #8
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Bonjour

    La solution proposée par Hybernatus34 fonctionne parfaitement avec Windev 17

    Par contre TableInfoXY dans le code de clic de la colonne image ne fonctionne pas (chez moi en tout cas) : ça renvoie toujours -1

    On peut le mettre dans le code de clic de la table mais il faut tester ChampSurvol() pour savoir si on a cliqué sur la bonne colonne

  9. #9
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Ne peut-on pas récupérer la colonne avec ce code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Récupère la ligne et la colonne survolée
    nLigne 		= TableInfoXY(matable, tiNumLigne, 	SourisPosX, SourisPosY)
    sColonne 	= TableInfoXY(matable, tiNomColonne, 	SourisPosX, SourisPosY)

  10. #10
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    En théorie oui, mais comme je le dis plus haut ça ne fonctionne pas (ça renvoie -1 aussi bien pour le N° de ligne que de colonne)

  11. #11
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    732
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 732
    Points : 1 653
    Points
    1 653
    Par défaut
    Bonjour,

    D'abord je vous conseille de chercher à comprendre pourquoi vous n'arrivez pas à utiliser la solution de Table = Table.
    Ensuite, pour le TableInfoXY, vous pouvez utiliser CurseurPosition à la place de SourisPosX/Y.
    Dans TableInfoXY vous pouvez spécifier l'origine des coordonnées. Vous pouvez aussi faire les calculs nécessaires.
    Mais encore une fois ce n'est pas la meilleure solution.

    Note : la différence entre SourisPosX et CurseurPosition, c'est que CurseurPosition donne la position de la souris au moment où on appelle la fonction (si vous n'avez vraiment pas de chance, ça peut avoir bougé pendant l'exécution de votre code), alors que SourisPosX donne les coordonnées fournies avec l'événement de bouton enfoncé/relâché.
    Donc si on est rigoureux, on préfèrera mémoriser les coordonnées SourisPosX/Y au LBUTTONDOWN.

Discussions similaires

  1. [WB18] Table avec colonne image : enchaînement des événements
    Par Picol dans le forum WebDev
    Réponses: 0
    Dernier message: 29/05/2013, 12h42
  2. problème menu déroulant avec des images
    Par -Neo- dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 19/02/2008, 17h50
  3. DTS venant d'une table avec colonnes variables
    Par Poussy-Puce dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/08/2007, 23h29
  4. problème de table avec la MasterSource
    Par tchimou dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/04/2007, 23h37
  5. Problème sous Firefox, avec les images.
    Par Sangodams dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2006, 18h44

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