Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Twebbrowser Onnewwindow2 Problem (https://www.delphipraxis.net/98574-twebbrowser-onnewwindow2-problem.html)

dtrace 29. Aug 2007 10:34


Twebbrowser Onnewwindow2 Problem
 
Hallo,
ich habe ein Problem. Und zwar arbeite ich gerade an meinem eigenem Webbrowser. Dieser Webbrowser unterstützt das Tabbing Browsing.

Zu meinm Problem: Es gibt z.B. Links auf Websites die im Firefox Browser in einem weiteren Tab angezeigt werden, dass funktioniert bei mir auch. Aber es gibt auch seiten, die nicht im Tab sondern in einem neuen Fenster aufgebaut werden...wie erkenne ich das. Denn bei mir kommt ein OLE Object Fehler.

hier mein Code

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

begin
if self.PopUpBlock then
begin
 ppDisp := nil;
 Cancel := true;
end else
begin
 try
   Cancel := false;
   NewTab('About:Blank','Zurfo - Web');
   tab.ActivePage.Show;
   Wb := GetCurrentWb;  //ermitteln den aktiven Webbrowser Controll...
   

   WaitForBrowser(WB);
 
   ppdisp := WB.Application;
   WaitForBrowser(WB);


 except on E: Exception do begin end;

 end;


 end;
end;

marabu 29. Aug 2007 10:45

Re: Twebbrowser Onnewwindow2 Problem
 
Hallo,

bei mir würde das eher so aussehen:

Delphi-Quellcode:
begin
  // ...
  ppDisp := WB.DefaultDispatch;
  // ...
end;
Grüße vom marabu

dtrace 29. Aug 2007 10:50

Re: Twebbrowser Onnewwindow2 Problem
 
Ich habe das jetzt so gemacht wie du,
bei mir wird jetzt im zweiten Tab ein Fenster angezeigt, wenn ich haber jetzt wieder auf das erste Tab klicke, kommt die Fehlermeldung: Could not obtain OLE Control Window handle

dtrace 29. Aug 2007 11:16

Re: Twebbrowser Onnewwindow2 Problem
 
Niemand eine Idee?

marabu 29. Aug 2007 12:29

Re: Twebbrowser Onnewwindow2 Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Dennis,

der Fehler steckt bestimmt in dem Code, den du nicht zeigst. Zumindest kann ich den Fehler nicht nachstellen.

Freundliche Grüße

dtrace 29. Aug 2007 13:05

Re: Twebbrowser Onnewwindow2 Problem
 
Also hier ist der Code um ein neues Tab zu erstellen:

Delphi-Quellcode:
procedure TFMain.NewTab(URL, Caption: String);
 var //WB: TWebbrowser;
     TS: TadvOfficePage;//TTabExtsheet;
     BT: TTeSpeedButton;
     PA: TTePanel;
     LA: TTeLabel;
     CB: TTecheckbox;
begin


  Tab.AddAdvPage(Caption);
  Tab.ActivePageIndex := tab.AdvPageCount-1;
  TS := Tab.ActivePage;

  TS.Parent := Tab;

  TS.Caption := Caption;


   Tab.ActivePage := TS;

   WB := TEmbeddedWB.Create(ts);


   //setze Webbrowser in Tabsheet
   TControl(WB).Parent := TS;

hier ist die Methode um den aktuellen Browser-Controll zu ermitteln:

Delphi-Quellcode:
function TFMain.getCurrentWB: TEmbeddedWB;
begin

  Result := nil;
  with Tab do
    if ActivePage.ControlCount > 0 then
    begin
      if ActivePage.Controls[0] is TEmbeddedWB then
      begin
        Result := (TEmbeddedWB(ActivePage.Controls[0]));
      end else
        Result := Webbrowser1;
    end;
end;

dtrace 29. Aug 2007 13:06

Re: Twebbrowser Onnewwindow2 Problem
 
var WB: TembeddedWB habe ich als global deklariert.

dtrace 29. Aug 2007 13:20

Re: Twebbrowser Onnewwindow2 Problem
 
Mit deinem Demo Projekt kommt auch Die Fehlermeldung, sobald ich zwischen den Tabs wechsel.
Der Fehler tritt z.B. auf, wenn ich über die 1un1 Website eine Mail schreiben möchte oder wenn ich auf meine Bank "Comdirect" auf mein Konto gucken möchte :(

dtrace 29. Aug 2007 13:41

Re: Twebbrowser Onnewwindow2 Problem
 
Ich glaube das der TWebbrowser aus irgendeinem Grund zerstört wird...mehr weiß ich zur Zeit nicht


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