<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.26.2">
</HEAD>
<BODY>
El jue, 25-06-2009 a las 14:21 +0200, JoshyFun escribió:
<BLOCKQUOTE TYPE=CITE>
<PRE>
Hello Giuseppe,
Thursday, June 25, 2009, 8:20:56 AM, you wrote:
GLPR> Hola joshy.
GLPR> No, después del applyupdate hago:
GLPR> Frmclientes.close
GLPR> Esa línea es la que lleva al customform.inc
Los EXC_BAD_ACCESS son difíciles de corregir, suelen venir provocados
por una corrupción de la memoria, pero puede venir de muy atrás en el
código. Lo más probable es que hayas (digo tu por que es más probable
que tu codigo esté mal que el de Lazarus) liberado algún recurso con
un free por algún sitio pero lo hayas "reusado" sin querer. Para ello
cambia todos los free de tu código por "FreeAndNIL" si no lo has hecho
ya. Otra posibilidad es que algo en los objetos que usas con la base
de datos hagan algo mal debido a un bug en el código, así que la única
solución que veo a tu problema es que reduzcas tu código a la mínima
expresión para que lanze el error.
Por la linea del error en customform.inc, evento close, el problema es
que el form que estás manejando tiene la memoria corrompida, esto es
apunta a una dirección que ha sido ya liberada por el motivo que sea.
Un problema típico de esto, pero que no sería aplicable en este caso
es hacer algo así en una función:
var
f: Miform;
begin
f:=MiForm.Create;
f.show;
f.free;
end;
Ya que el show se ejecuta y antes de que se cierre el form ya se
libera, lo que pueda dar problemas de este tipo.
Usa el debugger y comprueba que el form "Self" siempre apunta a la
misma dirección, para ello antes del f.showmodal apunta en un papel el
valor de "f", y en el evento que haces el close, pon una linea de
código que compruebe el valor de self. Ambos tienen que coincidir.
</PRE>
</BLOCKQUOTE>
<BR>
Luego le echo una ojeada a lo que me comentas, gracias ;)<BR>
<BR>
</BODY>
</HTML>