eqn="prod @2 1 2">
Figura 1. Definindo o comportamento de criação dos formulários do projeto
Uma observação apenas é que se o formulário a ser chamado estiver definido dentro da seção Auto-create forms, não precisamos criar a mesmo via código, isso é, basta fazer a chamada ao método Show (ou ShowModal) para visualizar o formulário.
Já se o formulário estiver definido como Available forms precisaremos criar o mesmo através de seu construtor (método Create) antes de invocar o método Show para mostrá-lo na tela.
Nota: Você pode especificar a seção para que um formulário seja adicionado por padrão quando for criado (opção New Form) durante o projeto. Para isso, acesse a opção Tools>Environment Options>Designer e defina a opção Auto create forms & data modules disponível no item Module creation options.
2. 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 na Listagem 1.
Listagem 1. 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;
eEnd;
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.
Nota: 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.
3. Utilizando Data Modules
Outra boa prática é fazer o uso de Data Modules na aplicação para separar os componentes de acesso a dados da interface com o usuário (formulários). Utilizando Data Modules, podemos separar as regras de negócio que fazem acesso ao banco de dados de nossos formulários além de podermos reutilizar os DataSets em diferentes formulários.
Dependendo do tamanho de sua aplicação é aconselhável ainda criar vários Data ...