Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi mehrere TwebBrowser zur laufzeit erzeugt von wem kommt event (https://www.delphipraxis.net/134982-mehrere-twebbrowser-zur-laufzeit-erzeugt-von-wem-kommt-event.html)

BBoy 2. Jun 2009 17:18


mehrere TwebBrowser zur laufzeit erzeugt von wem kommt event
 
Ich habe mir einen browser programmiert mit mehreren Tabs. Wenn ein neues tab geöffnet wird, wird eine TwebBrowser erzeugt, dass sieht so aus bei mir:
Delphi-Quellcode:
procedure TForm4.CreateNewTabBrowser(Url: string);
begin
  TabSheetEx := TTabSheetEx.Create(PageControl1);
  with TabSheetEx do
  begin
    PageControl := PageControl1;
    EWB := TEmbeddedWB.Create(TabSheetEx);
    Caption := 'Loading...';
    TOleControl(TabSheetEx.EWB).Parent := TabSheetEx;
    PageControl1.ActivePage := TabSheetEx;
    with EWB do
    begin
      LoadSettings;
      Align := alClient;
      Visible := True;
      DownloadOptions := [DownloadAndIgnoreCache];
      OnStatusTextChange := StatusTextChangeEvent;
      OnNewWindow2 := NewWindow2Event;
      OnDownloadComplete := DownloadCompleteEvent;
      OnCommandStateChange := CommandStateChangeEvent;
      OnBeforeNavigate2 := BeforeNavigate2;
      OnDocumentComplete := DocumentComplete;
      Go(URL);
    end;
  end;
end;
nun möchte ich im event OnDocumentComplete den html text phrasen und auf bestimmten text reagieren. ich frage mich nur wie ich das anstellen soll. Normalerweise habe ich das immer so gemacht:
Delphi-Quellcode:
  html2.Clear;
  wb2.SaveFrameToStrings(0,html2);
  if pos('login',html2.text) <> 0 then begin
    Showmessage('Login gefunden');
  end;
Aber wie kann ich das bei den einzelnen zur laufzeit erzeugten TWebBrowser machen? Die kann ich ja nicht direkt mit WebBrowser1, WebBrowser2 usw ansprechen.

mkinzler 2. Jun 2009 17:21

Re: mehrere TwebBrowser zur laufzeit erzeugt von wem kommt e
 
Verwalte diese in einem array oder besser einer ObjektListe

BBoy 2. Jun 2009 17:46

Re: mehrere TwebBrowser zur laufzeit erzeugt von wem kommt e
 
Ein Beispielcode wäre hilfreich, da ich zum ersten mal komponenten zur Laufzeit erstelle ist meine wissen darüber sehr begrenzt.

Satty67 2. Jun 2009 17:51

Re: mehrere TwebBrowser zur laufzeit erzeugt von wem kommt e
 
Die Objekt-Variable "EWB" nicht jedesmal überschreiben, sondern in einem Array oder Objekt-Liste merken.

TObjektList ist so einfach wie eine TStringList, also mit Add/IndexOf etc. zu bearbeiten.

BBoy 2. Jun 2009 19:23

Re: mehrere TwebBrowser zur laufzeit erzeugt von wem kommt e
 
Habe es nun hinbekommen, meine procedure sieht nun so aus und funktioniert prima. Die lösung war das TEmbeddedWB(asender).
Delphi-Quellcode:
procedure Tform4.DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
  html2.Clear;
  TEmbeddedWB(asender).SaveFrameToStrings(0,html2);
  if pos('login',html2.text) <> 0 then begin
    Showmessage('Login gefunden');
  end;
end;


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