共享一个 TPopupMenu 的两个 TMemo 对象,可以通过以下步骤实现:
示例代码如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
// 创建 TPopupMenu 对象
PopupMenu1 := TPopupMenu.Create(Self);
// 添加菜单选项并设置事件处理程序
with PopupMenu1.Items.Add do
begin
Caption := '复制';
OnClick := CopyText;
end;
with PopupMenu1.Items.Add do
begin
Caption := '剪切';
OnClick := CutText;
end;
with PopupMenu1.Items.Add do
begin
Caption := '粘贴';
OnClick := PasteText;
end;
// 创建两个 TMemo 对象
Memo1 := TMemo.Create(Self);
Memo2 := TMemo.Create(Self);
// 设置 PopupMenu 属性
Memo1.PopupMenu := PopupMenu1;
Memo2.PopupMenu := PopupMenu1;
// 设置 TMemo 的位置和大小
Memo1.Left := 10;
Memo1.Top := 10;
Memo1.Width := 200;
Memo1.Height := 100;
Memo2.Left := 10;
Memo2.Top := 120;
Memo2.Width := 200;
Memo2.Height := 100;
// 将 TMemo 添加到窗体中
Self.InsertControl(Memo1);
Self.InsertControl(Memo2);
end;
procedure TForm1.CopyText(Sender: TObject);
begin
// 复制选中的文本到剪贴板
if ActiveControl is TMemo then
TMemo(ActiveControl).CopyToClipboard;
end;
procedure TForm1.CutText(Sender: TObject);
begin
// 剪切选中的文本到剪贴板
if ActiveControl is TMemo then
TMemo(ActiveControl).CutToClipboard;
end;
procedure TForm1.PasteText(Sender: TObject);
begin
// 将剪贴板中的文本粘贴到当前焦点的 TMemo
if ActiveControl is TMemo then
TMemo(ActiveControl).PasteFromClipboard;
end;
这个例子演示了如何共享一个 TPopupMenu 的两个 TMemo 对象,并实现了复制、剪切和粘贴功能。在右键单击任一 TMemo 对象时,将弹出相同的菜单选项,用户可以选择相应的操作。
领取专属 10元无门槛券
手把手带您无忧上云