程序Delphi6中的Webrowser1

时间:2016-08-08 08:47:27

标签: delphi twebbrowser delphi-6

当我从Button WebBrowser1.Navigate('www.google.com');事件中调用OnClick时,例如:

procedure TForm4.Button1Click(Sender:TObject);
begin
  WebBrowser1.Navigate('www.google.com');
end;

网页显示在WebBrowswer1

但是,如果我制作自己的程序,例如:

procedure MyProcedure;
var 
  WebBrowser1:TWebBrowser;
begin
  WebBrowser1.Navigate('www.google.com'); 
end;

然后尝试从Button OnClick事件调用此过程,我收到访问冲突错误。

只是想知道,为什么当Delphi为我制作程序时它会起作用,但是当我自己编写程序时它不起作用?我该如何纠正这个问题,或者我必须在程序中编写哪些代码才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

在第一段摘录中,您已在IDE设计器中向表单添加了TWebBrowser控件。因此,VCL框架为您实例化控件。使其成为表单的子控件,并应用使控件正常运行所需的所有步骤。

在第二段摘录中,设计师没有形式,也没有添加任何控件。您声明了一个局部变量WebBrowser1,您没有初始化它。没有创建浏览器控件,任何使用未初始化变量WebBrowser1的尝试都会导致未定义的行为。运行时错误几乎是不可避免的。

如果要更正此问题,则需要实例化TWebBrowser控件的实例,正确设置其父级,并采取VCL为您执行的所有其他步骤。