TreeView : question de base.... [Delphi] - Delphi/Pascal - Programmation
Marsh Posté le 11-05-2003 à 22:45:29
tu dois le faire à la main (par ex dans le OnDelete du treeview, c'est très pratique vu que c'est appelé lors de la suppression "manuelle", ou lors de la destruction du treeview)
C'est logique que tu doives le faire à la main, car comment il peut savoir que c'est un FreeMem qu'il faut faire ? Ça pourrait très bien être un pointeur vers un objet d'une classe, donc là c'est la méthode .Free tu TObject qu'il faut appeler.
Ou ça pourrait simplement contenir un entier casté en pointeur, dans ce cas il ne faudrait rien faire.
Marsh Posté le 11-05-2003 à 22:49:34
bien vu !
On peut caster des Int64 en pointeur ? (ie les pointeurs sont codés en quoi en Delphi ?)
Marsh Posté le 11-05-2003 à 22:52:27
Les pointeurs sont sur 32 bits vu que la mémoire est allouée sur 32 bits sous Windows 9x/NT. Les Integer/Cardinal/Dword/Longint sont sur 32 bits, donc on peut faire un cast entre pointeur et entiers.
Les Int64 étant sur 64 bits, non on peut pas
Note: ceci est vrai pour Delphi 2 -> 7, pour Delphi 1 j'en sais rien vu que c'était un compilateur 16 bits, win3.x
Marsh Posté le 11-05-2003 à 22:17:37
Quand j'utilise la fonction membre "delete" d'un TTreeNode, est ce que ça fait automatiquement un FreeMem sur le pointeur membre "Data" ou dois je le faire à la main ?