Bonjour,

Je suis sous Builder C++ XE7

Mon programme donne accès par une liste à des doossiers de données (numériques et alpha).

Si je double clique dans la liste j'ouvre le dossier de données correspondant.

Je stocke une partie des données dans un TStrinGrid en allant les chercher dans une base de données, pour éviter d'aller dans cette base de nombreuses fois lors de leur consultation.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
StringGrid1 = new TStringGrid(Form1);
StringGrid1->Parent = Form1;
StringGrid1->Visible = false;
StringGrid1->RowCount = 10000;
StringGrid1->ColCount= 18;
Ensuite intervient le chargement de données (données statistiques sur des corpus textuels dont la taille peut aller à 100Mo).

En mémoire, avant ce chargement le programme occupe 100Mo de Ram, après le chargement on peut passer à 300Mo.

Quand je ferme la fenêtre de consultation, je supprime le tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
StringGrid1->Free();
delete StringGrid1;
StringGrid1 = NULL;
Or dans la mémoire, la RAM, (les 200Mo supplémentaires) ne se libèrent pas.

J'ai déjà utiliser ce type de commande sans il me semble avoir rencontré de problème.

Merci pour toute indication.