[Lazarus-es] forms enredados II

Paola Bruccoleri pbruccoleri en adinet.com.uy
Lun Dic 20 20:49:48 CET 2010


El 20/12/2010 05:03 p.m., José Mejuto escribió:
> 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 ?
no.. es una opción de menú: creo y showmodal
> 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é ?
quise decir que no puse el freeandnil después del showmodal..
>
> Si te parece pega aquí el resultado del comando "bt" del gdb.
acá va el "chanchullo" que sale.. por lo menos lo último..



Program received signal SIGSEGV, Segmentation fault.
0x004372d6 in TAPPLICATION__DOIDLEACTIONS (this=0x21a448)
     at ./include/application.inc:980
980           if AForm.FormStyle=fsSplash then
Current language:  auto; currently pascal
(gdb) bt
#0  0x004372d6 in TAPPLICATION__DOIDLEACTIONS (this=0x21a448)
     at ./include/application.inc:980
#1  0x004361ee in TAPPLICATION__IDLE (WAIT=true, this=0x21a448)
     at ./include/application.inc:382
#2  0x00437a7f in TAPPLICATION__HANDLEMESSAGE (this=0x21a448)
     at ./include/application.inc:1227
#3  0x00437e8f in TAPPLICATION__RUNLOOP (this=0x21a448)
     at ./include/application.inc:1359
#4  0x00447203 in TWIDGETSET__APPRUN (ALOOP=0x437e50 
<TAPPLICATION__RUNLOOP>,
     this=0x222460) at ./include/interfacebase.inc:49
#5  0x00437e45 in TAPPLICATION__RUN (this=0x21a448)
     at ./include/application.inc:1347
#6  0x00402ece in main () at Serviam.lpr:47
(gdb)


Ahora estaba mirando, que si cambio en el onClose del ABM esto que puse:

cierre de tablas
closeAction:= caFree;  //como aca libero el form, no necesito hacer el 
freeandnil

por esto:
cierre de tablas
close;

no me sale el access violation







More information about the Lazarus-es mailing list