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 14-05-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 18
Guillermo80 Va por buen camino
Excepción llamando propiedad

Hola, me pasa una excpeción un tanto extraña. Resulta que mi programa principal hace una codificación, pero justo antes de codificar, llamo a una función que me deshabilita (Enabled=false) todos los botones del formulario, y después, cuando termina, llamo a otra que los vuelve a habilitar:
Cita:
procedure TForm1.BtnDecodeClick(Sender: TObject);
begin

DesHabilitaTodo(Sender);
DecodeFile(EditDest.Text, EditFileName.Text);
HabilitaTodo(Sender);

end;
Pues resulta, que todo va bien, pero cuando llama a HabilitaTodo, es cuando salta la siguiente excepción:

Cita:
Project E:\...\programa.exe faulted with message: 'accesviolation at 0x0044cf17: read of address 0x445c3a43'. Process Stopped.
Use Step or Run to continue.
No entiendo por qué ocurre, ya que dehabilita bien, codifica bien, pero al volver a habilitar... ¡ zas, en toda la boca !

Por cierto, DeshabilitaTodo, hace la propiedad de cada boton a Enabled:=false, a todos menos a un botón de Cancelar.

¡¡ HELP !!
Responder Con Cita
  #2  
Antiguo 14-05-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si el fallo aparece al llamar a HabilitaTodo, quizá sea mejor que pongas el código que usas en ese procedimiento.

// Saludos
Responder Con Cita
  #3  
Antiguo 14-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Pon el codigo de 'habilitaTodo'
Responder Con Cita
  #4  
Antiguo 14-05-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 18
Guillermo80 Va por buen camino
La función no es ningún misterio, y es análoga a DeshabilitaTodo (salvo en el botón de cancelar):

Cita:
procedure TForm1.HabilitaTodo(Sender: TObject);
begin
EditFileName.Enabled := true;
EditDest.Enabled := true;
Button1.Enabled := true;
BtnDecode.Enabled := true;
Titulo.Enabled := true;
Artista.Enabled := true;
Album.Enabled := true;
Fecha.Enabled := true;
Pista.Enabled := true;
Genero.Enabled := true;
CheckBoxVentana.Enabled := true;
CheckVentanas.Enabled := CheckBoxVentana.Checked;
Memo1.Enabled := true;
end;
Asímismo le añadí la cabecera del método arriba en la declaración de cabebceras:

Cita:
procedure TForm1.HabilitaTodo(Sender: TObject);
Responder Con Cita
  #5  
Antiguo 14-05-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 18
Guillermo80 Va por buen camino
Otro detalle, resulta que si no llamo a HabilitaTodo y hago simplemente:

Cita:
EditFileName.Enabled := true;
...el fallo sigue saliendo.
Responder Con Cita
  #6  
Antiguo 14-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
mira con el debugger a ver si es q te has cargado algun objeto con la funcion decodefile. O con el Ctrl+F3, para saber donde exactamente te salta la excepcion. A veces tb lo q pasa es q si se sale mucho de algun programa (por excepcion o con el ctrl+f2) se quedan restos en memoria ... se fastidia prueba entonces de cargar otra vez el delphi...

Ahora q estoy pensando, tienes algun evento onchange en alguno de estos objetos q te pudiese provocar la excepcion?
Responder Con Cita
  #7  
Antiguo 14-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
y en DecodeFile liberas todos los objetos q creas?
Responder Con Cita
  #8  
Antiguo 15-05-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 18
Guillermo80 Va por buen camino
A lo que me comentabas:

Cita:
Ahora q estoy pensando, tienes algun evento onchange en alguno de estos objetos q te pudiese provocar la excepcion?
No, no lo tengo.

Cita:
y en DecodeFile liberas todos los objetos q creas?
En principio creo que sí, tendría que analizarlo más minuciosamente tal vez, pero me extraña.

Cita:
Ctrl+F3, para saber donde exactamente te salta la excepcion
Pues la verdad es que salta justo donde te comentaba antes, no entiendo este punto de depuración.

De todas formas he cambiado un poco el diseño y ya no necesito llamar necesariamente a esta función que comento, pero el problema digamos que internamente "sigue ahí".
Responder Con Cita
  #9  
Antiguo 15-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
>> no necesito llamar necesariamente a esta función que comento

q funcion?
Responder Con Cita
  #10  
Antiguo 16-05-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 18
Guillermo80 Va por buen camino
Cita:
q funcion?
La que me da el problema, o siendo precisos, lo que dije antes de que cualquier acceso a propiedad de inhabilitación produce excepción.
Responder Con Cita
  #11  
Antiguo 16-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
pero en q objeto te salta? comprueba antes si es nil (y pq)
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
llamando un procedure desde la base de datos ANALILIAHUJA Conexión con bases de datos 4 11-01-2008 18:58:14
llamando Procedimiento Almacenado desde Delphi jjaen26 MySQL 2 15-08-2007 02:53:26
Excepción en JSP david.rguez JAVA 1 14-02-2007 22:21:02
problema llamando a una DLL quinqui OOP 4 03-07-2006 23:19:37
Llamando por Telefono ASAPLTDA OOP 0 22-01-2005 00:26:50


La franja horaria es GMT +2. Ahora son las 01:15:08.


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