回 帖 发 新 帖 刷新版面

主题:在运行Form1时,可以调用并显示Form2吗?

也许描述的不清楚……[em54]
意思就是:当屏幕正在显示并运行Form1时,通过按下‘Botton1’来调用显示并运行Form2。Delphi可以做到这些吗?如果可以那又该怎么做?
PS:各位高手,由于我只是个接触Delphi不到一个星期的超级菜鸟,如有表达不清之处,还望见量.[em2]

回复列表 (共3个回复)

沙发

默认状态下在工程中添加的Form2,已经在工程文件中自动生成了构造语句,只不过它是不可见的而已。
当想显示Form2时,只需在Form1对应的Unit1.pas单元中引用Unit2,然后在Button1的Click过程中写入:
Form2.Show;
这样即可在单击按钮时显示Form2

(下面的可以不看:)

如果你的Form2并不是在工程文件中用CreateForm方法构造的,而是动态构造的,或者在构造后可能又有析构的处理,这时就要在Form2.Show前面加一些判断,例如:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(Form2) then Form2 := TForm2.Create(Application);
  //上面这句是判断Form2是不是nil。但是要保证当Form2被析构后重新赋值为nil。
  Form2.Show;
end;

板凳

上面说的“只不过它是不可见的而已”,是说:被构造后的Form2,是不可见的。

3 楼

十分感谢你的讲解,我这就去试试看.

我来回复

您尚未登录,请登录后再回复。点此登录或注册