Bonjour,
J'ai dans une unité la procedure suivante, plutôt basique. Pourtant si la création et le showmodal marche, le free me pose
des soucis. La libération de la mémoire utilisé n'est pas total.
Mon control me donne au départ 58432 puis 195948557 : après la libération. Plus bizarre, si ce testfmCreate est lançé plusieurs fois, je n'ai plus de différence de memoire (58456 avant et après) .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TTestPrinc.TestFmCreate; begin fmPrinc := nil; // pour ne pas avoir : "fmPrinc // n'est peut être pas init" :) try fmPrinc:= TfmPrinc.create(nil); fmPrinc.ShowModal; finally fmPrinc.Free; end; end;
J'aimerais vraiment savoir pourquoi j'ai ce comportement. J'ai essayé d'attendre (avec un showmessage), d'utiliser freeandnil à la place du free et même un freeandnil avec une boucle d'attente du nil. TestFmCreate plante invariablement la première fois (je la relance avec un bouton) mais pas les suivantes.
Pour le contrôle, je note la mémoire dispo avant l'appel et je compare après l'appel la nouvelle valeur. J'utilise getHeapStatus.Totalallocated pour récupérer cette valeur.
D'avance merci.
Flash Koti[/code]
Partager