{É comum acontecer um sensível aumento do tempo de carga de um aplicativo desenvolvido em Delphi à medida que este aplicativo cresce e adquire mais e mais formulários. Às vezes o tempo de carga se torna totalmente insuportável.
Os programas se tornam lentos principalmente devido à grande quantidade de formulários que são criados e inicializados logo no início da execução do programa. Antes de ser efetivamente utilizado, todo formulário precisa ser criado. A criação do formulário
Sempre que você adiciona um novo formulário ao sistema, o IDE do Delphi providencia código para que ele seja criado automaticamente. Isto simplifica a vida do programador que não precisará se preocupar com este detalhe.
O aumento do tempo de carga do aplicativo pode ser resolvido pela simples remoção do código que o Delphi gerou para a criação do formulário. Entretanto isto cria um problema. Antes de efetivamente mostrar o formulário na tela (ou antes de usar e/ou alterar)
Para remover o código que o Delphi criou automaticamente, selecione Project/Options no menu. Selecione a aba 'Forms'. Aponte para um dos formulários e clique no botão '>'. Isto faz com que o formulário passe do painel 'Auto-create forms' para o painel 'Available forms'
Se você quer saber onde está este código, clique em View/Units (ou use Ctrl-F12) e selecione o seu projeto na lista de units que aparecerá. O código que cria formulários é algo mais ou menos como se segue:}
Application.CreateForm(TForm1, Form1); {Cada formulário auto-criado terá uma linha como esta. Quando o formulário passa para o painel de 'Available forms', a linha correspondente é removida. Você também pode simplesmente remover a linha manualmente, usando o editor de textos.
Tipicamente usar um formulário significa mostrá-lo na tela. Isto é feito invocando-se os métodos Show ou ShowModal do formulário conforme o estilo do aplicativo. Agora que o formulário não é mais criado automaticamente, isto se torna um pouco mais complicado.}
if Form1 = nil then
Form1 := TForm1.Create ( Application );
Form1.Show; { ou Form1.ShowModal; } //Alternativamente você poderia escrever assim:
if Form1 = nil then
Application.CreateForm ( TForm1, Form1 );
Form1.Show; { ou Form1.ShowModal; } {O efeito é o mesmo.
Você deve ter extremo cuidado ao usar esta técnica. Se você tirar o código de criação automática do formulário e tentar executar o Show ou ShowModal você vai receber um erro do tipo 'Access violation'. Tome cuidado e faça isto um formulário por vez.
Atenção! Não faça isto para o seu formulário principal. O formulário principal precisa ser o primeiro formulário a ser criado. Assim é melhor mantê-lo como auto-criado.
Esta técnica efetivamente 'distribui' o tempo de carga e inicialização do aplicativo pela execução do programa. Os formulários agora são carregados 'sob-demanda'. Formulários nunca utilizados nunca serão criados. Isto também melhora o uso de memória.
E, no evento onClose de cada form, pode-se colocar:}
Action := caFree;
//Isso liberará o form da memória, ocupando assim menos espaço.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário