Criando e destruindo formulários
Quando instanciamos um formulário em nossa aplicação através do seu construtor (método Create) e fazemos sua chamada através do método ShowModal para mostrar o mesmo ao usuário da aplicação, é importante destruirmos sua instancia quando o usuário fechar o mesmo. Uma boa opção para garantir que o formulário sempre será destruído, mesmo que algum erro ocorra, é utilizar a instrução try...finally...end. Essa instrução garante que todo o código escrito dentro da seção finally será executado mesmo que algum erro grave ocorra na aplicação. Veja o exemplo abaixo:
Usando o bloco try...finally...end para criação de um formulário
FrmClientes := TFrmClientes.Create(Self);
try
FrmClientes.ShowModal;
finally
FrmClientes.Release;
FrmClientes := nil;
end;
No código da listagem anterior, criamos o FrmClientes e dentro do bloco try realizamos a chamada ao mesmo. Como estamos utilizando o método ShowModal, a aplicação só continuará a execução do código acima após o usuário ter fechado o FrmClientes. Quando essa operação ocorrer, o código do bloco finally será executado, realizando a destruição da instância do FrmClientes.
A instrução try...finally...end não funciona com o método Show, pois o mesmo não “trava” a aplicação
até o formulário ser fechado. Nesse caso, o código do bloco finally será executado logo após a chamada ao método Show, não permanecendo assim o formulário disponível para o usuário realizar suas operações.