AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebBrowser: Link mit standard Browser öffnen ?
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser: Link mit standard Browser öffnen ?

Ein Thema von wlfmario · begonnen am 31. Mär 2006 · letzter Beitrag vom 31. Mär 2006
Antwort Antwort
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#1

TWebBrowser: Link mit standard Browser öffnen ?

  Alt 31. Mär 2006, 20:03
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;
Mario
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: TWebBrowser: Link mit satandart Browser öffnen ?

  Alt 31. Mär 2006, 20:06
Hallo!

Im OnBeforeNavigate2 kannst du Cancel auf True setzen und dann via ShellExecute die uebergebene URL im Standard Webbrowser starten
Thomas
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#3

Re: TWebBrowser: Link mit standart Browser öffnen ?

  Alt 31. Mär 2006, 20:52
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:
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;
Leider hat der TWebBrowser kein OnClick.
Mario
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: TWebBrowser: Link mit standart Browser öffnen ?

  Alt 31. Mär 2006, 21:07
Du konntest das mit einer Boolean Variable machen.

Anstatt WebBrowser.Navigate('about:blank'); rufst du dann WebbrowserNavigate(Webbrowser, 'about:blank') auf.

Delphi-Quellcode:
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;
PS: Standard schreibt man mit d
Thomas
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#5

Re: TWebBrowser: Link mit standard Browser öffnen ?

  Alt 31. Mär 2006, 21:47
Super Danke !

ich habe mir mal das Script angeguckt, und an meinen Code angepasst.
Klappt Super.

Jetzt klappt das auch mit den Standard Browser
Mario
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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