[Delphi] TreeView : question de base....

TreeView : question de base.... [Delphi] - Delphi/Pascal - Programmation

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 ?

Reply

Marsh Posté le 11-05-2003 à 22:17:37   

Reply

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.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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 ?)

Reply

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 :D
 
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


Message édité par antp le 11-05-2003 à 22:53:32

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed