onjour,
je bricole un TTreeView avec l'affichage pour les items de g à dr du OnButton, du OnStateIcon, du OnIcon et du OnItem et tout est mignon.
Mais il y a un problème avec le OnButton, qui devrait m'afficher un ShowMessage et ne le fait pas, alors que les 3 autres options réagissent bien.
En gros j'ai ça comme code :
Ce qui se passe, de droite à gauche :
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 procedure TForm1.tvMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var HitTests: THitTests; aNode: TTreeNode; begin if tv.Selected = nil then tv.Items[0].Selected := True; HitTests := tv.GetHitTestInfoAt(X, Y); with tv.ScreenToClient(Mouse.CursorPos) do aNode := tv.GetNodeAt(X, Y); if aNode = nil then begin {ShowMessage('pâté avec le node...');} Exit;end; if (htOnButton in HitTests) then begin ShowMessage('tv2MouseDown2 '+aNode.Text); exit; end; // KC if (htOnStateIcon in HitTests) then begin ToggleTreeViewCheckBoxes(aNode); exit; end; // ok if (htOnIcon in HitTests) or (htOnItem in HitTests) then begin ShowMessage('tv2MouseDown1 '+aNode.Text); exit; end; // ok end;
un clic sur le texte (OnItem) ou l'image (OnIcon) --> ShowMessage du aNode.Text, ràs ;
un clic sur la StateIcon affiche/cache la case-à-cocher, ràs ;
un clic sur le bouton triangulaire rouge --> tout ce que je vois, c'est que le texte de l'item[0] tout en haut du treeview passe en sélectionné du noir au blanc et une fois blanc il y reste ; cependant, le triangle rouge bascule, mais le ShowMessage ne se montre pas...
Pourquoi ? Comment le faire apparaitre ?
Merci !
Partager