Creating TWebBrowser in Runtime with Delphi

I have a TWebBrowser object that is created at runtime and used in the background, that is, it is not displayed. The problem is that events like OnDocumentComplete do not work or do not fire in Delphi2009. Any tips?

procedure TfrmMain.FormCreate(Sender: TObject); begin FWebBrowser:= TWebBrowser.Create(Self); FWebBrowser.RegisterAsBrowser:= True; FWebBrowser.OnDocumentComplete:= WhenDocIsCompleted; end; procedure TfrmMain.WhenDocIsCompleted(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin ShowMessage('Doc is completed!'); end; 

Is there a difference between Navigate and Navigate2? How to enable cookies here?

Thanks in advance.

+4
source share
5 answers
 TWinControl(FWebBrowser).Parent := Form1; // Parent property is read-only unless cast 
+3
source

You may have this problem because TWebBrowser internally works closely with the parent form descriptor to receive messages sent from windows. Try using a hidden form with TWebBrowser (possibly also created runtime) and / or investigate if the HandleAllocated and HandleNeeded methods can help you.

+2
source

Calling the OnDocumentComplete Problem:

 WebBrowser1.HandleNeeded; 

or in your case:

 FWebBrowser.HandleNeeded; 

before webBrowser.Navigate

+2
source

The web cookie cookie component is TEmbeddedWB by EmbeddedWB and is free.

+1
source
 procedure TForm1.ReCreateBrowser(); begin if(WebBrowser <> NIL) then begin WebBrowser.Stop; WebBrowser.Destroy; end; WebBrowser := TWebBrowser.Create(Form1); TWinControl(WebBrowser).Name := 'WebBrowser'; TWinControl(WebBrowser).Parent := Form1; //set parent...can be panel, tabs etc WebBrowser.Silent := true; //don't show JS errors WebBrowser.Visible:= true; //visible...by default true //don't set width/heigh/top/left before TWinControl(WebBrowser).Parent := Form1; WebBrowser.Top := 10; WebBrowser.Left := 10; WebBrowser.Height := 600; WebBrowser.Width := 800; WebBrowser.OnDocumentComplete := WebBrowserDocumentComplete; //WebBrowser.OnNavigateComplete2 := WebBrowserNavigateComplete2; end; 
+1
source

All Articles