delphi释放窗体后如何再次载入窗体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi释放窗体后如何再次载入窗体相关的知识,希望对你有一定的参考价值。

两个单元unit1,unit2看代码unit1:implementation$R *.dfm
uses Unit2; procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;
end;
unit2:procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
end; 我的from1.Button1Click show form2的窗体,Form2.FormClose释放了窗体的内存再次from1.Button1Click 的时候提示错误请问如何再次载入窗体FORM2,如果方便可以留下QQ号码吗?我以后又DELPHI得问题想请教

由于是两个窗体之间的调用,需要创建一个全局窗体变量类型。
该变量类型在Button1点击中创建,在Form2的关闭事件中释放。
因此Button1的事件为创建并实例化窗体,由于是全局变量,在创建和实例化时需要先判断窗体是否存在,如果存在,则显示,如果不存在,则创建后再显示。
同样,在关闭时,先判断是否存在,存在则释放再关闭,如果不存在,则直接关闭即可。
这样可以保证程序运行不崩溃。
参考技术A 动态创建的话可以create(nil),然后手动释放掉,下次再用的时候重新create,然后释放掉,如果create(Application),没有报错的话也可以试试,让系统自己管理内存省的报一些解决起来比较麻烦的错误。 参考技术B 在Button1的OnClick事件里这样写:procedure TForm1.Button1Click(Sender: TObject);var F:TForm2;
begin try F:= TForm2.Create(nil); F.ShowModal; finally F.Free; end;
end;

以上是关于delphi释放窗体后如何再次载入窗体的主要内容,如果未能解决你的问题,请参考以下文章

如何更改delphi7中窗体(form)左上角的图标?都支持那些类型的图标,如,ico,jpe?为何更改图标后显示出错呢?不

delphi 如何在自动终止线程和手动终止线程时都正确的设置窗体上的控件

delphi mdi子窗体显示和释放的问题

delphi如何关闭启动窗体

delphi 窗体的创建和释放

delphi 窗体的创建和释放