[Lazarus-es] forms enredados II
José Mejuto
joshyfun en gmail.com
Lun Dic 20 20:03:32 CET 2010
Hello Paola,
Monday, December 20, 2010, 7:42:35 PM, you wrote:
PB> Hola a todos..
PB> un access violation me está enloqueciendo... :)
PB> a ver si pueden orientarme. Les pongo el esquema de aperturas/cierres de
PB> forms en un ABM.
PB> Si hago esto "tal cual":
PB> entro abm, AGREGAR, CANCELAR (entonces vuelvo al abm), SALIR -> access
PB> violation
PB> formppal:
PB> ========
PB> Application.CreateForm(TABM,ABM);
PB> ABM.ShowModal();
Después del ShowModal no haces nada más ?
PB> en ABM:
PB> ========
PB> - onCreate:
PB> Application.CreateForm(TDMPrincipal, DMPrincipal); (abro el datamodule
PB> con la conexión)
PB> apertura de tablas
PB> - onClose:
PB> cierre de tablas
PB> closeAction:= caFree; //como aca libero el form, no necesito hacer el
PB> freeandnil
FreeAndNil de qué ?
Abre una ventana de linea de comandos y lanza el gdb (el que está en
Lazarus, no recuerdo la carpeta):
C:\MiCarpeta\> gdb miprograma.exe
> r
Haz lo que tengas que hacer, y cuando de el access violation:
> bt
Eso te dará un listado de llamadas hasta la que obtuvo el error e
orden inverso. Probablemente la primera de la linea y 3 o 4 más serán
el SYSTEM$FREE o algo parecido, sin información de debug, pero más
abajo debería de salirte la linea que causa el problema, o bien acabar
en algo como:
$00000000
Lo que quiere decir que en algún punto has accedido a un objeto el
cual era "nil", y en ese caso tendrás que ir "paso a paso" en la
ejecución.
Si te parece pega aquí el resultado del comando "bt" del gdb.
--
Best regards,
José
More information about the Lazarus-es
mailing list