[R] Comportement Treeview (parents / enfants)

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

[R] Comportement Treeview (parents / enfants)

#1

Message par zeshrek »

Bonjour tout le monde

Apres avoir farfouillé tant sur le forum US que sur le notre, je n'ai aps trouvé ce que je voudrais.
Ce que je veux c'est pouvoir prendre un treeview par exemple tel que celui ci :
► Afficher le texte
Et faire en sorte que quand on clique sur un parent ca (dé)coche les enfants, et que quand on coche un enfant ca (dé)coche les ascendants.

J'ai trouvé des choses ressemblantes (je pense au shelltristate treeview par exemple, mais qui est dédié aux arborescences disques/fichiers), ou qui ne fonctionnent pas (en tout cas pas chez moi ni au bureau comme le tristate treeview du forum US), mais pas ce que je veux.

Donc voilà, si qqun a un tuyau, je suis preneur.
D'avance merci
Si vis pacem para bellum
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Comportement Treeview (parents / enfants)

#2

Message par sksbir »

bonjour

La seule piste qui me vient tout de suite à l'esprit, c'est de passer en mode
AutoItSetOption("GUIOnEventMode", 1)

Puis d'utiliser GUICtrlSetOnEvent sur chaque case à cocher, ce qui fait que tu pourras contrôler la coche des cases "filles" dans une fonction appelée par la coche des cases "mères"...
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Comportement Treeview (parents / enfants)

#3

Message par zeshrek »

c'est pas l'implémentation qui pose probleme, c'est l'algo.
Je vois pas comment faire ca. Tous mes essais se sont soldés par des erreurs. soit ca gere mal les descedants, soit c'est les parents... bref, c'est la loose.
Si vis pacem para bellum
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comportement Treeview (parents / enfants)

#4

Message par Tlem »

Hummm, j'avoue ne pas avoir l'esprit très alerte ce soir pour ce type de masturbation intellectuelle, mais grossièrement, je verrais un truc du genre :
- Si je clique un parent, alors j'utilise : _GUICtrlTreeView_GetFirstChild et GetNextChild en boucle récursive pour contrôler/modifier la totalité des enfants.

Si je clique un enfant pour le cocher, alors j'utilise _GUICtrlTreeView_GetParentHandle en boucle jusqu'à ce qu'il n'y ai plus de parent (Return Value 0) tout en cochant chaque parent.

Après, il reste des cas particuliers à gérer, tel que :
- Si je décoche un enfant et qu'il n'y à plus d'enfant coché, alors le parent doit-il être décoché ?

- Et probablement d'autres qui ne me viennent pas à l'esprit pour l'instant. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Comportement Treeview (parents / enfants)

#5

Message par zeshrek »

Bah c'est ce que j'ai éssayé... et ca marche pô.
Je crois que je vais aller titiller l'auteur de tristate treeview sur le forum US, histoire de voir pourquoi son bidule marche pas chez moi...
Si vis pacem para bellum
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Comportement Treeview (parents / enfants)

#6

Message par sksbir »

Hello

dis moi ce que tu penses de ça: (mis à part que c'est un peu anarchique comme programmation)
► Afficher le texte
A part ça, j'ai un bug d'affichage : le petit "+" qui est sensé s'afficher en face de la derniere case à cocher de niveau 1 ne s'affiche pas. Mais j'ai remarqué que t'as le bug aussi.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Comportement Treeview (parents / enfants)

#7

Message par zeshrek »

Cest gentil de t'etre penché sur mon probleme, et il faut bien avouer qu'a 48h pres, j'aurai surement employé ton code, mais j'ai fini par me dépatouiller. Au final j'ai fait un systeme ou les enfants héritent systématiquement du parent, et ou les parents héritent seulement du cochage de leur descendance (on peut décocher les enfants, les ascendants restent cochés)
Le tout bien sur quel que soit le niveau ou on (dé)coche.
pour un exemple 'en live' je te renvoie vers la dernière version de DirInstall que je viens de publier
Par contre je comprend mal ta dernière phrase.
"le petit "+" qui est sensé s'afficher en face de la derniere case à cocher de niveau 1 ne s'affiche pas"
Chez moi ca s'affiche tres bien...
Si vis pacem para bellum
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [R] Comportement Treeview (parents / enfants)

#8

Message par sksbir »

Une petite capture d'écran valant mieux qu'un long discours, voici 2 captures d'écran : En haut à gauche, la form telle qu'elle apparait au début, et la 2eme capture, c'est après avoir coché la derniere case en bas.
Image

je suis sous windows XP, thème "classique". Ceci explique peut-etre cela...
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [R] Comportement Treeview (parents / enfants)

#9

Message par zeshrek »

tiens oui c'est bizare, j'avais pas remarqué...
Sur mon seven a la maison j'ai aps le pb...

Bon, sinon au cas ou ca interesserait qqun, voici ma solution :
► Afficher le texte
Si vis pacem para bellum
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [R] Comportement Treeview (parents / enfants)

#10

Message par sksbir »

on trie le tableau (pour le pb de la petite croix)
Intéressant.. 8)
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [R] Comportement Treeview (parents / enfants)

#11

Message par zeshrek »

j'ai toujours été tres doué pour trouver des facons 'exotiques' de contourner un problème. :P

Ceci dit je garde dans un coin de ma tête qu'il ne faut pas finir un treeview avec un node a la racine. Ce qui en soit n'est pas hyper contraignant dans la mesure ou souvent je construit mes treeview en mettant les nodes d'abord, et les entrées simples ensuite...
Si vis pacem para bellum
Répondre