Bonjour,
J'utilise beaucoup le composant TVirtualTreeview qui , une fois qu'on le maitrise, permet de faire pas mal de choses sympa.
N�anmoins, un petit probl�me subsiste : l'utilisation de la fonction memcpy avec les donn�es associ�es aux noeuds du virtualtreeview.
A chaque n�ud, j'associe en g�n�ral une structure compos�e de plusieurs membres.
Il m'arrive de devoir copier le contenu d'une structure dans une autre.
Dans ce cas, le plus simple d'apr�s moi serait d'utiliser la fonction memcpy.
Malheureusement, cela semble poser probl�me et seul l'affectation membre par membre fonctionne !!!
Ex:
1 2 3 4 5 6 7 8 9 10
| typedef struct
{
int id;
char nom[30+1];
bool actif;
} TMaStruct;
typedef TMaStruct *pMaStruct;
Treeview->NodeDatasize = sizeof(TMaStruct); |
Pour un noeud donn�, on r�cup�re les donn�es et on fait la copie comme �a :
1 2 3 4 5 6 7
| pMaStruct data = (pMaStruct)Treeview->GetNodeData(virtualnode);
TMaStruct copiedata;
copiedata.id = data->id;
strcpy(copiedata.nom, data->nom);
copiedata.actif = data->actif; |
Ne serait-ce pas plus simple de faire la copie comme �a ? :
memcpy(&copiedata, data, sizeof(TMaStruct));
Pourtant, �a ne fonctionne pas !
Certains d'entre vous ont-ils un avis sur la question ou bien ont-ils d�j� r�ussi � utiliser le memcpy avec un virtualtreeview ?
Merci de votre aide,
Partager