Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you copy and paste from a THtmlViewer object?

At the moment I have the following hack:

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

Is there a more sensible/maintainable way of enabling copying from an htmlviewer? I am hoping that there is a property that I can set, or something, because having to do the above seems stupid. Descendants of TCustomEdit have copying, pasting and select-all-ing by default, but htmlviewer for some reason doesnt seem to be implemented this way.

Another problem is that the above method also doesnt account for right-clicking and selecting "copy"

EDIT: In the end I chose to replace the above code with a proper context menu, as per this tutorial: http://delphi.about.com/od/tmemotrichedit/a/richedit-popup.htm

like image 806
Nicholas Grasevski Avatar asked May 05 '11 00:05

Nicholas Grasevski


1 Answers

You could do something when the user presses Ctrl-C (ie. use your own solution #1)

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

or you could implement a popup menu as described here (ie. your own solution #2)

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

like image 177
Sam Avatar answered Sep 29 '22 12:09

Sam