AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebbrowser, Link im gleichen Fenster öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

TWebbrowser, Link im gleichen Fenster öffnen

Ein Thema von Matze · begonnen am 20. Jan 2004 · letzter Beitrag vom 21. Jan 2004
Antwort Antwort
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

TWebbrowser, Link im gleichen Fenster öffnen

  Alt 20. Jan 2004, 20:31
Hi!

Ich will einen Link, der normalerweise in einem neuen Fenster geöffnet wird, in meinem TWebbrowser anzeigen, ohne eine neue Form, etc. zu erzeugen, da die Form aufwenid gestaltet ist.

Mit Frames kann ich nicht umgehen.

Diesen Laink hier hab ich gefunden, er ist aber auch nicht das Wahre


Kann mir jemand helfen?
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#2

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 12:33
Ich hätte eine Lösung für Dich, die zwar nicht besonders Elegant ist, aber funktioniert:

1. Du musst als erstes die URL des Links rausbekommen.
Dazu legst Du einen zusätzlichen, versteckten Browser auf Deine Form und
übergibst im WebBrowser1NewWindow Event des Hauptbrowsers die ppDisp
Variablen an diesen zweiten Webbrowser:

Code:

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
 ppDisp := WebBrowser2.Application;
end;
Wenn dann diese URL im zweiten Webbrowser geladen wird hast Du seine URL
und kannst zum einen diese an den Hauptwebbrowser übergeben und zum anderen
den Ladevorgang des zweiten Webbrowsers abbrechen:

Code:

procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
BEGIN
    Webbrowser1.navigate(URL)
    cancel := TRUE;
END;

Naja wie gesagt, ist sicher nicht die beste Lösung aber es funzt.
Vielleicht noch einen Tipp, wenn Du aus der ppDisp die URL rausbekommen
würdest, dann bräuchtest Du gar keinen 2ten Webbrowser, aber wie
das geht weiß ich nicht.

MFG

Evian
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 13:41
OK, danke.
Es geht tatsächlich

Falls es jedoch die Möglichkeit gibt, dies ohne einen 2. TWebBrowser zu realisieren, dann wäre mir das etwas lieber aber so geht's im Moment auch, nur hat man die doppelte Ladezeit
  Mit Zitat antworten Zitat
Benutzerbild von CTV
CTV

Registriert seit: 20. Jan 2004
Ort: Zug CH
83 Beiträge
 
Delphi 7 Professional
 
#4

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 14:36
so müsste das mit einem gehen:
Delphi-Quellcode:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
var
  NewWindow: TForm1;
begin
  // Eine neue Instanz wird erstellt
  NewWindow := TForm1.Create(self);

  NewWindow.Show;
  ppDisp := NewWindow.Webbrowser1.DefaultDispatch;
end;
Greetz Cyrus
Wer glaub er ist, hört auf zu werden!
Delphi Rulez!!!
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#5

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 14:41
Zitat von CTV:
so müsste das mit einem gehen:
Delphi-Quellcode:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
var
  NewWindow: TForm1;
begin
  // Eine neue Instanz wird erstellt
  NewWindow := TForm1.Create(self);

  NewWindow.Show;
  ppDisp := NewWindow.Webbrowser1.DefaultDispatch;
end;
Greetz Cyrus
Du musst auf die Frage achten! Er wollte das ganze eben nicht auf einer neuen Form, sondern im Webbrowser auf der (ersten)Hauptform.
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#6

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 14:43
Zitat von Matze:
nur hat man die doppelte Ladezeit
nein keine Doppelte Ladezeit, denn in dem Moment wo Du die URL hast, wird der Ladevorgang abgebrochen!

Code:

Webbrowser1.navigate(URL)
    cancel := TRUE;
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 14:44
Cool!

Nur wird die Form bei mir 2x erstellt, komisch
  Mit Zitat antworten Zitat
Benutzerbild von CTV
CTV

Registriert seit: 20. Jan 2004
Ort: Zug CH
83 Beiträge
 
Delphi 7 Professional
 
#8

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 14:49
Dan würd ichs so machen:

Zu erst muss man die Variable newwindow global deklarieren also oben bei implementation und nicht in der procedure
Delphi-Quellcode:
implementation
var
newwindow:TForm1;
Nun wird die Procedure vom alten post so umgeschrieben:

Delphi-Quellcode:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);

begin
NewWindow := TForm1.Create(self);
ppDisp := NewWindow.Webbrowser1.DefaultDispatch;
newwindow.WebBrowser1.OnBeforeNavigate2:=losgehts;
end;
Jetzt schreiben wir uns zuletzt die losgehts procedue:
Delphi-Quellcode:
procedure TForm1.losgehts(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
webbrowser1.Navigate(url);
end;
Ich denke so sollte es laufen

Greetz Cyrus
Wer glaub er ist, hört auf zu werden!
Delphi Rulez!!!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: TWebbrowser, Link im gleichen Fenster öffnen

  Alt 21. Jan 2004, 18:01
Großartig!!

Geht einwandfrei!

Es gibt zwar beim Beenden noch ne kleine Exception, aber das krieg ich bestimmt noch hin

Vielen Dank!
  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 19: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