Fórum Access Violation - não sei o que tentar... #370678
22/05/2009
0
Vou tentar ser o mais simples possível.
Eu abro um relatório... quando eu fecho o relatório e o código volta para a linha de codigo da tela... se eu tento mandar um [b:df6900c0fd]ADOQuery.Close[/b:df6900c0fd], da um access violation.
Já vi se tá na memória e não está. quando o relatório fecha... a tela que o chamou parece que fecha. Não há código para fechar e limpar a tela da memoria.
Já tentei:
- recriar a tela
- rechamar a procedure que create()
não sei mais o que tentar. :x
try if not Assigned(QREtiqueta) then begin QREtiqueta := TQREtiqueta.create(Application); end else begin FreeAndNil(QREtiqueta); QREtiqueta := TQREtiqueta.create(Application); end; QREtiqueta.ADOImprime.Close; QREtiqueta.ADOImprime.Open; QREtiqueta.inCodUser := Usuario.Codigo; QREtiqueta.QuickRep1.Preview; QREtiqueta.ContarEtiqueta:= 0; finally FreeAndNil(QREtiqueta); if Assigned(FrmEtiqueta) then begin Show; end else FrmPrincipal.btnetiquetasClick(FrmPrincipal.btnetiquetas); ADOEtiqueta.Close; ADOEtiqueta.Parameters[0].Value := Usuario.Codigo; ADOEtiqueta.Open; end;
Depois do finally. [b:df6900c0fd]FreeAndNil[/b:df6900c0fd] funciona.
Até aí tenhu os seguintes valores sendo observado:
[b:df6900c0fd]Visible: False
Assigned(FrmEtiqueta): False[/b:df6900c0fd]
Alguem tem uma solução para este problema!?
.lg.
Curtir tópico
+ 0Posts
25/05/2009
Woinch
Ele está em algum formulário? Qual?
Tente colocar um Watch para a variável ADOEtiqueta (Ctrl + F7) e fique acompanhando o debug dando F8/F7 para saber onde exatamente essa variável perde a referência.
Aguardo sua resposta...
Assim fica mais facil lhe ajudar.
Gostei + 0
25/05/2009
.lg.
No OnDeactive tinha o seguinte código:
Close;
:shock:
PS.: ´Que coisa em.´
Vaí... veja bem... quando eu saio do QuickReport... cade a tela!? Aí da o access violation. O problema foi resolvido ao remover o código do evento OnDeactive.
Vlw pela iniciativa Woinch.
Obrigado,
.lg.
Gostei + 0
26/05/2009
Woinch
essas coisas sao chatas de achar quando acontecem, tem que ter muita paciencia! :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)