Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wort im Browser markieren -> Rechtsklick -> Programm starten (https://www.delphipraxis.net/52793-wort-im-browser-markieren-rechtsklick-programm-starten.html)

bioser 3. Sep 2005 22:48


Wort im Browser markieren -> Rechtsklick -> Programm s
 
Hallo,

wenn jemand ein Wort in einem Browser markiert und dann
mit einem Rechtsklick das Kontextmenü des Browsers öffnet,
soll hier ein Eintrag für mein Programm erscheinen.
Wie kann man das machen ?
Danke schon mal.

Beste Grüße
bioser

marabu 4. Sep 2005 07:34

Re: Wort im Browser markieren -> Rechtsklick -> Progra
 
Hi,

hast du dich für den EmbeddedWebBrowser erwärmen können? Dann ist es recht einfach. Ordne deiner Browser-Komponente WebBrowser ein PopupMenu BrowserMenu zu und schreibe Code für das Ereignis OnShowContextMenu() - hier ein wenig sceleton code aus einem Editor von mir:

Delphi-Quellcode:
function TEditForm.WebBrowserShowContextMenu(const dwID: Cardinal;
  const ppt: PPoint; const pcmdtReserved: IUnknown;
  const pdispReserved: IDispatch): HRESULT;
begin
  // die Bedingung wird nicht ausreichen und evtl.
  // willst du hier noch MenuItems erzeugen...
  if dwID in [CONTEXT_MENU_TEXTSELECT, CONTEXT_MENU_CONTROL] then begin
    Result := S_OK;
    ClientToScreen(ppt^);
    BrowserMenu.Popup(ppt.x, ppt.y);
  end else
    Result := S_FALSE;
end;
Grüße vom marabu

bioser 4. Sep 2005 15:04

Re: Wort im Browser markieren -> Rechtsklick -> Progra
 
hi, ich habe die Kompo installiert, aber ich möchte ja das Pop-Up-Menü z.B. des Internet Explorers oder sonstigen Browsern ergänzen.

marabu 4. Sep 2005 16:54

Re: Wort im Browser markieren -> Rechtsklick -> Progra
 
Hi,

zumindest für die (Embedded-)WebBrowser-Komponente kann ich dir Hoffnung machen. Ich habe zwar keinen fertigen Code zur Hand, aber vom Prinzip her geht es so: Im event handler OnShowContextMenu gibst du nicht dein eigenes, sondern das default context menu aus, nachdem du es vorher um deinen Eintrag erweitert hast. Das default menu steht als resource mit der ID 24641 in SHDOCLC.DLL bereit. Die Manipulation und Ausgabe geschieht zweckmäßigerweise über das WIN32 API (LoadLibrary, LoadMenu, GetMenuItemCount, InsertMenuItem).

Bei der Mozilla-Komponente wirst du wahrscheinlich andere, evtl aber ähnliche Wege gehen müssen.

Grüße vom marabu

bioser 5. Sep 2005 09:50

Re: Wort im Browser markieren -> Rechtsklick -> Progra
 
danke, ich habe es anders gelöst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz