procedure TEMapTree.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Pt: TPoint; begin if mbRight = Button then begin if PopupMenu.Items.Find(Tree_RButtonSelect).Checked then Perform(wm_Lbuttondown, 0, (y shl 16) + x); Pt := ClientToScreen(Point(X,Y)); PopupMenu.Popup(Pt.X,Pt.Y); end; inherited; end;
var
Pt: TPoint;
begin
if mbRight = Button then
begin
if PopupMenu.Items.Find(Tree_RButtonSelect).Checked then
Perform(wm_Lbuttondown, 0, (y shl 16) + x);
Pt := ClientToScreen(Point(X,Y));
PopupMenu.Popup(Pt.X,Pt.Y);
end;
inherited;
end;
TreeView1.Selected 仍然是 nil我需要的是先选中,然后弹出菜单
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if mbRight = Button then
begin
TreeView1.Perform(wm_Lbuttondown, 0, (y shl 16) + x)
end;
end;