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

时间:2011-05-05 00:42:49

标签: 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;

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

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

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

1 个答案:

答案 0 :(得分: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)

Add a Standard Context (popup) Menu to Delphi's TRichEdit