Bonjour,

J'ai attaché un popupMenu sur mon treeview et j'aimerais qu'il ne s'execute que si le clic droit a été fait sur un noeud (on ne peut pas attacher le popupMenu directement sur un noeud, c'est dommage...).

J'ai réussi à faire en sorte que le clic droit sélectionne l'item en dessous mais je ne détecte pas SI il y a bien un item dessous:
(tvMain = treeview, pmMain = PopupMenu)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
procedure TfrmMain.tvMainMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
var
  mpos: TPoint;
begin
  GetCursorPos(mpos);
  mpos := tvMain.ScreenToClient(mpos);
  if Button=mbRight then begin
    tvMain.Perform(WM_LBUTTONDOWN,1,MakeLParam(mpos.X,mpos.Y));
    tvMain.Perform(WM_LBUTTONUP,0,0);
    tvMain.PopupMenu := pmMain;
  end;
end;
En fait, je dois modifier le popupMenu selon qu'il soit sur un noeud ou un autre...

De plus, j'ai peur de m'être compliqué la tache (qui me parait simple) en partant dans un truc de fou.