![]() |
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; |
Re: Twebbrowser Onnewwindow2 Problem
Hallo,
bei mir würde das eher so aussehen:
Delphi-Quellcode:
Grüße vom marabu
begin
// ... ppDisp := WB.DefaultDispatch; // ... end; |
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 |
Re: Twebbrowser Onnewwindow2 Problem
Niemand eine Idee?
|
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 |
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; |
Re: Twebbrowser Onnewwindow2 Problem
var WB: TembeddedWB habe ich als global deklariert.
|
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 :( |
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