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 :

[WD10]Récupérer les coordonnées X,Y d'une ligne de table


Sujet :

WinDev

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut [WD10]Récupérer les coordonnées X,Y d'une ligne de table
    Bonjour,

    J'aimerais ouvrir une petite fenêtre juste sous la ligne en cours d'une table mémoire.

    Comment faire pour connaitre la position X,Y (surtout Y ) de la ligne en cours ?

  2. #2
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 93
    Points : 94
    Points
    94
    Par défaut
    TableSelectOccurence renvoie la bonne info me semble-t-il ...

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Je me suis mal exprimé semble-t-il. Je ne veux pas le n° de la ligne sélectionnée, (ça je l'ai par TableSelectPlus ou TableSelectOccurrence, comme tu me l'as dit), non ce que je veux c'est l'ordonnée en pixel de la ligne, pour pouvoir positionner ma fenêtre, juste sous la ligne en question !

  4. #4
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 93
    Points : 94
    Points
    94
    Par défaut
    Tu peux éventuellement récuperer les coordonnées X,Y du pointeur de la souris et faire en fonction du clic souris non ?

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Hélas, non !

    Puisque l'ouverture de la fenêtre est obtenue par le clic sur un bouton

  6. #6
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 93
    Points : 94
    Points
    94
    Par défaut
    Dans ce cas ...

    Tu peux peut etre tenter un truc style :
    MaTable[1,1]..X (ou PosX je sais plus) ou encore :
    {MaTable[1,1]}..X

    ça donne quoi ça ?

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    J'avais un bout de code du ST WD pour ça
    (à adapter bien entendu, mais ça devrait t'aider)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // Visualiser le contenu des cellules lors du survol de la table
    nligne est une chaîne
    sCol est une chaîne
    x est un entier
    y est un entier
     
    // sélection sur la table TABLE
    x = PoidsFaible(CurseurPos())
    y = PoidsFort(CurseurPos())
    nligne = TableInfoXY(Table, tiNumLigne + tiOrigineEcran, x, y)
    sCol = TableInfoXY(Table, tiNomColonne + tiOrigineEcran, x, y)
     
    SI sCol<>"" ET nligne<>"" ALORS
    	{sCol}..Bulle={sCol}[nligne]
    FIN

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Citation Envoyé par Yann09
    Dans ce cas ...

    Tu peux peut etre tenter un truc style :
    MaTable[1,1]..X (ou PosX je sais plus) ou encore :
    {MaTable[1,1]}..X

    ça donne quoi ça ?
    Ca ne passe pas à la compile

    Citation Envoyé par Windev10
    Erreur :La propriété 'X' n'existe pas sur ce type de champ.
    Guardian >> Merci, mais ta fonction est basée sur le curseur souris, et moi je ne peux pas utiliser ce curseur !

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Voila, j'ai trouvé.

    J'ai fait une procédure...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    // Résumé : <Calcul l'ordonnée de la ligne en pixel par rapport au Coin haut gauche de la fenêtre>
    // Syntaxe :
    //[ <Résultat> = ] FGetPosYLigne (<cpTable> est chaîne, <npLigne> est entier)
    //
    // Paramètres :
    //	cpTable (chaîne) : <indiquez ici le rôle de cpTable>
    //	npLigne (entier) : <indiquez ici le rôle de npLigne>
    // Valeur de retour :
    // 	entier : Ligne (en pixel) se situant sous la ligne en cours
    //
    // Notes :
    // Le résultat est donnée par rapport à la fenêtre.
    // 
    //
    PROCEDURE FGetPosYLigne( cpTable est une chaîne, npLigne est un entier)
    LOCAL
    	nlRetour			est un entier
    	nlHauteurTitre	est un entier
    	nlHauteurLigne	est un entier
    	nlNbLignes		est un entier
    	nlHauteurTable	est un entier
     
    nlHauteurTable = { cpTable,indChamp}..Hauteur
    nlHauteurLigne = { cpTable,indChamp}..HauteurLigne
     
    nlNbLignes = TableOccurrence( cpTable, toVisible)
    nlHauteurTitre = nlHauteurTable - ( nlNbLignes * nlHauteurLigne)
     
    nlRetour = { cpTable,indChamp}..Y + nlHauteurTitre + ( npLigne * nlHauteurLigne)
    RENVOYER( nlRetour)
    Pour obtenir l'indice de la ligne, j'utilise IndiceEnCours()
    et j'ai du mettre le bouton en type Interruption

    Voila, si ça peut servir à quelqu'un !

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    J'ai un truc pas mal (ta procédure ne fonctionne pas avec moi, ça se décale à chaque ligne), mais ça ne fonctionne que si on est en saisie dans le champ de la colonne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    rect est composé de
    	l est un entier long // left
    	t est un entier long // top
    	r est un entier long // right
    	b est un entier long // bottom
    FIN
    point est composé de 
    	x est un entier long
    	y est un entier long
    FIN
    // On chope la position du champ
    AppelDLL32("user32","GetWindowRect",Handle("macolonne"),&rect)
    point.x = rect.l
    point.y = rect.t
    // On convertie en position client (intérieur de la fenêtre)
    AppelDLL32("user32","ScreenToClient",Handle(),&point)
    // Voilà, on a tout dans la variable "point"

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Le probleme c'est que je ne suis pas en saisie !

    Et pour moi, ma fonction marche correctement, alors...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2012, 13h59
  2. Récupérer les coordonnées de points d'une surface avec la souris
    Par ijnuhbygv dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 06/08/2011, 01h57
  3. Récupérer les coordonnées x,y d'une image
    Par Kussmaul dans le forum Android
    Réponses: 4
    Dernier message: 10/01/2011, 19h31
  4. Récupérer les coordonnées (haut gauche) d'une cellule ou d'un div
    Par pcayrol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/06/2007, 14h49
  5. Comment récupérer les coordonnées d’un clique sur une image ?
    Par da_sys dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 12h34

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