Cum să eliberați înregistrarea de memorie

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.!







Trimiteți-le prietenilor: