Bonjour tout le monde,
Je rencontre un petit problème de libération d'objet créé dans une fonction qui se présente comme suit:
Fonction simple mais qui me pose un souci de libération au niveau de l'objet TMemoryStream créé par Result car il est évident que si je veux récupérer les données du Flux dans un TMemoryStream à partir duquel je lirais les données plus tard, je ne peux pas faire un Result.free dans le corps de cette fonction (sinon j'aurais rien en sortie)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function Get_Sound(const HLib: cardinal; const SoundName: string): TMemoryStream; var Flux: TResourceStream; begin try Flux := TResourceStream.Create(HLib, SoundName, RT_RCDATA); Result := TMemoryStream.Create; Result.LoadFromStream(Flux); finally Flux.Free; end; end;
Ma question est donc la suivante: comment libérer l'objet créé par Result (hors de la fonction bien sur) pour pas laisser des cochonneries en mémoire à la fin du programme ?
En vous remerciant par avance, bonne continuation et A+++
Partager