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;