Cum să eliberați memoria
Am o componentă TListView. Când adăugați un element nou, datele sunt adăugate la acesta.
tip
# xA0; PUser # xA0; = ^ AUser;
# xA0; aUSER # xA0; = înregistrare
# xA0; # xA0; nick # xA0;. ShortString;
# xA0; # xA0; drepturi. byte;
# xA0; # xA0; Id-ul. ShortString;
se încheie;
Utilizator var # xA0; # xA0;. PUser;
# xA0; # xA0; clname # xA0;: TListItem;
// tăiați din codul de adăugare a elementului
clname: = ListView1.Items.Add;
clname.Caption: = "un utilizator";
Nou (Utilizator);
Utilizator ^ .nick: = nume;
User ^ .rights: = adm;
Utilizator ^ .Id: = "123";
clname.data: = User;
// acum este necesar să ștergeți articolul și, în consecință, să ștergeți datele aferente. Fac asta:
Distruge (ListView1.Items.Item [i] .Data);
ListView1.Items.Item [i] .Delete;
Cum să ștergeți corect memoria când ștergeți elementul?
și anume în cazul meu, șterg corect datele. și anume când apelați Dispose (ListView1.Items.Item [i] .Data), sunt șterse și datele PUser create în sistem?
Iată o altă situație. Există un număr de instanțe create de PUser în sistem.
Trebuie să șterg partea.
Așa se face?
Nou (Puser);
Puser: = somePointer;
Aruncați (PUser);
Șterg informațiile din memorie?
sau există altă procedură de curățare?
Ei bine, nimeni nu știe?
Corect să faceți acest lucru:
var
# xA0; somePointer: PUser;
# xA0;.
începe
# xA0; somePointer: = Nou (Puser);
# xA0;.
# xA0; Aruncați (somePointer);
# xA0;.
se încheie;
Vă mulțumesc foarte mult pentru ajutorul dvs.!
Vă mulțumesc foarte mult pentru ajutorul dvs.!