durante una prova fatta, ho notato che dopo i seguenti comandi:
Form4.ShowModal;
Form4.Free;
il comando Form4.Free non ha liberato tutta la memoria impegnata dalla chiamata in showmodal, infatti rientrando nella Form4 con una nuova chiamata showmodal ho trovato le variabili globali al suo interno con il contenuto che avevano al momento del rilascio, nonostante il comando Free.
Per me è stata una vera sorpresa. Avevo capito diversamente.
Ecco la dichiarazione delle variabili che mi aspettavo vuote:
unit Frm4; // Form4 - Prestiti Momentanei attivi
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Grids, StdCtrls, LCLType,
UModuloDatiDB, utilmie;
type
{ TForm4 }
TForm4 = class(TForm)
...bla...bla...bla
var
Form4: TForm4;
implementation
uses
FrmMain, Frm2;
{$R *.lfm}
{ TForm4 }
type
...bla...bla...
var
...bla...bla...
swVistaDettagli: Boolean = False;
iRgMax: Integer;
...bla...bla...
Io non riesco a vedere altra alternativa se non quella di svuotarle manualmente ad ogni Create della Form4.
Esiste un'altra possibilità automatica?