OVH Cloud OVH Cloud

treeview

4 réponses
Avatar
I.G.LOG
Bonjour
Connaissez vous le moyen de savoir si on a cliqué sur une ligne de treeview,
avec bouton droit ou gauche. Je veux pouvoir tester si on a bien cliqué sur
un item du treeview et pas dans la zone hors items.
J'ai essayé d'utliser le code de l'aide mais la fonction
ArbreInfoXY("tvpre", aiNUMLIGNE, X, Y) me retourne toujours -1 !!!

Voici le code:
// clic sur l'arbre Arbre1
// Récupération des coordonnées du clic
X, Y sont des entiers
X = PoidsFaible(_EVE.wParam)
Y = PoidsFort(_EVE.wParam)
// Res est un entier = CurseurPos(cpEcran)
// SI Res <>-1 ALORS
// X = PoidsFaible(Res)
// Y = PoidsFort(Res)
// Info(x+" "+y+" "+ArbreInfoXY("tvpre", aiNumLigne, X, Y))
// FIN

// Recherche du numéro de la ligne correspondant au clic
nLigne est un entier = ArbreInfoXY(MoiMême..Nom, aiNumLigne, X, Y)
// Me retourne toujours -1 ????!!!!
// Recherche du nom de la branche
sBranche est une chaîne = ArbreInfoXY(MoiMême..Nom, aiNomBranche, X, Y)
Trace("Vous avez cliqué sur la branche ("+sBranche +"(ligne n°" + nLigne
+")")


Merci à tous

4 réponses

Avatar
I.G.LOG
> Bonjour
Connaissez vous le moyen de savoir si on a cliqué sur une ligne de


treeview,
avec bouton droit ou gauche. Je veux pouvoir tester si on a bien cliqué


sur
un item du treeview et pas dans la zone hors items.
J'ai essayé d'utliser le code de l'aide mais la fonction
ArbreInfoXY("tvpre", aiNUMLIGNE, X, Y) me retourne toujours -1 !!!

Voici le code:
// clic sur l'arbre Arbre1
// Récupération des coordonnées du clic
X, Y sont des entiers
X = PoidsFaible(_EVE.wParam)
Y = PoidsFort(_EVE.wParam)
// Res est un entier = CurseurPos(cpEcran)
// SI Res <>-1 ALORS
// X = PoidsFaible(Res)
// Y = PoidsFort(Res)
// Info(x+" "+y+" "+ArbreInfoXY("tvpre", aiNumLigne, X, Y))
// FIN

// Recherche du numéro de la ligne correspondant au clic
nLigne est un entier = ArbreInfoXY(MoiMême..Nom, aiNumLigne, X, Y)
// Me retourne toujours -1 ????!!!!
// Recherche du nom de la branche
sBranche est une chaîne = ArbreInfoXY(MoiMême..Nom, aiNomBranche, X, Y)
Trace("Vous avez cliqué sur la branche ("+sBranche +"(ligne n°" + nLigne
+")")


Merci à tous




PS: je suis sous Windev 8 - je n'ai pas essayé avec la version 9 !!!
Avatar
Val
Bonjour

"I.G.LOG" a écrit dans le message de news:
4333a069$0$17233$
Bonjour
Connaissez vous le moyen de savoir si on a cliqué sur une ligne de
treeview,
avec bouton droit ou gauche. Je veux pouvoir tester si on a bien cliqué
sur
un item du treeview et pas dans la zone hors items.
J'ai essayé d'utliser le code de l'aide mais la fonction
ArbreInfoXY("tvpre", aiNUMLIGNE, X, Y) me retourne toujours -1 !!!

Voici le code:
// clic sur l'arbre Arbre1
// Récupération des coordonnées du clic
X, Y sont des entiers
X = PoidsFaible(_EVE.wParam)
Y = PoidsFort(_EVE.wParam)
// Res est un entier = CurseurPos(cpEcran)
// SI Res <>-1 ALORS
// X = PoidsFaible(Res)
// Y = PoidsFort(Res)
// Info(x+" "+y+" "+ArbreInfoXY("tvpre", aiNumLigne, X, Y))
// FIN

// Recherche du numéro de la ligne correspondant au clic
nLigne est un entier = ArbreInfoXY(MoiMême..Nom, aiNumLigne, X, Y)
// Me retourne toujours -1 ????!!!!
// Recherche du nom de la branche
sBranche est une chaîne = ArbreInfoXY(MoiMême..Nom, aiNomBranche, X, Y)
Trace("Vous avez cliqué sur la branche ("+sBranche +"(ligne n°" + nLigne
+")")


Merci à tous





Il y a quelques mois, j'ai bidouillé un truc tout simple qui consiste à
tester l'existence d'un élément d'un champ treeview selon son type (noeud
ou feuille).

Je m'explique.

J'ai un treeview appellé MONARBRE.
Dans ce treeview, je n'ai que des feuilles (aucun noeud).
Quand l'utilisateur clique sur un item de ce treeview, je veux exécuter un
code.
Par contre, quand il clique ailleurs, je ne veux rien faire.

Donc, dans l'événement "Sélection d'une ligne de MONARBRE" je place le code
suivant

SI ArbreTypeElément(MONARBRE,ArbreSelect(MONARBRE))= aFeuille ALORS
// Traitement si c'est une feuille du treeview
SINON
// Traitement si ce n'est pas une feuille du treeview
FIN

Voila.

Si ton treeview a également des noeuds, tu dois bien sur ajouter le test qui
lui correspond.

A+

Val
Avatar
I.G.LOG
>
Il y a quelques mois, j'ai bidouillé un truc tout simple qui consiste à
tester l'existence d'un élément d'un champ treeview selon son type (noeud
ou feuille).

Je m'explique.

J'ai un treeview appellé MONARBRE.
Dans ce treeview, je n'ai que des feuilles (aucun noeud).
Quand l'utilisateur clique sur un item de ce treeview, je veux exécuter un
code.
Par contre, quand il clique ailleurs, je ne veux rien faire.

Donc, dans l'événement "Sélection d'une ligne de MONARBRE" je place le


code
suivant

SI ArbreTypeElément(MONARBRE,ArbreSelect(MONARBRE))= aFeuille ALORS
// Traitement si c'est une feuille du treeview
SINON
// Traitement si ce n'est pas une feuille du treeview
FIN

Voila.

Si ton treeview a également des noeuds, tu dois bien sur ajouter le test


qui
lui correspond.

A+

Val





Bonjour,
Malheureusement le code clic droit s'exécute AVANT le code sélection. De
plus comment savoir dans le code sélection que je viens de cliquer sur le
bouton droit de la souris ?
Merci encore
PS: sous Windev8 ai pas essayé sous la version 9 qui a peut etre un
comportement différent. mais je ne peux pas migrer pour l'instant
Avatar
J-M des Grottes
I.G.LOG a utilisé son clavier pour écrire :

Il y a quelques mois, j'ai bidouillé un truc tout simple qui consiste à
tester l'existence d'un élément d'un champ treeview selon son type (noeud
ou feuille).

Je m'explique.

J'ai un treeview appellé MONARBRE.
Dans ce treeview, je n'ai que des feuilles (aucun noeud).
Quand l'utilisateur clique sur un item de ce treeview, je veux exécuter un
code.
Par contre, quand il clique ailleurs, je ne veux rien faire.

Donc, dans l'événement "Sélection d'une ligne de MONARBRE" je place le code
suivant

SI ArbreTypeElément(MONARBRE,ArbreSelect(MONARBRE))= aFeuille ALORS
// Traitement si c'est une feuille du treeview
SINON
// Traitement si ce n'est pas une feuille du treeview
FIN

Voila.

Si ton treeview a également des noeuds, tu dois bien sur ajouter le test qui
lui correspond.

A+

Val





Bonjour,
Malheureusement le code clic droit s'exécute AVANT le code sélection. De
plus comment savoir dans le code sélection que je viens de cliquer sur le
bouton droit de la souris ?
Merci encore
PS: sous Windev8 ai pas essayé sous la version 9 qui a peut etre un
comportement différent. mais je ne peux pas migrer pour l'instant



Bonsoir,

As tu essayé de "jouer" avec l'évènement boutondroit ou bouton gauche
de la souris. Lors du clic tu peux savoir où se trouve ta souris et le
reste suit ?

Je n'ai pas essayé!

A+

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net