Other Languages => Spanish => Topic started by: pbruccoleri on June 27, 2018, 12:54:02 am
Title: Error SIGSEGV al cargar form [SOLUCIONADO]
Post by: pbruccoleri on June 27, 2018, 12:54:02 am
Hola HAce años no uso lazarus. Hoy descargué la versión 1.8.4 para hacer un simple proyecto:un form ppal, un menú con un opción, un datamodule con un ADSConnection (porque uso ADS como base de datos, ya instalé los componentes correspondientes)
En el frmMain, en esta parte: procedure TfrmMain.MenuItem3Click(Sender: TObject); var f: TfrmEfectivoProv; begin try f.ShowModal; finally FreeandNil(f); end; end;
al ejecutarse el ShowModal sale el error SIGSEGV.
Ya he revisado de todo y no me doy cuenta del problema. Alguna ayuda? Muchas gracias
Title: Re: Error SIGSEGV al cargar form
Post by: GAN on June 27, 2018, 01:14:38 am
Hola, en qué momento creas el Form TfrmEfectivoProv?
Title: Re: Error SIGSEGV al cargar form
Post by: pbruccoleri on June 27, 2018, 02:08:05 am
Hola.. está entre los creados automáticamente. Como son apenas 3, por ahora se están creando desde el inicio.
En el .lpr está esto: RequireDerivedFormResource:=True; Application.Initialize; Application.CreateForm(TDataModule1, DataModule1); Application.CreateForm(TfrmMain, frmMain); Application.CreateForm(TfrmEfectivoProv, frmEfectivoProv); Application.Run;
voy a probar sacarlo de allí y hacer lo que tu dices......
lo saqué de los creados automáticamente y puse el create antes del Showmodal y pasó lo mismo.
Adjunto el proyecto de ejemplo... no tiene nada,solo las llamadas... es apenas el principio de algo Muchas gracias
Title: Re: Error SIGSEGV al cargar form
Post by: GAN on June 27, 2018, 02:32:19 am
Imposible probar tu proyecto porque me faltan componentes, no obstante, en uses de main debes agregar la unidad del Form que vas a crear/utilizar, que es efectivoProv:
Es decir, en la unit efectivoProv declaras la variable frmEfectivoProv y en main, con create, creas una instancia, objeto de esa clase.
Saludos.
Title: Re: Error SIGSEGV al cargar form
Post by: pbruccoleri on June 27, 2018, 03:05:06 pm
Hola Siempre pongo en el uses del implementation las unidades que necesito y no suelo usar el nombre de la variable ya definida en el formulario var frmEfectivoProv: TfrmEfectivoProv;
No sé si tiene alguna ventaja usarla o no, no recuerdo.
Hoy probé hacer esto y funcionó:
procedure TfrmMain.MenuItem3Click(Sender: TObject); var f: TfrmEfectivoProv; begin f:= TfrmEfectivoProv.Create(Self); try f.Showmodal; finally FreeandNil(f); end; end;