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.