Acess Violation 0083AB6D
Ola, ao entrar na tela de configuração que criei consigo trabalhar novamente, quando saio e tento voltar sem fechar o programa somente a tela, aparece a seguinte mensagem de erro: ''Acess violation at address 0083AB6D in modulo Arim.exe. Read of adress 0000000000''.
No evento onclose do form coloquei o seguinte código:
for i := 0 to ComponentCount-1 do
begin
if (Components[i]).ClassName = ''TSQLQuery'' then
TSQLQuery(Components[i]).Active := False;
if (Components[i]).ClassName = ''TClientDataSet'' then
TClientDataSet(Components[i]).Active := False;
end;
Agora:
1- por que acontece esse erro?
2- Como eu posso arrumar isso?
Obrigado.
No evento onclose do form coloquei o seguinte código:
for i := 0 to ComponentCount-1 do
begin
if (Components[i]).ClassName = ''TSQLQuery'' then
TSQLQuery(Components[i]).Active := False;
if (Components[i]).ClassName = ''TClientDataSet'' then
TClientDataSet(Components[i]).Active := False;
end;
Agora:
1- por que acontece esse erro?
2- Como eu posso arrumar isso?
Obrigado.
Wilton Júnior
Curtidas 0
Respostas
Marco Salles
22/09/2012
Mas em que momento do código acontece isto ???? Debuga ai e nos posicione
so uma curiosidade
1) que componentes que vc esta utilizando ??? Tecnologia ??
TSqlquery parece ser DBX .Correto ?
Pq que vc esta desabilitando as TsqlQuery ???
quem faz isto é o clientdataset atraves do provider
so uma curiosidade
1) que componentes que vc esta utilizando ??? Tecnologia ??
TSqlquery parece ser DBX .Correto ?
Pq que vc esta desabilitando as TsqlQuery ???
quem faz isto é o clientdataset atraves do provider
GOSTEI 0
Wilton Júnior
22/09/2012
Mas em que momento do código acontece isto ???? Debuga ai e nos posicione
R: Clicle do FrmConfigreg.showModal;
so uma curiosidade
1) que componentes que vc esta utilizando ??? Tecnologia ??
Eu uso DBExpress
SQlquery lidado no dataprovider, dataprovider ligado no clientdataset.
TSqlquery parece ser DBX .Correto ? R:Sim
Pq que vc esta desabilitando as TsqlQuery ???
R:Eu aprendi a usar assim se esta errado é so me corrigir.
quem faz isto é o clientdataset atraves do provider
R: Clicle do FrmConfigreg.showModal;
so uma curiosidade
1) que componentes que vc esta utilizando ??? Tecnologia ??
Eu uso DBExpress
SQlquery lidado no dataprovider, dataprovider ligado no clientdataset.
TSqlquery parece ser DBX .Correto ? R:Sim
Pq que vc esta desabilitando as TsqlQuery ???
R:Eu aprendi a usar assim se esta errado é so me corrigir.
quem faz isto é o clientdataset atraves do provider
GOSTEI 0
Alisson Santos
22/09/2012
porque utiliza essa rotina?
Aonde está mostrando o erro está meio vago, qual o comando que tem na tela que vai ser aberta, comandos do oncreate e do onActivate?
Aonde está mostrando o erro está meio vago, qual o comando que tem na tela que vai ser aberta, comandos do oncreate e do onActivate?
GOSTEI 0
Wilton Júnior
22/09/2012
Nenhum desse eventos segundo o momento do debug é ao clicar no botão para abrir configurações é o momento que a depuraçlão passa pelo showmodal no clique do botão.
Quando a mensagem aparece, não abre nem a tela.
Quando a mensagem aparece, não abre nem a tela.
GOSTEI 0
Marco Salles
22/09/2012
Mas em que momento do código acontece isto ???? Debuga ai e nos posicione
R: Clicle do FrmConfigreg.showModal;
R: Clicle do FrmConfigreg.showModal;
Como vc esta criando este FrmConfigreg ?
Qual código vc utiliza?
Vc o esta destrunindo ?
Pq que vc esta desabilitando as TsqlQuery ???
R:Eu aprendi a usar assim se esta errado é so me corrigir.
quem faz isto é o clientdataset atraves do provider
Nesta arquitetura vc não precisa dar open e nen close nos sqldatSet, quem faz isto é o clientdataset atraves do
Provider
GOSTEI 0
Alisson Santos
22/09/2012
Nenhum desse eventos segundo o momento do debug é ao clicar no botão para abrir configurações é o momento que a depuraçlão passa pelo showmodal no clique do botão.
Quando a mensagem aparece, não abre nem a tela.
Quando a mensagem aparece, não abre nem a tela.
A pergunta foi qual o comando está passando para ser aberto o formulário, e se após ele fazer o papel dele você está destruindo ele.
GOSTEI 0
Wilton Júnior
22/09/2012
No evento onclose já removi.
FrmConfigreg := TFrmCOnfigreg.create(self);
try
FrmConfigreg.showmodal;
finally
FreeAndNil(FrmConfigreg);
end;
O que esta me deixando entrigado, é que no ponto que chega que chamar o form na linha FrmConfigreg.showmodal, surge o erro, o form não abre para que eu possa saber se tem algo de errado nele.
A coisa ta tão esquisita que to pensando em apagar e fazer tudo novamente.
FrmConfigreg := TFrmCOnfigreg.create(self);
try
FrmConfigreg.showmodal;
finally
FreeAndNil(FrmConfigreg);
end;
O que esta me deixando entrigado, é que no ponto que chega que chamar o form na linha FrmConfigreg.showmodal, surge o erro, o form não abre para que eu possa saber se tem algo de errado nele.
A coisa ta tão esquisita que to pensando em apagar e fazer tudo novamente.
GOSTEI 0
Alisson Santos
22/09/2012
foi resolvido ou ainda continua com o erro?
Uma breve explicação, quando você debuga ele vai passando linha a linha, quando referimos para verificar no opem do formulário ele sempre executa algo antes de criar, se tiver algum comando na hora da chamada ele passa primeiro pelo oncreate depois onActivate e depois o show ainda, então caso você coloque algum comando, basta parar o breakpoint no inicio dessa ação e ver o que vai ser feito.
Uma breve explicação, quando você debuga ele vai passando linha a linha, quando referimos para verificar no opem do formulário ele sempre executa algo antes de criar, se tiver algum comando na hora da chamada ele passa primeiro pelo oncreate depois onActivate e depois o show ainda, então caso você coloque algum comando, basta parar o breakpoint no inicio dessa ação e ver o que vai ser feito.
GOSTEI 0
Deivison Melo
22/09/2012
O problema foi solucionado ou ainda existem dúvidas e/ou problemas!!
GOSTEI 0
Wilton Júnior
22/09/2012
O problema não esta o onshow do form e sim no evento click que abre o form.
GOSTEI 0
Alisson Santos
22/09/2012
pode postar o código para que possamos ver o que está ocorrendo?
GOSTEI 0
Wilton Júnior
22/09/2012
Como posta imagens aqui?
GOSTEI 0
Deivison Melo
22/09/2012
Deverá postar em outro site e informar o link aqui para visualizarmos!
GOSTEI 0
Wilton Júnior
22/09/2012
Senhores, obrigado pela ajuda e dedicação!
Encontrei o erro obrigado mesmo e Deus os Abençoe.
Encontrei o erro obrigado mesmo e Deus os Abençoe.
GOSTEI 0
Alisson Santos
22/09/2012
tranquilo.
Gostaria que informasse o que fez para aprendermos junto
Gostaria que informasse o que fez para aprendermos junto
GOSTEI 0
Wilton Júnior
22/09/2012
No evento onshow do meu form principal, eu coloquei o seguinte código:
FrmConfigreg := TFrmConfigReg.create(self);
No botão que deveria abrir uma tela para o usuário padronizar a configuração da sua região, botão no qual fica também no form principal, no evento onclick coloquei:
try
Frmconfigreg.showmodal;
finnaly
FreeAndNil(FrmConfigreg);
Como eu estou instanciando o FrmConfigreg no onshow do form e destruindo ele ou removendo da memoria no comando freeandnil ao fechar a tela o que acontecia, pedi o form. Era o erro que tava dando na memoria.
Quando percebi ai removi ele do envento onshow e colocquei assim:
FrmConfigreg := TFrmConfigReg.create(self);
try
Frmconfigreg.showmodal;
finnaly
FreeAndNil(FrmConfigreg);
Dessa Forma voltou funcionar corretamente.
Muito obrigado pela sua atenção e sua ajuda.
Deus o abençoe.
FrmConfigreg := TFrmConfigReg.create(self);
No botão que deveria abrir uma tela para o usuário padronizar a configuração da sua região, botão no qual fica também no form principal, no evento onclick coloquei:
try
Frmconfigreg.showmodal;
finnaly
FreeAndNil(FrmConfigreg);
Como eu estou instanciando o FrmConfigreg no onshow do form e destruindo ele ou removendo da memoria no comando freeandnil ao fechar a tela o que acontecia, pedi o form. Era o erro que tava dando na memoria.
Quando percebi ai removi ele do envento onshow e colocquei assim:
FrmConfigreg := TFrmConfigReg.create(self);
try
Frmconfigreg.showmodal;
finnaly
FreeAndNil(FrmConfigreg);
Dessa Forma voltou funcionar corretamente.
Muito obrigado pela sua atenção e sua ajuda.
Deus o abençoe.
GOSTEI 0
Alisson Santos
22/09/2012
Obrigado pelo retorno, era o que haviamos falado acima mesmo, que bom que consegui resolver e entender o que estava ocorrendo.
GOSTEI 0