Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何从THtmlViewer对象复制和粘贴?_Delphi_Contextmenu_Clipboard Interaction - Fatal编程技术网

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

Delphi 如何从THtmlViewer对象复制和粘贴?,delphi,contextmenu,clipboard-interaction,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复制?我希望有一个属性,我可以

目前,我有以下问题:

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似乎没有以这种方式实现

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


编辑:最后,我选择用适当的上下文菜单替换上述代码,如本教程所示:

当用户按下Ctrl-C ie时,您可以执行一些操作。使用您自己的解决方案1

procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = Word('C')) and (Shift = [ssCtrl]) then
    HTMLViewer1.CopyToClipboard;
end;
或者,您可以实现一个弹出菜单,如这里所述,即您自己的解决方案2


什么是THTMLViewer?它不是标准VCL组件之一,至少在DelphiXE Professional或D2007 Pro中不是。别介意它是PBear组件之一——把评论留给其他人看。有两条建议:第一,不要称别人写的东西足够好,然后让你免费使用愚蠢的东西——你可以自己写,让它变得聪明。第二,你看了来源了吗?THTMLViewer是否从TCustomEdit下降?如果是这样,你可以自己创建一个后代并发布任何需要的东西;如果没有,与TCustomEdit的功能进行比较是没有意义的。谢谢您的回复。我确实查看了源代码,但它还没有实现这一点,我认为它应该在某种程度上与web浏览器一样工作,但我想不是。我不喜欢重新发明轮子,但我现在已经这样做了。就我而言,Delphi是为黑客而设计的,所以我将保持原样。@Warren,Ctrl+C与Ctrl+Insert一样是标准快捷方式,如果不是更多的话。微软关于这个问题的一些文档甚至没有提到插入键。你能以一种有助于他人的方式回答你自己的问题吗?如果您这样做,您可以选择您的作为正确答案。这可能看起来很奇怪,但这是处理此类情况的首选方法。ps选项2要好得多,尤其是在维护方面。谢谢