Yep !
F9 et toutes les flèches visent à droite, comme sur mon image.
J'en choisis une au hasard, je la clique, la flèche tourne de 90° dans le sens des aiguilles d'une montre et pointe vers le bas.
Je reclique et elle se remet à sa place d'origine.
Bref, un comportement normal sauf que je n'ai pas de ShowMessage.
Je me suis amusé à rajouter deux test :
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
| ...
with tv.ScreenToClient(Mouse.CursorPos) do aNode := tv.GetNodeAt(X, Y);
if htOnButton in HitTests then Caption:='MouseDown OnButton' // sur ouvert/fermé, OK
else
if htOnStateIcon in HitTests then Caption:='MouseDown OnStateIcon' // sur càc, OK
else
if htOnIcon in HitTests then Caption:='MouseDown OnIcon' // sur image, OK
else
if htOnItem in HitTests then Caption:='MouseDown OnItem'; // sur texte, OK
if htOnButton in HitTests then ShowMessage('SM MouseDown OnButton') // sur ouvert/fermé, OK
else
if htOnStateIcon in HitTests then ShowMessage('SMMouseDown OnStateIcon') // sur càc, OK
else
if htOnIcon in HitTests then ShowMessage('SM MouseDown OnIcon') // sur image, OK
else
if htOnItem in HitTests then ShowMessage('SM MouseDown OnItem'); // sur texte, OK
// Les 8 OK ci-dessus signifient que la Caption est bien modifiée comme espéré et que le ShowMessage est affiché
// et j'ai modifié cette ligne de
if (htOnButton in HitTests) then begin ShowMessage('tvMouseDown2 '+aNode.Text); exit; end;
//en
if (htOnButton in HitTests) then begin ShowMessage('SM tvMouseDown2 '+aNode.Text); Caption := 'Ca test htOnButton'; exit; end; // et toujours PAS VU
... |
En résumé,
1 2 3 4 5 6
| if htOnButton in HitTests then Caption := 'MouseDown OnButton' // sur ouvert/fermé, OK
if htOnButton in HitTests then ShowMessage('SM MouseDown OnButton') // sur ouvert/fermé, OK
if htOnButton in HitTests then begin ShowMessage('SM tvMouseDown2 '+aNode.Text);
Caption := 'Ca test htOnButton'; exit; end; // et toujours PAS VU
if (htOnButton in HitTests) then begin ShowMessage('SM tvMouseDown2 '+aNode.Text);
Caption := 'Ca test htOnButton'; exit; end; // et toujours PAS VU |
Alors j'ai réactivé le message omis pour cosmétique juste avant les tests if htOn...
if aNode = nil then begin ShowMessage('pâté avec le node...'); Exit; end;
et là, je constate que j'ai ce message avec le test if htOnButton in HitTests suivi du Exit alors que les 3 autres tests fonctionnent bien.
Il y a une blagounette quelque part...
Je vous laisse y réfléchir, cet après-midi j'ai dentiste puis courses, à ce soir !
Partager