12

目前我有以下黑客:

procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
begin
    if (Key = Word('C')) and (Shift = [ssCtrl]) then
        HTMLViewer1.CopyToClipboard;
end;

是否有更明智/可维护的方式来启用从 htmlviewer 复制?我希望有一个我可以设置的属性,或者其他东西,因为必须执行上述操作似乎很愚蠢。TCustomEdit 的后代默认具有复制、粘贴和全选功能,但由于某种原因 htmlviewer 似乎没有以这种方式实现。

另一个问题是上述方法也没有考虑右键单击并选择“复制”

编辑:最后我选择用适当的上下文菜单替换上面的代码,按照本教程:http ://delphi.about.com/od/tmemotrichedit/a/richedit-popup.htm

4

1 回答 1

3

当用户按下 Ctrl-C 时,您可以做一些事情(即使用您自己的解决方案#1)

procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = Word('C')) and (Shift = [ssCtrl]) then
    HTMLViewer1.CopyToClipboard;
end;

或者您可以按照此处所述实现弹出菜单(即您自己的解决方案#2)

将标准上下文(弹出)菜单添加到 Delphi 的 TRichEdit

于 2011-06-27T02:21:18.140 回答