![]() |
TWebbrowser URL als Parameter übergeben
Hallo.
Habe folgendes Problem. Wenn ich den TWebbrowser Links im Self-Formular öffnen lasse klappt das wunderbar, allerdings werden diese ohne eigenen Taskbarbutton erstellt. Das lässt sich zwar mit "Param..." ändern, ist aber voller Bugs. Also ist meine 2. Idee die zu öffnende URL mittels Parameter an das Programm via ShellExecute zu übergeben. # Problem: Wie komme ich an die URL des (per rechtsmaustaste-auf-link -> in neuem Fenster öffnen) zu öffnenden Links? Hab es mit dem ObBeforeNavigation2-Event versucht, dieser wirft mir aber leider nur die Aktuelle URL aus, sobald ich diese in neuem fenster öffnen lassen will, denn dies muss ja über OnNewWindow.. passieren. Bin echt Ratlos...will doch nur vernünftiges öffnen eines neuen fenstern mit einer URL haben welches in einem NEUEN Browser dargestellt wird. Für sachdienliche Hinweise wäre ich sehr dankbar. Gruß, die kleine dicke Katze. |
Re: TWebbrowser URL als Parameter übergeben
ParamStr(1) ?
|
Re: TWebbrowser URL als Parameter übergeben
Ja...das weiss ich auch...aber wie krieg ich die URL aus dem TWebbrowser?
|
Re: TWebbrowser URL als Parameter übergeben
gelöscht- weil es Unsinn war.
Grüße Klaus |
Re: TWebbrowser URL als Parameter übergeben
*push* Hat denn sonst keiner mehr ne Idee?
|
Re: TWebbrowser URL als Parameter übergeben
Ein wenig gesurft und eine Menge gefunden - suchen lohnt!
![]() ![]() ![]() ![]() Kannst ja mal darin stöbern, schaut recht gut aus. Grüße Klaus |
Re: TWebbrowser URL als Parameter übergeben
Herzlich willkommen in der Delphi-PRAXiS, Garfield.
Dein Wunsch lässt sich besonders leicht umsetzen, wenn du statt des WebBrowsers die erweiterte Komponente ![]() Freundliche Grüße vom marabu |
Re: TWebbrowser URL als Parameter übergeben
Hallo.
Erstmal danke für die Tipps...hab das Programm jetzt auf TEmbeddedWB umgestellt...allerdings habe ich immernoch probleme die URL aus dem OnShowContextMenu Event auszulesen. Wenn ichs richtig verstanden habe ist due URL in der Dispatch Variable...aber wie konvertiere ich diese in einen brauchbaren URL-STRING? (ich weiss...is bestimmt ne doofe frage) :-) |
Re: TWebbrowser URL als Parameter übergeben
Ein möglicher Ansatz wäre:
Delphi-Quellcode:
Die Funktion wird mit ExtractLink(pdispReserved as IHTMLElement) aufgerufen und liefert in der gezeigten Version einen URL, wenn einer vorhanden ist und zwar auch dann, wenn es sich um einen image link handelt. Geht auch ohne Rekursion.
uses
Variants, StrUtils, MSHTML; function ExtractLink(e: IHTMLElement): String; begin if AnsiIndexText(e.tagName, ['a']) = 0 then Result := VarToStr(e.getAttribute('href', 0)) else if Assigned(e.parentElement) then Result := ExtractLink(e.parentElement) else Result := ''; end; marabu |
Re: TWebbrowser URL als Parameter übergeben
Aber wo hab ich die URL in einer variablen vom Typ IHTMLElement?
|
Re: TWebbrowser URL als Parameter übergeben
Aus meinem Testcode:
Delphi-Quellcode:
marabu
function TDemoForm.WebBrowserShowContextMenu(const dwID: Cardinal;
const ppt: PPoint; const pcmdtReserved: IInterface; const pdispReserved: IDispatch): HRESULT; var e: IHTMLElement; href: String; begin Result := S_FALSE; href := ExtractLink(pdispReserved as IHTMLElement); if href <> '' then begin Result := S_OK; LinkCopyAction.Hint := href; WebMenu.Popup(ppt.X, ppt.Y); end; end; |
Re: TWebbrowser URL als Parameter übergeben
oder .document.URL sieh auch bei
![]() |
Re: TWebbrowser URL als Parameter übergeben
Ich ging davon aus, dass Garfield mit der Maus auf einen Link zeigen möchte und diesen über ein eigenes Kontextmenü "In neuem Fenster öffnen" will.
marabu |
Re: TWebbrowser URL als Parameter übergeben
Hallo Achim meine Antwort bezog sich nur auf die Frage:
Zitat:
|
Re: TWebbrowser URL als Parameter übergeben
Hallo Markus,
ich bin kein Jäger - bin nur ein alter Vogel. Ich freue mich über jeden, der meinen Quatsch querliest. Das wäre ja schlimm wenn es in der DP feste Abonnements geben würde. Freundliche Grüße marabu |
Re: TWebbrowser URL als Parameter übergeben
Juchuu hat geklappt. Mit ner global definierten "href" variable kann ich so die Url an ein ShellExecute übergeben. 1000-Dank!!
|
Re: TWebbrowser URL als Parameter übergeben
Tja ich habe nun leider genau das gleiche problem ......
nur frage ich mich leider nun wie genau du die href variable her bekommst ..... hat da jemand eine idee wie ich diese erstelle !? mfg einfach111 (thx schonmal im vorraus ) |
Re: TWebbrowser URL als Parameter übergeben
Hallo,
mir scheint, dass Garfield die Variable href an einer Stelle (global) deklariert hat, auf die er auch außerhalb seines event handlers noch zugreifen kann. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 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