私は次のようなコードを持っています:
begin
Application.Initialize;
Application.Title := 'Controle Bancário';
Application.CreateForm(T_DMEstagio, _DMEstagio);
Application.CreateForm(T_frmLogin, _frmLogin);
if (_frmLogin.ShowModal = 1) then
begin
FreeAndNil(_frmLogin);
Application.CreateForm(T_frmPrincipal, _frmPrincipal);
Application.Run;
end;
_DMEstagio.Free;
end.
コードで行ったように DM を明示的に解放しないと、Access Violation Exception が発生しますが、別のアプリケーションでは、コードは次のようになります。
begin
Application.Initialize;
Application.Title := ' > Sistema de Gestão Comercial <';
if HPrevInst = 0 then
begin
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TIBDM, IBDM);
Application.Run;
end ;
end.
DMを解放する必要はなく、例外も発生しません。何故ですか?