TreeNode.ItemId

pokepix Messages postés 7 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 2 mars 2008 - 24 déc. 2003 à 10:15
cruchacode Messages postés 11 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 22 février 2012 - 22 févr. 2012 à 18:52
La propriété ItemId est en lecture seule, et j'aimerais pouvoir la stocker dans une variable pour avoir accès à n'importe quel noeud de mon treeView.

Mais lorsque j'essaye de créer une variable de type HTreeItem, le compilateur me dit que cet identificateur n'est pas déclaré.

Quelqu'un a t il une solution à me proposer ?

8 réponses

yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
24 déc. 2003 à 16:06
écoute ce que dit le compilateur !!!

var zzzzzzz:THTreeItem; :-p

et non je rigole ! il nous faudrait le code de la procedure ou function qui pose le problème ...

yve
0
pokepix Messages postés 7 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 2 mars 2008
24 déc. 2003 à 17:45
voilà le type dans lequel j'aimerais stocker le Handle du noeud :

type
TJob = record
jobName: string[100];
fileName: string[100];
konicaName: string[100];
deleteName: string[100];
nomModele: string[10];
dirOrd: string[100];
dirMisc: string[100];
dirDcim: string[100];
storageName: string[100];
quantity: integer;
rootNode: TTreeNode;
nodeId: HTreeItem;
end;

A la place de la propriété itemId, je dois stocker le noeud entier ... Donc perte de mémoire.

Dans une proc, je fais simplement :

newNode := treeView1.Items.AddChild(rootNode, fileName);

puis

job.itemId : = newNode.ItemId;

Mais le compilateur refuse la déclaration nodeId: HTreeItem;
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
24 déc. 2003 à 18:14
je crois que ce que le compilateur tente de dire c'est
que newNode. n'a pas de propriété ItemId

tu peux voir ce qu'il y a de disponible en ajoutant un point après newNode. peut-être que ce n'est qu'un transtypage incorrect ?

il manque encore un peu d'information
rootNode: TTreeNode; ?
nodeId: HTreeItem; ?

newNode on en déduit qu'il s'agit d'une TTreeNode.
job.itemId ?
si job=TJob alors job.itemId n'existe pas dans le type que tu viens de nous énumérer non plus ?
ce serait plus job.nodeId:=

yve
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
24 déc. 2003 à 18:30
ouais le mieux c'est de copier la procédure et les types que tu utilise dans cette procédure c'est difficile de deviner .
yve
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pokepix Messages postés 7 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 2 mars 2008
24 déc. 2003 à 18:33
Tu as raison, il s'agit de
job.nodeId := newNode.ItemId;

Mais si il s'agissait d'un problème de transtypage, le compilateur me sortirait un truc du genre
Types incompatibles : Tbla et Tblo

Là, il me sort juste que le type HTreeItem, il ne connait pas ... Trop fort, non ?
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
26 déc. 2003 à 08:34
lol ,peut-être qu'un TTreeItem aurait plus de sens ?

c'est une convention habituellement d'identifier un type avec un T ,or H je n'ai pas vu ça souvent ?
yve
0
pokepix Messages postés 7 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 2 mars 2008
26 déc. 2003 à 11:09
En fait j'ai utilisé un TTreeNode, mais au niveau ressource c'est plus lourd ...

J'ai pas essayé de mettre un T devant HTreeItem ...

Merci

Math
0
cruchacode Messages postés 11 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 22 février 2012
22 févr. 2012 à 18:52
Cruchacode

HTreeItem est déclaré dans Commctrl

aTTreeNode := aTTreeNodesObject.GetNode(aHTreeItem)

aHTreeItem := aTTreeNode.ItemId
0
Rejoignez-nous