Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi URL in neuem Browser öffnen. (https://www.delphipraxis.net/14997-url-neuem-browser-oeffnen.html)

Evian 20. Jan 2004 13:08


URL in neuem Browser öffnen.
 
Mit dem Code:

Code:
 
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
NewWindow: TForm1;
begin // Instanzen erzeugen
NewWindow := TForm1.Create(self);
NewWindow.Show;
ppDisp := NewWindow.Webbrowser1.DefaultDispatch;
end;


, lassen sich z.B. Popups in einer neuen Instanz der eigenen Browserapplikation anzeigen, aber dabei wurde nur die Form auf der sich der Twebbrowser befindet "geklont". Ich möchte aber, dass wie beim IE mein Browser dann noch mal gestartet wird und die URL in dieser, noch mal gestartentten Browseraplikation geöffnet wird.

Nun meine Frage, ist das überhaupt so leicht machbar und wenn ja, hat jemand vielleicht ein Codebeispiel bzw. einen Tip wie ich das angehen könnte?

DP-Maintenance 20. Jan 2004 13:11

DP-Maintenance
 
Dieses Thema wurde von "Luckie" von "Programmieren allgemein" nach "Internet / IP / LAN" verschoben.
Gehört nach Internet.

Evian 20. Jan 2004 13:52

Re: URL in neuem Browser öffnen.
 
Ok, hat sich erledigt... weiß jetzt eine Möglichkeit!

Luckie 20. Jan 2004 13:57

Re: URL in neuem Browser öffnen.
 
Zitat:

Zitat von Evian
Ok, hat sich erledigt... weiß jetzt eine Möglichkeit!

Und wie lautet die? :roll: Es gehört eigentlich zum "guten Ton" diese dann auch mitzuteilen. Immerhin hat sich wohl der ein oder andere wegen dir mit der Frage beschäfftigt.

Evian 20. Jan 2004 16:08

Re: URL in neuem Browser öffnen.
 
Naja das Problem ist, dass die Lösung wirklich nicht sehr elegant ist, aber ich werde sie Mitteilen... vielleicht hat ja noch jemand eine andere, bessere Idee.

Man nutzt dazu einen zweiten, gehideten TWebbrowser.

Im NewWindow Event des ersten Webbrowsers wird dann die Anzeige
des neuen Fensters an den zweiten Webbrowser übergeben, damit
man die URL des neuen Fensters bekommen kann.

Code:

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
 ppDisp := WebBrowser2.Application;
end;

Beim BeforeNavigate Event des 2ten WebBrowsers wird dann die Browser exe n
och mal gestartet und dabei die URL übergeben. Und auch der Browsvorgang des
2ten Webbrowser abgebrochen.

Code:

procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
 var newinstance : STRING;
BEGIN
    newinstance := url;
    url := '';
    cancel := TRUE;
    ShellExecute(handle,'open',Pchar(paramstr(0)),Pchar(newinstance),'',SW_SHOWNORMAL);
END;

Zum Schluss muss man noch in den FormCreate Event, die Übernahme der Url einfügen:

Code:

procedure TForm1.FormCreate(Sender: TObject);
begin
if paramstr(1) <> '' then webbrowser1.Navigate(paramstr(1));
webbrowser2.Hide;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 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