Delphi:表单可以自行释放吗?

Veg*_*gar 13 delphi self-destruction

我有一个表单,用于显示一些信息几秒钟.表单可以自由释放吗?我可以在构造函数中启动一个计时器,然后在timer-event中调用self.free吗?或者这可能会导致麻烦吗?

Too*_*the 31

此外,您可以致电表格Release.

它向表单发送CM_RELEASE消息.作为一种反应,它称为自由.释放的优点是表单没有留下可能导致崩溃的消息.


pan*_*ani 17

当用户或代码关闭时,您可以使表单自由释放:

procedure TForm27.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TForm27.FormCreate(Sender: TObject);
begin
  Timer1.Enabled := True;
end;

procedure TForm27.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  Close;
end;
Run Code Online (Sandbox Code Playgroud)

确保在构造函数中提供所有者,以免应用程序关闭,并且表单不会被销毁.在释放自己之前,所有者将释放该表单.

  • 如果只有表单具有DefaultCloseAction属性,那么pone可以自动释放它们而不分配事件处理程序. (2认同)