Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: petrusic - Novembre 16, 2020, 11:03:50 pm

Titolo: [Risolto] Errore di eccezione di classe 'External: SIGSEGV'.
Inserito da: petrusic - Novembre 16, 2020, 11:03:50 pm
Allego progetto in costruzione, nel quale ho dichiarato alcune Form, al fine di avviarle e vedere comparire la bozza scheletrica di ciascuna di esse.
Ebbene, l'avvio funziona per la Form1, quando però clicco sul menù "Movimenti" e, successivamente, su "Inserimento" per aprire la Form2, si apre la finestra di errore 
Citazione
Il progetto DomusRatio ha sollevato una eccezione di classe 'External: SIGSEGV'.

 Nel file 'frmmain.pas' alla riga 57:
Form2.Create(Self);
Purtroppo non riesco a venirne fuori. Capisco che si tratta di una banalità, ma quale?
Titolo: Re:Errore di eccezione di classe 'External: SIGSEGV'.
Inserito da: xinyiman - Novembre 17, 2020, 08:14:13 am
Non posso provare il tuo codice ora. Ma ricordo che quando ero alle prime armi anche io avevo lo stesso problema.
Avevo risolto così

Form2:= TForm2.Create(nil);
Titolo: Re:Errore di eccezione di classe 'External: SIGSEGV'.
Inserito da: bonmario - Novembre 17, 2020, 08:19:14 am
Ciao,
così funziona (ho commentato la Create che facevi tu, e l'ho sostituita con quella corretta):

Codice: [Seleziona]
procedure TForm1.Menu21Click(Sender: TObject);
begin
   Application.CreateForm(TForm2, Form2);
   //Form2.Create(Self);
   Form2.ShowModal;
   Form2.Free;
end;
Titolo: Re:Errore di eccezione di classe 'External: SIGSEGV'.
Inserito da: petrusic - Novembre 17, 2020, 06:35:03 pm
ho commentato la Create che facevi tu, e l'ho sostituita con quella corretta

Si funziona. Ho visto poi che il file DomusRatio.lpr, generato automaticamente, contiene per l'avvio del programma anche la riga:
Codice: [Seleziona]
Application.CreateForm(TForm1, Form1); 
Ho capito perciò perchè tu parli  di "forma corretta"
Grazie!