Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ereignis von OnDownloadComplete bei Browser-Instanz? (https://www.delphipraxis.net/42528-ereignis-von-ondownloadcomplete-bei-browser-instanz.html)

mlspider 20. Mär 2005 12:18


Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Hallo

Der Titel ist etwas unglücklich gewählt. Ich grüble nun schon seit Tagen darüber, wie man bei einer dynymisch erzeugten Webbrowser-Instanz, Ereignisse abfangen kann.

Ich habe also eine PageControl, auf der bei jeder Eingabe einer URL ein neues Tabsheet erzeugt und darauf eine neue Instanz von TWebbrowser angelegt wird. Gleichzeitig wird eine Ladeanimation gestartet.

Beispiel:

Delphi-Quellcode:
Animate1.Active := True;
 (PageControl1.ActivePage.Controls[0] as TWebBrowser).Navigate(ComboBox1.text);{navigiert zur eingegeben URL. Das ist noch kein Problem.}
Wie kann man nun das Ereignis OnDownloadComplete der neuen Instanz abfangen, um beispielsweise die Ladeanimation wieder zu stoppen.

Ich habe überhaupt keinen Plan.

Danke

mlspider 22. Mär 2005 15:27

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Hat keiner eine Idee???

Luckie 22. Mär 2005 15:28

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Dann musst du eben die entsprechenden Ereiginsse im Code zuweisen.

mlspider 22. Mär 2005 15:32

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Toll, leider habe ich keinen Ansatz. Könnte mir folgendes vorstellen:

Delphi-Quellcode:
(ADVPageControl1.ActivePage.Controls[0] as TWebBrowser).OnDownloadComplete :=Animate1.Active:=False;
Das führt aber logischerweise zu einem Fehler.

Trotzdem Danke, Luckie

Pr0g 22. Mär 2005 16:15

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Du musst folgende Prozedur anlegen:
Delphi-Quellcode:
procedure TForm1.MyWebbrowserDownloadComplete(Sender: TObject);
begin
  Animate1.Active:=False;
end;
und diese dem Eregnis dann beim dynamischen Erstellen der Webbrowserinstanz zuweisen:
Delphi-Quellcode:
MyWebbrowser := TWebBrowser.Create;
//weiterer Code
MyWebBrowser.OnDownloadComplete := MyWebbrowserDownloadComplete;
MfG Pr0g

mlspider 22. Mär 2005 16:30

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Ich bekomme das einfach nicht gebacken!!!! Mein bisheriger Code:

Delphi-Quellcode:
procedure TBrowser.NewWindow(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);
var
  Tabsheet: TTabsheet;
  Browser: TWebBrowser;
begin
  Button1Click(nil);
  TabSheet:= PageControl1.ActivePage;
  ppDisp:= (PageControl1.ActivePage.Controls[0] as TWebBrowser).DefaultInterface;
end;
Delphi-Quellcode:
procedure TBrowser.Button6Click(Sender: TObject);
begin
 Animate1.Active := True;
 (ageControl1.ActivePage.Controls[0] as TWebBrowser).Navigate(ComboBox1.text);
 ComboBox1.Items.Add(ComboBox1.Text);
//<--- und hier soll nach Laden der Seite die Animation wieder
//gestoppt werden.
end;

Pr0g 22. Mär 2005 17:04

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Hast du das gemacht, was ich oben erklärt habe? Wenn du dabei Probleme hast musst du schon was genauer werden. Einfach deinen aktuellel Code zu posten, bringt auch nichts ;)

toms 22. Mär 2005 17:11

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Delphi-Quellcode:

procedure WaitForBrowser(WB: TWebbrowser);
begin
  while (WB.ReadyState <> READYSTATE_COMPLETE)
    and not (Application.Terminated) do
  begin
    Application.ProcessMessages;
    Sleep(50);
  end;
end;


procedure TBrowser.Button6Click(Sender: TObject);
begin
  Animate1.Active := True;
  (PageControl1.ActivePage.Controls[0] as TWebBrowser).Navigate(ComboBox1.text);
  ComboBox1.Items.Add(ComboBox1.Text);
  WaitForBrowser(PageControl1.ActivePage.Controls[0] as TWebBrowser);
  //<--- und hier soll nach Laden der Seite die Animation wieder
  //gestoppt werden.
  Animate1.Active := False;
end;

mlspider 22. Mär 2005 17:19

Re: Ereignis von OnDownloadComplete bei Browser-Instanz?
 
Hy toms,

Auf diese Idee muß man erst mal kommen. So muß es ja funktionieren.

Danke


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