Sistema Se Fecha Sozinho

Delphi

27/03/2006

Coisa muito louca. Meu sistema está se fechando sozinho.
Não dá nenhuma mensagem de erro, nada. Simplesmente, sem nenhuma solicitação do usuário, o programa se encerra.
Não é em todo computador que isso acontece. Já estou há uma semana pesquisando o que poderia ser, mas não encontrei nenhuma luz.
O foi possível notar até o momento é que, quando se abre alguma página na internet é que o problema ocorre mais.
Alguém tem qualquer idéia do que pode estar causando isso? Não sei o momento que ocorre e em meu computador não acontece. Por isso nem debugar consigo.
Uso Delphi 7, Firebird 1.5.3.0487 e DBExpress.

Obrigado


Armindo

Armindo

Curtidas 0

Respostas

Paulocesar1301

Paulocesar1301

27/03/2006

Tive alguns problemas desse tipo no passado ao acessar várias funções em uma dll num curto espaço de tempo.
Por um acaso seu sistema utiliza alguma dll tb utilizada pelo explorer ou pelo rwuindows ? Tentou rodar linha a linha ? às vezes qdo o problema é cabeludo... o melhor é ir por eliminação :wink:

Abs e Bons Códigos :wink:


GOSTEI 0
Armindo

Armindo

27/03/2006

...Tentou rodar linha a linha ? às vezes qdo o problema é cabeludo... o melhor é ir por eliminação

Obrigado pela resposta, mas, como mencionei, o problema é que não consigo reproduzir o problema em minha máquina. A situação só ocorre em máquinas de usuários e as quais não tenho acesso. Por isso a diculdade de debugar.


GOSTEI 0
Bico

Bico

27/03/2006

Boa tarde colega.

Tive problemas semelhates a este.
Quando o usuário tentava acessar algumas telas do sistema no Windows 98 o sistema simplesmente fechava e não exibia nenhuma mensagem.
Depois de muito pesquisar descobri que o que estava causando este erro era uma ComboBox que tinha um item em branco.
No Windows XP o problema não acontecia, o erro só ocorria no Windows 98.
Identifique em que situação o sistema fecha sozinho. Caso sempre ocorra o erro ao tentar acessar determinadas telas, vale a pena dar uma conferida nestas telas.

Atenciosamente,
Fernando.


GOSTEI 0
Armindo

Armindo

27/03/2006

O programa está se fechando sozinho.
Testei o em várias máquinas e cheguei a conclusão que isso está ocorrendo por que o programa consome excessivamente a memória do computador.
Há alguma maneira de eu verificar o que (componentes, rotinas, etc) em meu programa está(ão) causando isso?
Por exemplo, seu eu executar chamar a calculadora do Windos ´ShellExecute(Handle,´Open´,´Calc.exe´,nil,´´,sw_shownormal)´ o sistema fecha.
Outra situação: o programa está aberto, rodando normal. Quando o se abre uma página na internet, ele fecha sozinho, sem nenhuma msg de erro, nada.
Isso só ocorre em máquinas com pouca capacidade. O problema não é a rotina que chama a calculadora. É outra coisa que está sobrecarregando o sistema. O chamamento da calculadora do Windows é só a ponta do problema.
Alguém pode me ajudar?


GOSTEI 0
Carlos_simioni

Carlos_simioni

27/03/2006

eu tenho alguns problemas semelhantes.
ainda não consegui identificar, mas eu já reparei que isso ocorre nos meus micros que acessam o site do bradesco.
o bradesco registra uma DLL junto ao IE. e quando acessa o site deles essa dll carrega e chega a fechar meus programas. ainda não encontrei solução. a unica ate agora foi que quando meu executavel tem a data de criação mais nova que a do bradesco o meu sistema roda sem fechar.


GOSTEI 0
Armindo

Armindo

27/03/2006

Gente,

Meu programa fecha quando se entra numa página da internet. Fecha sem nenhum mensange, nada. No OnClose do main form há rotinas que sequer são executadas. É como seu o programa fosse fechado no CTRL+ALT+DEL.
Será que ninguém tem uma mínima idéia do que pode estar causando isso?


GOSTEI 0
Paulocesar1301

Paulocesar1301

27/03/2006

Você declarou alguma DLL estaticamente em seu sistema que por ventura seja usada tb pelo rwuindows ou peloIE ?
Se sim tente chamá-la dinamicamente... no meu caso quado tive problemas parecidos resolveu


GOSTEI 0
Armindo

Armindo

27/03/2006

Você declarou alguma DLL estaticamente em seu sistema que por ventura seja usada tb pelo rwuindows ou peloIE ? Se sim tente chamá-la dinamicamente... no meu caso quado tive problemas parecidos resolveu


Desculpe a ignorância, mas ´boiei´. O que quer dizer declarar uma dll estatica e dinamicamente?

Obrigado.


GOSTEI 0
Paulocesar1301

Paulocesar1301

27/03/2006

Estática: declara a dll na mão antes do implementation:

function LoginRede: WideString; stdcall; external ´MonDLL.dll´;


Dinâmica: lê a dll usando LoadLibrary e FreeLibrary:

type TCallMeDll = function ou procedure<declaração exata após o nome> stdcall;
var CallMeDll: TCallMeDll;
    FuncPtr: TFarProc;
    hDll: THandle;
    result: <tipo de retorno>;
begin
  hDll := LoadLibrary(´<nome da dll>´);
  FuncPtr := GetProcAddress(hDLL, ´<nome da função (a função deve ser declarada na seção Exports da DLL com a opção Name ´Nome da Função´)>´);
  @CallMeDll := FuncPtr;
  if @CallMeDll <> nil then result := CallMeDll(<argumentos necessários para a função>);
  FuncPtr := nil;
  FreeLibrary(hDll);
end;



GOSTEI 0
Armindo

Armindo

27/03/2006

Obrigado pelo esclarecimento, mas não é o meu caso, pois não declaro nenhum .dll no meu sistema. Nem estática nem dinamicamente.

Apesar do meu problema continuar, o tópico já serviu para algo, pois aprendi algo.

Descobri mais uma coisa sobre o meu problema. Não é a memória RAM que é esgotada. O problema parece estar relacionado com o processador, pois acontece com máquina com 256 e 512 KB de RAM.


GOSTEI 0
Rodc

Rodc

27/03/2006

Vou ter de ressuscitar este tópico.
Estou tendo este problema com um cliente. Através de testes consegui descobrir que o problema está ao usar a função ShellExecute, ou para abrir uma pagina da internet ou para chamar a calculadora ou para abrir outro programa meu.
O problema persiste por uma semana e eu já não sei mais o que fazer.
Armindo, você conseguiu resolver o problema do seu cliente?
Alguém mais teve este problema?


GOSTEI 0
Emafra

Emafra

27/03/2006

Também estou com este problema em um cliente e não consigo simular de jeito nenhum. Já conseguiu resolver de alguma forma?


GOSTEI 0
Rodc

Rodc

27/03/2006

Não consegui resolver usando ShellExecute().
Passei a usar WinExec() onde foi possível. Com WinExec o erro não acontece.


GOSTEI 0
Gabriel

Gabriel

27/03/2006

Coisa muito louca. Meu sistema está se fechando sozinho.
Não dá nenhuma mensagem de erro, nada. Simplesmente, sem nenhuma solicitação do usuário, o programa se encerra.
Não é em todo computador que isso acontece. Já estou há uma semana pesquisando o que poderia ser, mas não encontrei nenhuma luz.
O foi possível notar até o momento é que, quando se abre alguma página na internet é que o problema ocorre mais.
Alguém tem qualquer idéia do que pode estar causando isso? Não sei o momento que ocorre e em meu computador não acontece. Por isso nem debugar consigo.
Uso Delphi 7, Firebird 1.5.3.0487 e DBExpress.

Obrigado




Bom dia, estava acontecendo o mesmo comigo.
Abri o Event view e vi que o motivo de estar fechando o delphi foi o arquivo Castalia220.bpl .
A resolução que encontrei foi tirar o arquivo da pasta que se encontrava, abri o delphi novamente e reniciei o computador.
Após isso voltei o arquivo para a pasta e voltou a funcionar normalmente.
GOSTEI 0
P3rm4tr1p

P3rm4tr1p

27/03/2006

Coisa muito louca. Meu sistema está se fechando sozinho.
Não dá nenhuma mensagem de erro, nada. Simplesmente, sem nenhuma solicitação do usuário, o programa se encerra.
Não é em todo computador que isso acontece. Já estou há uma semana pesquisando o que poderia ser, mas não encontrei nenhuma luz.
O foi possível notar até o momento é que, quando se abre alguma página na internet é que o problema ocorre mais.
Alguém tem qualquer idéia do que pode estar causando isso? Não sei o momento que ocorre e em meu computador não acontece. Por isso nem debugar consigo.
Uso Delphi 7, Firebird 1.5.3.0487 e DBExpress.

Obrigado





Dá uma olhada nos logs do sistema, tipo, se tem alguma mensagem esquisita quando o app fecha.

Se liga em depurar o app onde tá dando esse problema mais vezes. Vê se rola em outro lugar além do seu PC.

Quando abre páginas na internet, fica de olho nos recursos, pode ser que algo esteja sugando tudo e derrubando o app.

Confere se o Firebird, DBExpress e Delphi 7 tão todos na mesma vibe, tipo, compatíveis e tal. Às vezes, uma atualização resolve.

Joga uns "try...except" no código pra pegar erros e ver se tem algo escapando.

Se tiver usando componentes de terceiros, vê se tão atualizados e na mesma vibe com o sistema.

Dá uma revisada geral no código, pra ver se não tem algo maluco tipo vazamento de memória ou coisa assim.

Pensa em colocar uns logs no código pra rastrear o momento exato do problema.

Talvez seja hora de dar um update no Delphi e nos componentes, pra ficar tudo na última moda.
GOSTEI 0
POSTAR