Bonjour à toutes et à tous,

J'ai mis ce paramètre dans mon DPR

Code : Sélectionner tout - Visualiser dans une fenêtre à part
  ReportMemoryLeaksOnShutDown := true;
Dans mon prg j'ouvre une form

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
procedure TFPrincipal.SauvegardeClick(Sender: TObject);
begin
  With TFSauvegarde.Create(Self) do
  begin
    try
       ShowModal;
    finally
      if Assigned(FSauvegarde) then FreeAndNil(FSauvegarde);
    end;
  end;
end;
Voilà où ce situe la fuite mémoire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TFSauvegarde.FormCreate(Sender: TObject);
Var
  ListeUser :TStringlist;
  i: integer;
begin
// initialisation du grid
  StringGridSave.Cells[0,0] := 'Nom Ordinateur';
  ListeUser := TStringList.Create;
  Try
    ListeUser := ListeUserConnnectedAccess;
    sBtSave.Enabled := ListeUser.Count = 1;
    sLabel1.Visible := not sBtSave.Enabled;
    for i := 0 to Listeuser.Count - 1 do
      StringGridSave.Cells[0,i+1] := ListeUSer.Strings[i];
  finally
    ListeUser.Free; // <== Fuite mémoire malgré ce paramètre
  end;
 
end;
J'ai essayeé avec FastMM4, même problème.

Message de la fuite mémoire :
69 - 76 bytes : TStringlist x1


J'ai essayé .Free d'affectée nil apres ou avant ou même sur le close de la form et rien n'y change.

J'ai 4 questions :
- Où je fais mon erreur de libération ?
- est-ce que cette fuite memoire peut-être grave ?
- Plus généralement est-ce qu'une fuite mémoire perdure à la fermeture de l'application ?
- Est-ce qu'une fuite mémorie ce cumul si l'on ouvre plusieur fois cette form ?

Merci à vous.