TreeView et case à cocher.
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.:
Code:
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; |
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.
J'écoute toute suggestion, merci d'avance
A+.