如何从THtmlViewer对象复制和粘贴?

Nic*_*ski 12 delphi contextmenu clipboard-interaction

目前我有以下黑客攻击:

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

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

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

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

Sam*_*Sam 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;
Run Code Online (Sandbox Code Playgroud)

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

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