Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: oncontextmenu False setzen

  Alt 15. Mär 2009, 09:37
Hallo,

Mit der THtmlListener Komponente von bsalsa.com geht das ganz einfach.
Die Komponente funktioniert auch mit TWebbrowser oder allgemein wenn ein IHTMLDocument2 vorliegt.

Setze THtmlListener.SinkKind: skDocument
Füge ein OnContextMenu Handler hinzu und erzeuge dafür ein Event.
Eine private Variable: HubLink: IHubLink;

HTML Listener verbinden:
Delphi-Quellcode:
procedure TForm1.ConnectHtmlListener(ASender: TObject);
var
  Doc: IHTMLDocument2;
  CPC: IConnectionPointContainer;
begin
  if not Assigned(HubLink) then
  begin
    Doc := GetFrameDoc(EmbeddedWB1.Doc2, 'oben');
    if Doc <> nil then
    begin
      Doc.QueryInterface(IConnectionPointContainer, CPC);
      if Assigned(CPC) then
        HubLink := HtmlListener1.Connect2(CPC);
    end;
  end;
end;
Oncontextmenu Handler:

Delphi-Quellcode:
procedure TForm1.HtmlListener1HandlersOncontextmenuHandle(Sender: TObject;
  Event: IHTMLEventObj);
begin
  // Contextmenu deaktivieren:
   Event.cancelBubble := True;
   Event.ReturnValue := False;
end;
Thomas
  Mit Zitat antworten Zitat