[Lazarus-es] EXC_BAD_ACCESS al hacer un close de un form
JoshyFun
joshyfun en gmail.com
Jue Jun 25 17:52:00 CEST 2009
Hello Giuseppe,
Thursday, June 25, 2009, 5:15:26 PM, you wrote:
>> Pues yo diría que si :)
GLP> Pues yo no veo el error :P
Jajajaja, ahora sacamos los guantes y nos peleamos :)
GLP> form está declarado como variable del tipo TFrmClientes.
El tipo coincide, pero no la instancia a menos que por algún sitio
hagas:
frmClientes:=Self o algo así.
A ver si consigo explicarlo. Supongamos que al hacer un create en vez
de devolvernos un puntero a una nueva instancia, nos devolviera
siempre un número consecutivo 1,2,3,4....
La variable global "frmClientes" inicialmente es igual a nil (cero).
Ahora en tu código haces:
var
form: TfrmClientes;
begin
form:=TfrmClientes.Create();
Entonces form es igual a "1", ejecutas el showmodal, y dentro del
onclose llamas a "frmClientes" que recordemos es igual a cero, no
igual a "1" que es el que ha originado la llamada. Para eso existe
"Self" para que no tengas que apuntar quién originó la llamada, ese
siempre es "Self".
>> Cambia el frmClientes.Close por Self.Close ;)
GLP> Ok, lo probaré, pero igualmente, debería funcionar como lo he puesto :P
No por lo explicado arriba, a menos que haya algo de por medio que
invalide mi exposición.
--
Best regards,
JoshyFun
More information about the Lazarus-es
mailing list