Bonjour à toutes et à tous,
J'ai mis ce paramètre dans mon DPR
Dans mon prg j'ouvre une form
Code : Sélectionner tout - Visualiser dans une fenêtre à part ReportMemoryLeaksOnShutDown := true;
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 procedure TFPrincipal.SauvegardeClick(Sender: TObject); begin With TFSauvegarde.Create(Self) do begin try ShowModal; finally if Assigned(FSauvegarde) then FreeAndNil(FSauvegarde); end; end; end;
J'ai essayeé avec FastMM4, même problème.
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;
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.
Partager