TTreeView & D5:épuisement des ressources

ericamiens Messages postés 18 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 9 septembre 2004 - 17 avril 2003 à 15:40
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 19 avril 2003 à 17:55
bonjour,
j'urtilise un TTreeView dans un programme Delphi5.
lorsque j'intercepte l'événement OnCustomDrawItem,
les ressources systèmes s'épuisent très rapidement (on passe sous les 10% assez rapidement lors du parcours de quelques éléments de l'arbre).

dans le code de cet evénement, je fais juste quelques :
TV.Canvas.Font.Style := ...
TV.Canvas.Font.Color := ...
en fonction du Node.Level

lorsque je mets ces affectations en commentaire, les ressources systèmes (observées par le vumètre ressources) restent stables. cela provient bien de l'utilisation de cet évènement.

devrais-je faire quelques libérations au début ou à la fin de cet évènement ? et de quoi ?

si quelqu'un a une idée, je suis preneur.
bonne vacances à ceux qui en profitent.
Eric

ps:j'ai 128 Mo et mes tests se font avec mon programme seul en mémoire.
pps:l'exemple livré avec delphi (C:\Program Files\Borland\Delphi5\Demos\CustomDraw\customdraw.dpr) pose les mêmes problèmes.
A voir également:

2 réponses

yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
19 avril 2003 à 06:30
Assurément puisque cet procédure s'exécute sur demande et souvent même très...

uses SysUtils
FreeAndNil(var Obj);

peut-être pas disponible sous delphi 5

mais choses certaines si les ressources ne sont pas libérer ça cause un problème puisque OnCustomDrawItem ne se limite pas à redessiner que les parties inchangés comme le ferait un refresh...

faudrait voir la procédure ce pourrait-être intéressant!

yve
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
19 avril 2003 à 17:55
Tu devrais utiliser un détecteur de fuites mémoire tels que MemProof (en freeware) que l'on trouve sur le site AutomatedQA corp..
Ca aide pas mal dans ces situations.
May Delphi be with you
0
Rejoignez-nous