![]() |
Re: Eigenes Kontextmenü beim Webbrowser
Hallo Benjin,
super, dass du noch geantwortet hast, ich hatte mich für diesen Teil meines Projekts schon mit einer für mich recht schlechten Lösung (Popupmenü auf der Statusleiste) abgefunden und kann es so doch noch richtig lösen. :hello: Danke! Lorenz |
Re: Eigenes Kontextmenü beim Webbrowser
Ach, sowas gibt es auch ...
Also ich hatte auch mal dieses Problemchen und hatte mir dann über JavaScript den RechtsClick deaktiviert und darüber dann auch mein Menü anzeigen lassen. So ging es auch, nur durfte dabei der Benutzer nicht das JavaScript global deaktiviert haben :wall: |
Re: Eigenes Kontextmenü beim Webbrowser
Sieht auf den ersten Blick sehr kompliziert aus, ist es auch... :-D
Aber ist sehr einfach zu implementieren und funktioniert super. Und außerdem gehts ja da generell um "customizable twebbrowser" und nicht nur ums Kontextmenu. Ist v.a. auch nützlich wenns um Designfragen im TWebBrwoser geht. Mit den Klassen von ![]() Sind schon ziemlich nützlich diese Units. |
Re: Eigenes Kontextmenü beim Webbrowser
Beim TEmbeddedWB geht's auch einfach so:
Delphi-Quellcode:
uses
MSHTML_TLB; function TForm1.WebBrowser1ShowContextMenu(const dwID: Cardinal; const ppt: PPoint; const pcmdtReserved: IInterface; const pdispReserved: IDispatch): HRESULT; var myHTMLWindow2: IHTMLWindow2; oHTMLEvent: IHTMLEventObj; oHTMLDoc2: IHTMLDocument2; begin //next block gives access to the event object fired when the user //right-clicks inside the webBrowser control oHTMLDoc2 := EmbeddedWB1.Document as IHTMLDocument2; //interface to the displayed doc myHTMLWindow2 := oHTMLDoc2.parentWindow; //interface to the window that handles the events oHTMLEvent := myHTMLWindow2.event; //HERE is the event object if oHTMLEvent.ctrlKey = system.False then begin //if the Ctrl key is NOT pressed during right-click.. oHTMLEvent.returnValue := False; //...kills the default pop-up of IE Result := 0; //open my PopUp nemu at the absolute X and Y coordinates of the mouse PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y); end; end; procedure TForm1.Button1Click(Sender: TObject); begin EmbeddedWB1.Navigate('www.swissdelphicenter.com'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz