【问题标题】:How can I hide WebBrowser till the website complete the loading / download process?在网站完成加载/下载过程之前,如何隐藏 WebBrowser?
【发布时间】:2014-03-24 14:12:12
【问题描述】:

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

另外,我在上面使用 Panel1 和 WebBrowser。为什么?好吧,通过这种方式,我可以完全按照 WebBrowser 的需要设置 Panel1 的大小和位置,然后将 WebBrowser 放在 Panel1 的顶部,并将大小(WebBrowser 的宽度、高度)设置为整体 +4 px。之后,我将 WebBrowser(左,上)的大小调整为 -2px,以便我可以删除 WEBBROWSER BORDERS :) 在将 WebBrowser 的高度和宽度调整为 -2px 之后,WebBrowser 的大小与无边框的 Panel1 完全相同...

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

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

还有一件事:因为 WebBrowser 位于 Panel1 的顶部,当我将 Panel1 Visible 设置为 False 时,WebBrowser 也会变得不可见 :)

那么,任何人都可以帮助我吗?谢谢...

【问题讨论】:

  • 您必须实现OnDocumentComplete 事件处理程序。查看here了解更多信息。

标签: delphi hide twebbrowser


【解决方案1】:

如果你只有一个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)

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多