Bonjour à tous,
Je rencontre un problème avec l'utilisation d'un TreeView...Je souhaiterais affecter une case à cocher sur tous les noeuds (parents et enfants). Je sais qu'il existe des composants conçuent spécialement pour mais je n'ai pas le droit de les utiliser dans le cadre de mon job.
Voici le code que j'ai (merci aux membres de dévellopez.com) tiré de cet exemple.:
Mon problème c'est que lorsque je clic sur une case à cocher, c'est toujours le premier élément qui est coché/décoché lorsque je clic sur les cases (sauf sur la première parceque là ça fait rien du tout.
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 procedure TForm1.TreeView1Click(Sender: TObject); var P : TPoint; begin GetCursorPos(P); P := Treeview1.ScreenToClient(P); if (htOnStateIcon in Treeview1.GetHitTestInfoAt(P.X, P.Y)) then GestTreeViewCheckBoxes(Treeview1.Selected); end; procedure TForm1.GestTreeViewCheckBoxes(Node : TTreeNode); const cUnChecked = 0; cChecked = 1; begin if Assigned(Node) then begin if Node.StateIndex = cUnChecked then begin Node.StateIndex := cChecked; if Node.Parent.StateIndex = cUnChecked then Node.Parent.StateIndex := cChecked; end else if Node.StateIndex = cChecked then Node.StateIndex := cUnChecked end; end;
J'écoute toute suggestion, merci d'avance
A+.
Partager