多个控件可以用1个popupmenu的,将它们的popupmenu属性全指向同一popupmenu就可以了 而响应PopupMenu时,PopupMenu的PopupComponent属性就是你点击的那个控件 下面是delphi6自带的EX,两个Edit同时用一个PopupMenuprocedure TForm1.FormCreate(Sender: TObject);begin PopupMenu1.AutoPopup := True; Edit1.PopupMenu := PopupMenu1; Edit2.PopupMenu := PopupMenu1;end;These are the cut, copy, and paste OnClick events for the commands on the pop-up menu. procedure TForm1.Copy1Click(Sender: TObject);begin if PopupMenu1.PopupComponent = Edit1 then Edit1.CopyToClipboard elseif PopupMenu1.PopupComponent = Edit2 then Edit2.CopyToClipboard else Beep;end;procedure TForm1.Cut1Click(Sender: TObject);begin if PopupMenu1.PopupComponent = Edit1 then Edit1.CutToClipboard elseif PopupMenu1.PopupComponent = Edit2 then Edit2.CutToClipboard; else Beep;end;procedure TForm1.Paste1Click(Sender: TObject);begin if PopupMenu1.PopupComponent = Edit1 then Edit1.PasteFromClipboard else if PopupMenu1.PopupComponent = Edit2 then Edit2.PasteFromClipboard; else Beep; end;
而响应PopupMenu时,PopupMenu的PopupComponent属性就是你点击的那个控件
下面是delphi6自带的EX,两个Edit同时用一个PopupMenuprocedure TForm1.FormCreate(Sender: TObject);begin
PopupMenu1.AutoPopup := True;
Edit1.PopupMenu := PopupMenu1;
Edit2.PopupMenu := PopupMenu1;end;These are the cut, copy, and paste OnClick events for the commands on the pop-up menu. procedure TForm1.Copy1Click(Sender: TObject);begin
if PopupMenu1.PopupComponent = Edit1 then
Edit1.CopyToClipboard
elseif PopupMenu1.PopupComponent = Edit2 then
Edit2.CopyToClipboard
else
Beep;end;procedure TForm1.Cut1Click(Sender: TObject);begin
if PopupMenu1.PopupComponent = Edit1 then
Edit1.CutToClipboard
elseif PopupMenu1.PopupComponent = Edit2 then
Edit2.CutToClipboard;
else
Beep;end;procedure TForm1.Paste1Click(Sender: TObject);begin
if PopupMenu1.PopupComponent = Edit1 then
Edit1.PasteFromClipboard
else if PopupMenu1.PopupComponent = Edit2 then
Edit2.PasteFromClipboard;
else
Beep;
end;