Buscar

Como reduzir o tempo e carga de um programa?

Código

{É 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.

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 06/06/03
Por: Felipe Monteiro
Visualizada: 4272 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009