Come si copiano e incolla da un oggetto Thtmlviewer?
-
28-10-2019 - |
Domanda
Al momento ho il seguente hack:
procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = Word('C')) and (Shift = [ssCtrl]) then
HTMLViewer1.CopyToClipboard;
end;
Esiste un modo più sensato/mantenibile per consentire la copia da un HTMLVIEWER? Spero che ci sia una proprietà che posso impostare, o qualcosa del genere, perché dover fare quanto sopra sembra stupido. I discendenti di TCustomedit hanno copia, incolla e selezionati per impostazione predefinita, ma Htmlviewer per qualche motivo non sembra essere implementato in questo modo.
Un altro problema è che anche il metodo sopra non tiene conto del tasto destro del mouse e della selezione di "copia"
EDIT: Alla fine ho scelto di sostituire il codice sopra con un menu contestuale corretto, secondo questo tutorial: http://delphi.about.com/od/tmemotrichedit/a/richedit-popup.htm
Soluzione
Potresti fare qualcosa quando l'utente preme CTRL-C (cioè utilizzare la tua soluzione n. 1)
procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key = Word('C')) and (Shift = [ssCtrl]) then
HTMLViewer1.CopyToClipboard;
end;
Oppure potresti implementare un menu popup come descritto qui (cioè la tua soluzione n. 2)
Aggiungi un menu di contesto standard (popup) al Trichedit di Delphi