![]() |
TWebBrowser: Link mit standard Browser öffnen ?
Hallo zusammen,
ich habe hier im Forum eine Tolle Procedure gefunden die mir Mails in HTML im TWebBrowser anzeigt. Beim testen habe ich gemerkt, das wenn ich auf einen Link klicke, die Seite im TWebBrowser geladen wird. Wie kann ich das verhindern, oder besser wie kann ich das Realisieren, das die Seite im Standard Browser angezeigt wird. Hier mal die Procedure die ich gefunden habe.
Delphi-Quellcode:
procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
//------------------------------------------ // HTML Seiten anzeigen //------------------------------------------ var sl: TStringList; ms: TMemoryStream; begin WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages; if Assigned(WebBrowser.Document) then begin sl := TStringList.Create; try ms := TMemoryStream.Create; try sl.Text := HTMLCode; sl.SaveToStream(ms); ms.Seek(0, 0); (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)); finally ms.Free; end; finally sl.Free; end; end; end; |
Re: TWebBrowser: Link mit satandart Browser öffnen ?
Hallo!
Im OnBeforeNavigate2 kannst du Cancel auf True setzen und dann via ShellExecute die uebergebene URL im Standard Webbrowser starten |
Re: TWebBrowser: Link mit standart Browser öffnen ?
Danke das ging ja echt Fix.
Leidr habe ich jetzt das Problem, das wenn ich eine Mail im HTML empfange, soll sie im TWebBrowser angezeigt werden. nur wenn der benutzer auf einen Link in der Mail Clickt, soll sich der Standart Browser öffnen. hier mla mein Code.
Delphi-Quellcode:
Leider hat der TWebBrowser kein OnClick.
procedure THauptForm.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin Cancel := True; ShellExecute(Application.Handle, 'open', PChar(url), nil, nil, SW_ShowNormal); end; |
Re: TWebBrowser: Link mit standart Browser öffnen ?
Du konntest das mit einer Boolean Variable machen.
Anstatt WebBrowser.Navigate('about:blank'); rufst du dann WebbrowserNavigate(Webbrowser, 'about:blank') auf.
Delphi-Quellcode:
PS: Standard schreibt man mit d :!:
var
FIsStartPage : Boolean; procedure WebbrowserNavigate(Webbrowser: TWebbrowser, const URL: string); begin FIsStartPage := True; Webbrowser.Navigate(URL); FIsStartPage := False; end; procedure THauptForm.WebBrowser1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin if (not FIsStartPage) then begin Cancel := True; ShellExecute(Application.Handle, 'open', PChar(url), nil, nil, SW_ShowNormal); end; end; |
Re: TWebBrowser: Link mit standard Browser öffnen ?
Super Danke !
ich habe mir mal das Script angeguckt, und an meinen Code angepasst. Klappt Super. Jetzt klappt das auch mit den Standard Browser :idea: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 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