Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
Access Violation onClose

Hola a todos,

Entrando directo al tema, mi problema es el siguiente:

El programa es un checador con huella digital. Cuando la aplicación no recibe ninguna huella y le doy en el boton Cerrar, no hay problema, cierra todo el programa...

Sin embargo, cuando le ingreso al menos una huella digital y le doy en el botón Cerrar... según esto si se cierra, pero antes de terminar me manda un Access Violation...

He intentado de todo, en el evento onClose del formulario el tan famoso Action := caFree (pero este me ejecuta de nuevo un timer que tengo en el form y como ya no existe marca el error 1400), he usado el Release, incluso directamente el Application.Terminate y nada.

He buscado en internet, pero como ya expliqué He Intentado Todo!!! y sigo en las mismas... Bueno, tal vez no todo.. por eso acudo a ustedes para ver si me pueden ayudar un poco en esto.

De antemano, muchas gracias por tomarse la molestia de leer mi caso y ayudarme.
Responder Con Cita
  #2  
Antiguo 19-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola natalinuyo,
Para poder ayudarte mejor necesitaríamos ver el código que se ejecuta.
¿Por casualidad estás intentando acceder a un objeto que fue liberado? Por lo general eso es la causa de un Access Violation.

Pero sin conocer mejor tu caso no te sabríamos decir que de modo ayudarte. Deberás explicar y detallar mejor tu caso.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
Este es el codigo del boton cerrar:
Código Delphi [-]
procedure TFMainForm.Button2Click(Sender: TObject);
begin
     // finalize GrFinger
     FinalizeGrFinger();
     Close;
end;

Este es el codigo del metodo FinalizeGrFinger() que está en la librería uUtil.pas
Código Delphi [-]
procedure FinalizeGrFinger();
begin
   // finalize library
   GrFinalize();
   GrCapFinalize();
   // Closing database
   DB.closeDB();
   DB.Free();
   // Freeing resources
   template.Free();
   FreeMemory(raw.img);
   raw.img := nil;
end;

Adicionalmente tengo el procedimiento OnCloseQuery en el MainForm
Código Delphi [-]
procedure TFMainForm.FormCloseQuery(Sender: TObject; var CanClose:Boolean);
begin
  Release;
end;

Pues yo creo que básicamente es esto... es lo que hago cuando quiero cerrar mi form.
Responder Con Cita
  #4  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
Por cierto... Si pongo en el procedimiento OnClose del MainForm:
Código Delphi [-]
procedure TFMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Action := caFree;
end;

Me ejecuta nuevamente un objeto Timer1 que tengo en el MainForm.
Y obviamente como "ya no existe", marca el error 1400.

Saludos.
Responder Con Cita
  #5  
Antiguo 19-06-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Creo que ya pusiste donde esta el error, no puedes darle a la forma un Release en el closequery
Responder Con Cita
  #6  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
El codigo que puse es de una de las tantas pruebas que he hecho... pero ninguna funciona... como indico, he intentado todo...

Si no es Access violation, es Error 1400...
Responder Con Cita
  #7  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
Sin nada, unicamente el Close en el botón, me marca error en rtl70.bpl "Error 1400 - El identificador de ventana no es válido".
Responder Con Cita
  #8  
Antiguo 19-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
no estaras intentando acceder desde otro lado de manera automatica a la form mainform? por ejemplo, con el timer ese que comentabas...

PD : si usas F7,F8 y los breakpoints, encontraras la linea exacta donde te salta la excepcion (siempre y cuando tengas project->options->compiler->debug information todo en on)

Última edición por coso fecha: 19-06-2008 a las 21:25:41.
Responder Con Cita
  #9  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
Mmmm, pues la verdad no, el timer está en el MainForm, ese no está en las demás librerías que tengo...

Por si las dudas le tenía en inhabilitara el timer1, pero aún así marca error
Responder Con Cita
  #10  
Antiguo 19-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Un access violation es cuando intentas acceder a algun objeto que no existe. El 1400 es cuando se intenta acceder a una ventana que tampoco existe. Parece ser que intentas acceder a algo que destruyes cuando se cierra el form. Como te comentaba, usa el F7,F8 y los breakpoints (F5) y asi sabras exactamente donde te salta la excepcion.
Responder Con Cita
  #11  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
Este es el asunto:

Con break points y debug:

Doy click en el botón, ejecuta el Close, posteriormente va a terminar la aplicación, en ese momento con el siguiente F7, salta el error... acepto el error y cierra la aplicación.
Responder Con Cita
  #12  
Antiguo 19-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Si pulsas F7 antes del close?
Responder Con Cita
  #13  
Antiguo 19-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
A veces por excepciones continuadas y errores varios mientras se esta programando el delphi se queda tonto (al menos el mio ). Lo soluciono cerrando y volviendo a entrar. No creo, por eso que, q sea tu caso ya que entonces el error me lo da en vbpl.
Responder Con Cita
  #14  
Antiguo 19-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
tienes otras forms que se cierran cuando se cierra la main?
Responder Con Cita
  #15  
Antiguo 19-06-2008
natalinuyo natalinuyo is offline
Miembro
 
Registrado: ene 2007
Posts: 64
Poder: 18
natalinuyo Va por buen camino
Pues tengo un form simple, tambien ya lo quité del form principal, para ver si era por algo que me faltaba en ese form (aunque solo tiene un label, no hace nada, pero por si las dudas)...

Pero ps me marca el mismo error, bueno ahora es el 1400 xq ya le quité el Release.

Ps tambien pensé que era el Delphi, pero ps ya hasta reinicié el equipo y nanai
Responder Con Cita
  #16  
Antiguo 19-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
has entrado dentro del close a ver hacia donde va el codigo?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Access Violation con DLL emeceuy Varios 8 17-08-2007 21:57:55
Access Violation Carliviris Varios 5 12-05-2006 19:21:45
access violation chilenauta Impresión 15 15-12-2004 19:45:51
Access Violation ..... MADV01 Varios 2 24-03-2004 16:01:33
Access violation Giasl Varios 6 07-05-2003 12:35:51


La franja horaria es GMT +2. Ahora son las 13:27:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi