Hola, siguiendo las ideas de Neftali, me ha funcionado de esta forma, utilizando el evento OnContextPopup.
Código Delphi
[-]
procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
var
Nodo: TTreeNode;
begin
Nodo := TreeView1.GetNodeAt(MousePos.X, MousePos.Y);
if (Nodo <> nil) then
begin
TreeView1.Select(Nodo);
if Not(Nodo.HasChildren) then
TreeView1.PopupMenu := PopupMenu1
else
TreeView1.PopupMenu := Nil;
end;
end;
No debes asignar el popupmenu en diseño al TreeView.
Saluditos