Bonjour,
Je dispose d'une liste d'objets (affichés dans une listview) définis par leur nom, leur type MIME (audio/*, application/*, image/*, text/* ou video/*) et la taille du fichier associé à l'objet. En plus j'ai dans ma fiche un panel qui va me permettre d'exécuter le contenu de l'objet sélectionné en fonction du type.
Par exemple pour un objet décrivant un fichier .TXT, je crée dynamiquement un TMemo dans mon panel et dans lequel je charge mon fichier .TXT. De même pour un fichier .JPG ou un .GIF, je crée un TImage, etc.
Jusque là pas de problème, mais là où ça se corse, c'est comment faire pour supprimer le composant crée dynamiquement dans mon panel ? En effet je crains qu'il n'y aie des fuites de mémoires ou des petites choses indésirables dans ce genre à chaque fois que je vais cliquer sur un item de ma listview.
Ci-dessous mon code lorsque je clique sur un objet de type "text/*"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // Attachment est l'objet qui contient un nom, un type, // le fichier associé et la taille du fichier associé procedure TfmMain.SetContentText(a: Attachment); var filename: String; begin filename := IntToStr(a.id) + '_' + a.filename; with TMemo.Create(panel) do begin Parent := panel; ScrollBars := ssVertical; Align := alClient; BorderStyle := bsNone; Lines.LoadFromFile(filename); end; end;
Partager