我想知道如何在网站加载过程完成之前隐藏WebBrowser
?
另外,我使用Panel1和WebBrowser
ON TOP。为什么?好吧,这样,我可以像我想要的那样为WebBrowser设置Panel1的大小和位置,然后将WebBrowser放在Panel1的顶部,并将整个大小(WebBrowser的宽度,高度)设置为+4 px。之后我将WebBrowser(Left,Top)的大小调整为-2px,这样我就可以删除WEBBROWSER BORDERS :)将WebBrowser的高度和宽度调整为-2px后,WebBrowser的大小与Panel1相同,没有边框...
现在,回到主题 - 我尝试设置TFMain.WebBrowser1NavigateComplete2
事件,但使用FMain.Panel1.Visible:=True;
(在Panel1设置中,我将Visible选项设置为False,因此Panel1和WebBrowser都是不可见的) ,但它不起作用。 Panel1和WebBrowser始终不可见。
如何在WebBrowser完成网站下载后使Panel1可见?
还有一件事:因为WebBrowser在Panel1的TOP上,当我将Panel1 Visible设置为False时,WebBrowser也会变得不可见:)
那么,任何人都可以帮助我吗?谢谢......
答案 0 :(得分:0)
如果您只有一个TWebBrowser
实例,该实例已在设计时投放,您可以使用以下代码进行初始化:
procedure TFMain.KeepWebBrowserInvisible;
begin
WebBrowser1.Align := alNone;
WebBrowser1.Left := -WebBrowser1.Width - 1;
WebBrowser1.Top := -WebBrowser1.Height - 1;
WebBrowser1.OnDocumentComplete := WebBrowser1DocumentComplete;
end;
procedure TFMain.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; const Url: OleVariant);
begin
if pDisp = WebBrowser1.DefaultDispatch then
begin
// The document or the main frame has been fully downloaded
WebBrowser1.Align := alClient; // Fill the Panel1
end;
end;
重要:如果浏览器实例是动态创建的,那么当您打算显示浏览器时,应添加Panel1.InsertControl(WebBrowser1)
。