Bonjour tout le monde.
J'ai un problème sur le fonctionnement d'un TreeView
J'essai de savoir si un node possèdent des enfants, pour ce faire j'utilise ceci
Chose super étrange c'est que le résultat est aléatoire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure TFFicheDroits.sTreeViewDroitsClick(Sender: TObject); begin Case TsTreeView(Sender).Items.Item[TsTreeView(Sender).Selected.Index].HasChildren of True: showmessage(inttostr(TsTreeView(Sender).Selected.Index)+#13+#10+'vrai'); False: showmessage(inttostr(TsTreeView(Sender).Selected.Index)+#13+#10+'Faux'); End; end;
J'ai ce genre de Node :
les * sont normalement des noeuds enfants, mais si je clique sur général j'ai "Faux" si je clique sur Fichiers j'ai "Vrai", si je clique sur Editions j'ai "Faux", j'en perds mon latin !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 - Général * Droits - Fichiers * Société - Clients * Modifier * Supprimer - Editions * Statistiques * Editions - Utilitaires * Réinitialisation * Contrôle de la base * Sauvegarde
Pourtant l'aide est trés claire
Le but de l'opération est que :HasChildren a la valeur true si le noeud possède des sous-noeuds, false s'il n'en possède pas. Si la propriété ShowButtons de la vue arborescente a la valeur true, et si HasChildren a également la valeur true, un bouton plus (+) apparaît à gauche du noeud quand celui-ci est réduit, et un bouton moins (-) apparaît quand le noeud est développé.
Remarque: Si un noeud ne possède pas d'enfants, affecter la valeur true à HasChildren fait apparaître un bouton plus (+) mais aucun noeud enfant n'est ajouté et le noeud ne peut pas être développé.
- si l'utilisateur me coche par exemple "- clients" je souhaite autochecked les enfants
Merci pour vos remarques.
Partager