2011-05-05 4 views
12

현재 다음과 같은 해킹이 있습니다.THtmlViewer 객체에서 어떻게 복사하고 붙여 넣기합니까?

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

THTMLViewer 란 무엇입니까? 표준 VCL 구성 요소 중 하나가 아닙니다 (적어도 DelphiXE Professional 또는 D2007 Pro에서는 제외). 다른 사람들이 볼 수있는 의견을 남기는 PBear 구성 요소 중 하나입니다.) –

+1

두 가지 제안 : 첫째, 물건을 사람들이 쓸만 큼 친절하게 말하지 말고 자유로운 "바보 같은"것에 사용하게하십시오. 언제나 할 수 있습니다. 대신 자신의 글을 쓰고 "스마트하게"만드십시오. 둘째, 출처를 보았습니까? THTMLViewer는 TCustomEdit에서 내려 갔습니까? 그렇다면 자손을 직접 만들고 필요한 부분을 게시 할 수 있습니다. 그렇지 않은 경우 TCustomEdit의 기능을 비교하는 것은 의미가 없습니다. –

+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

+0

ps 옵션 2가 특히 유지 보수 측면에서 훨씬 좋습니다. 감사 –