Problemas ao rodar aplicações em windows 98
Olá pessoal...
Estou tendo alguns problemas quando executo aplicações no windows 98. Principalmente quando tenho muitos forms na aplicação. Mesmo quando descarrego os forms da memoria parece que o windows não libera totalmente a memoria alocada. A partir de um certo numero de forms usados, quando libero alguns e tento carregar outros ocorrem varios ´Acces Violarion´. Gostaria de saber se há alguma maneira de resolver esse problema ou pelo menos minimizar.
Agradeço desde já...
Principalmente ao Massuda que tem me tirado várias duvidas e resolvido grande parte dos meus problemas.
Estou tendo alguns problemas quando executo aplicações no windows 98. Principalmente quando tenho muitos forms na aplicação. Mesmo quando descarrego os forms da memoria parece que o windows não libera totalmente a memoria alocada. A partir de um certo numero de forms usados, quando libero alguns e tento carregar outros ocorrem varios ´Acces Violarion´. Gostaria de saber se há alguma maneira de resolver esse problema ou pelo menos minimizar.
Agradeço desde já...
Principalmente ao Massuda que tem me tirado várias duvidas e resolvido grande parte dos meus problemas.
Tiago Malveira
Curtidas 0
Respostas
Edilcimar
21/11/2005
como é que vc está criando e liberando os forms? talvez não esteja liberando da forma correta e os mesmos não estejam sendo realmente liberados
GOSTEI 0
Tiago Malveira
21/11/2005
como é que vc está criando e liberando os forms? talvez não esteja liberando da forma correta e os mesmos não estejam sendo realmente liberados
crio da seguinte maneira....
with TfrmMeuForm.Create(Application) do
begin
....
end;
no evento OnClose do Form Action := caFree;
isso não deveria liberar o formulario da memoria?
GOSTEI 0
Ramms
21/11/2005
[quote:4ac7e2b234=´Tiago Malveira´]
crio da seguinte maneira....
with TfrmMeuForm.Create(Application) do
begin
....
end;
no evento OnClose do Form Action := caFree;
isso não deveria liberar o formulario da memoria?[/quote:4ac7e2b234]
Tente assim amigo
e para liberar
no onclose
como é que vc está criando e liberando os forms? talvez não esteja liberando da forma correta e os mesmos não estejam sendo realmente liberados
crio da seguinte maneira....
with TfrmMeuForm.Create(Application) do
begin
....
end;
no evento OnClose do Form Action := caFree;
isso não deveria liberar o formulario da memoria?[/quote:4ac7e2b234]
Tente assim amigo
Application.CreateForm(Tfrmcriado,frmcriado);
e para liberar
no onclose
Action := caFree; Frmcriado := Nil;
GOSTEI 0
Massuda
21/11/2005
Geralmente Access Violation está relacionado com tentativas de utilizar objetos que ou ainda não foram criados no programa ou já foram destruídos (automaticamente ou não) em algum ponto do programa.
No seu caso, verifique se você está tentando utilizar algum form que já foi destruído; experimente fazer o que o Ramms sugeriu.
Se o problema persistir, tente determinar onde o erro está ocorrendo. Para isso:[list:a98fd23983][*:a98fd23983]marque as opções de debug em [b:a98fd23983]Project|Options|Compiler|Debugging[/b:a98fd23983][*:a98fd23983]dê um build (menu [b:a98fd23983]Project|Build[/b:a98fd23983]) no seu programa[*:a98fd23983]inicie a execução do seu programa[*:a98fd23983]volte no Delphi[*:a98fd23983]no menu [b:a98fd23983]Search|Find Error[/b:a98fd23983], informe o endereço do erro (conforme a mensagem de erro que aparece para você)[/list:u:a98fd23983]
No seu caso, verifique se você está tentando utilizar algum form que já foi destruído; experimente fazer o que o Ramms sugeriu.
Se o problema persistir, tente determinar onde o erro está ocorrendo. Para isso:[list:a98fd23983][*:a98fd23983]marque as opções de debug em [b:a98fd23983]Project|Options|Compiler|Debugging[/b:a98fd23983][*:a98fd23983]dê um build (menu [b:a98fd23983]Project|Build[/b:a98fd23983]) no seu programa[*:a98fd23983]inicie a execução do seu programa[*:a98fd23983]volte no Delphi[*:a98fd23983]no menu [b:a98fd23983]Search|Find Error[/b:a98fd23983], informe o endereço do erro (conforme a mensagem de erro que aparece para você)[/list:u:a98fd23983]
GOSTEI 0
Romulocpd
21/11/2005
Eu para abrir formulários faço assim:
Frm: TMeuForm.Create(Self); try Frm.ShowModal; finally Frm.Release; FreeAndNil(Frm); end;
GOSTEI 0