Salut tout le monde !
Mon TreeView quand il est développé en totalité n'est pas très "mignon" puisqu'il a trop d'éléments. Il est constitué de 4 niveau, je voudrais pouvoir développer le TreeView à la demande, si l'utilisateur clic sur le niveau 1 alors tout se referme et je n'aurais que les éléments du niveau 1. Idem si je clique sur le niveau 2. Pour bien comprendre je schématise :
Zone Niveau 0
Unité Niveau 1
Centre Niveau 2
Communes Niveau 3
STEP Niveau 2
SR Niveau 2
Exemple :
Zone Niveau 0
Unité Chlef Niveau 1
Centre Chlef Niveau 2
Commune Chlef Niveau 3
Commune Oum Drou Niveau 3
Centre Ténès Niveau 2
STEP Chlef Niveau 2
STEP Chettia Niveau 2
SR 1 Houria Niveau 2
SR 2 Houria Niveau 2
Pour cela j'ai utilisé ce bout de code mais qui apparemment ne fonctionne pas bien :
Donc je commence par Replier tout puis, je dois vérifier que je suis le bon niveau afin de ne développer que le niveau en question.
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 procedure CollapseNodesAtLevel(var ATV: TTreeView; NIV : integer); var ANode, CNode: TTreeNode; begin ATV.FullCollapse; ANode := ATV.Items.GetFirstNode; while (ANode <> nil) do begin CNode := ANode.getFirstChild; while (CNode <> nil) do begin if (ANode.Level = NIV) then CNode.Collapse(True) else CNode.Expand(True); CNode := CNode.GetNextSibling; end; ANode := ANode.GetNextSibling; end; end;
Si vous avez un autre code je suis preneur
Merci par avance.
Partager