benladder
Messages postés4Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention 8 mai 2010
-
1 mars 2010 à 17:41
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
1 mars 2010 à 18:40
j'ai les 2 unit suivants :
unit principal;
interface
uses
...;
type
TForm1 = class(TForm)
public
doss: array[0..3] of TForm2;
nbre: integer;
var
Form1: TForm1;
implementation
procedure TForm1.FormCreate(...);
var
compt: integer;
begin
nbre := 3;
for compt := 0 to nbre do
doss[nbre] := nil;
end;
procedure TForm1.ButtonClick(...);
begin
if nbre < 4 then
begin
doss[nbre] := TForm2.Create(...);
inc(nbre);
doss[nbre].show;
end;
end;
unit second;
interface
uses
...;
type
TForm2 = class(TForm)
implementation
procedure TForm2.FormClose(...);
begin
doss[???].free;
doss[???] := nil;
end;
Ma question est la suivante :
Dans la procédure TForm2.FormClose ci-haut, comment faire pour libérer
le bon objet à l'intérieur de l'array, pour éviter les mémory leak et les
EAccessViolation ?