Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier un treview dans un autre

3 réponses
Avatar
driss hanib
Bonjour à tous.

Tout est dans la question.
Je dois copier tous les noeuds d'un treeview dans un autre.
Existe-t-il un moyen pour le faire ?
je ne pense pas qu'on puisse écrire quelque chose du style "set TV = TV1" ou
bien une API ?

merci pour vos pistes

Driss

3 réponses

Avatar
Jean-marc
driss hanib wrote:
Bonjour à tous.



Hello,

Tout est dans la question.
Je dois copier tous les noeuds d'un treeview dans un autre.
Existe-t-il un moyen pour le faire ?



Oui :-)

Voici un excellent exemple illustrant un cas ou l'emploi bien
senti de la récursivité permet des faire en quelques lignes
ce qu'un programme purement itératif peinerait à faire.

Voici du code prêt à l'emploi :

http://cuinl.tripod.com/Tips/duplicatetreeview.htm

Bonne soirée !

--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jean-marc
Jean-marc wrote:

Voici un excellent exemple illustrant un cas ou l'emploi bien
senti de la récursivité permet des faire en quelques lignes
ce qu'un programme purement itératif peinerait à faire.



Ici, on a un excellent exemple de la puissance de la récursivité:
concision et clarté du code, écriture naturelle, etc.

Cependant, il ne faut pas perdre de vue que parfois (mais pas ici)
la récursivité est pénalisante et bien moins efficiente qu'une
version itérative.

Dans l'article de la FAQ consacrée à la récursivité, on donne en
exemple l'implémentation récursive de l'algorithme d'Euclide pour
le calcul du PGCD (Cf. http://faq.vb.free.fr/index.php?question2)

Il est bon de noter pour l'exemple que la version itérative de cet
algorithme (cf ci-dessous) s'exécute 2 fois plus rapidement que la
version récursive.

' Implémentation Itérative de l'algorithme d'Euclide
'
Function PGCD2(ByVal n1 As Long, ByVal n2 As Long) As Long
Dim r As Long

While Not ((n1 = 0) Or (n2 = 0))
PGCD2 = r
r = n1 Mod n2
n1 = n2
n2 = r
Wend
End Function

Voila, c'était juste une petite digression en passant, pour rappeler
que la récursivité était un merveilleux outil MAIS à utiliser à bon
escient; les parcours d'arbre sont un des cas typiques de 'bon escient'.

Bonne fin de WE à tous;

--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Driss HANIB
Merci Jean Marc pour l'exemple et pour les explications suivantes.

Driss

"Jean-marc" a écrit dans le message de news:
4b2e9395$0$2859$
Jean-marc wrote:

Voici un excellent exemple illustrant un cas ou l'emploi bien
senti de la récursivité permet des faire en quelques lignes
ce qu'un programme purement itératif peinerait à faire.



Ici, on a un excellent exemple de la puissance de la récursivité:
concision et clarté du code, écriture naturelle, etc.

Cependant, il ne faut pas perdre de vue que parfois (mais pas ici)
la récursivité est pénalisante et bien moins efficiente qu'une
version itérative.

Dans l'article de la FAQ consacrée à la récursivité, on donne en
exemple l'implémentation récursive de l'algorithme d'Euclide pour
le calcul du PGCD (Cf. http://faq.vb.free.fr/index.php?question2)

Il est bon de noter pour l'exemple que la version itérative de cet
algorithme (cf ci-dessous) s'exécute 2 fois plus rapidement que la
version récursive.

' Implémentation Itérative de l'algorithme d'Euclide
'
Function PGCD2(ByVal n1 As Long, ByVal n2 As Long) As Long
Dim r As Long

While Not ((n1 = 0) Or (n2 = 0))
PGCD2 = r
r = n1 Mod n2
n1 = n2
n2 = r
Wend
End Function

Voila, c'était juste une petite digression en passant, pour rappeler
que la récursivité était un merveilleux outil MAIS à utiliser à bon
escient; les parcours d'arbre sont un des cas typiques de 'bon escient'.

Bonne fin de WE à tous;

--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;