如何隐藏WebBrowser,直到网站完成加载/下载过程? [英] How can I hide WebBrowser till the website complete the loading / download process?

查看:15
本文介绍了如何隐藏WebBrowser,直到网站完成加载/下载过程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何在网站加载过程完成之前隐藏WebBrowser

此外,我还使用了Panel1和其上的WebBrowser。为什么?这样,我就可以完全按照我想要的WebBrowser设置Panel1的大小和位置,然后将WebBrowser放在Panel1的顶部,并将大小(WebBrowser的宽度、高度)整体设置为+4像素。之后,我将WebBrowser(左、上)的大小调整了-2px,这样我就可以删除WEBBROWSER边框:)将WebBrowser的高度和宽度调整为-2px后,WebBrowser的大小与Panel1完全相同,没有边框...

现在,回到主题-我试图设置TFMain.WebBrowser1NavigateComplete2事件,但使用FMain.Panel1.Visible:=True;(在Panel1设置中,我将Visible Option设置为False,因此Panel1和WebBrowser都不可见),但它不起作用。Panel1和WebBrowser始终不可见。

如何在WebBrowser完成网站下载后使Panel1可见?

还有一件事:因为WebBrowser位于Panel1之上,所以当我将Panel1设置为False时,WebBrowser也变为不可见:)

那么,有谁能帮我这个忙吗?谢谢您...

推荐答案

如果您只有一个在设计时形成的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)

这篇关于如何隐藏WebBrowser,直到网站完成加载/下载过程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆