[Ex] TreeView de dossiers avec sélection.

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[Ex] TreeView de dossiers avec sélection.

#1

Message par Tlem »

Voici un exemple de script provenant du forum Anglais, qui permet d'afficher un arbre complet de l'ordinateur, de ces disques dur et de ses dossiers (voir image jointe).

Téléchargez le zip joint et amusez vous. ;)

Ancienne version téléchargée 126 fois.
Fichiers joints
ShellTristateTree.PNG
ShellTristateTree.PNG (16.27 Kio) Vu 20926 fois
ShellTristateTreeView.zip
(15.67 Kio) Téléchargé 1993 fois
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#2

Message par Yogui »

super rapide en plus merci :mrgreen:
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#3

Message par Gnifrus »

Bonjour,

Je me permets de relancer ce sujet, car je suis très fortement interessé par ce script, mais il ne fonctionne pas chez moi.
En effet, lorsque je lance ShellTristateTreeDemo.au3, il m'affiche :

C:\ShellTristateTreeView\ShellTristateTreeView.au3(57,78) : ERROR: $CLR_NONE previously declared as a 'Const'
If Not IsDeclared("CLR_NONE") Then Global Const $CLR_NONE= 0xFFFFFFFF

C:\ShellTristateTreeView\ShellTristateTreeView.au3(197,40) : WARNING: $TVN_ITEMEXPANDING: possibly used before declaration.
Case $TVN_ITEMEXPANDING

C:\ShellTristateTreeView\ShellTristateTreeView.au3(533,33) : WARNING: $TVM_SETITEM: possibly used before declaration.
SendMessage($hWnd, $TVM_SETITEM,

C:\ShellTristateTreeView\ShellTristateTreeView.au3(542,33) : WARNING: $TVM_GETITEM: possibly used before declaration.
SendMessage($hWnd, $TVM_GETITEM,

C:\ShellTristateTreeView\ShellTristateTreeView.au3(197,40) : ERROR: $TVN_ITEMEXPANDING: undeclared global variable.
Case $TVN_ITEMEXPANDING

Je ne comprends pas bien pourquoi ?

Et d'une manière générale, quelqu'un pourrait-il expliquer quel est la démarche générale de création d'un tel script, sans rentrer dans les détails tel que utilisation d'images pour les checkBox personnalisées, les icônes à utiliser....etc...un truc simple, du style :
1) je crée un TreeView
2) je recherche les dossiers, sous-dossiers et fichiers que je place dans un tableau
3) je fais correspondre les éléments de ce tableau à mes checkBox
4) l'utilisation des sélections de checkbox sont possibles grâce à tel et tel procédés...
....etc

Il est vrai que ce script est génial (quand il fonctionne), mais permet difficilement de comprendre la méthodologie utilisée pour résoudre le problème initial, à savoir afficher les dossiers, sous-dossiers et fichiers en arborescence, comme un explorateur windows.

Merci d'avance à ceux ou celles qui me permettront d'avancer en ce sens...

Bonne journée,

Gnifrus.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#4

Message par Tlem »

L'archive a été mise à jour avec l'ancienne version et une version modifiée pour fonctionner avec AutoIt 3.3.6.0.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#5

Message par Gnifrus »

Génial !
Merci beaucoup !

Bonne journée,

Gnifrus.
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#6

Message par Yoyo86220 »

Bonjour,

Génial! mais...
je n'arrive pas a modifier le script pour retiré les cases "CHECKBOX"...

Quelqu'un peu m'aider? MERCI!
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#7

Message par Tlem »

Pour les demandes d'aide, il y à une section prévue à cet effet ... :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
marcelino11
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 21 avr. 2011 10:04
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#8

Message par marcelino11 »

Bonjour,

Je me permets de relancer ce sujet, car j'utilisais ce fichier en version 3.3.8.1 et j'ai mis à jour autoit avec la version 3.3.14.2 et ca ne fonctionne plus, il y a des erreurs:

"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(56,84) : error: $LR_LOADFROMFILE previously declared as a 'Const'.
If Not IsDeclared("LR_LOADFROMFILE") Then Global Const $LR_LOADFROMFILE = 0x0010
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(57,89) : error: $LR_LOADTRANSPARENT previously declared as a 'Const'.
If Not IsDeclared("LR_LOADTRANSPARENT") Then Global Const $LR_LOADTRANSPARENT = 0x0020
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(58,90) : error: $LR_CREATEDIBSECTION previously declared as a 'Const'.
If Not IsDeclared("LR_CREATEDIBSECTION") Then Global Const $LR_CREATEDIBSECTION = 0x2000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(60,75) : error: $IMAGE_BITMAP previously declared as a 'Const'.
If Not IsDeclared("IMAGE_BITMAP") Then Global Const $IMAGE_BITMAP = 0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(62,73) : error: $GWL_STYLE previously declared as a 'Const'.
If Not IsDeclared("GWL_STYLE") Then Global Const $GWL_STYLE = -16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~^

J'ai essayé de rechercher une nouvelle version ici et sur le forum anglais, je n'ai pas trouvé?
Pouvez-vous m'aider ? Ou existe-il une nouvelle méthode pour pouvoir avoir des cases avec trois états ?


Par avance merci
Marcel PRUDHOMME
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#9

Message par walkson »

Bonjour,
Désactiver les lignes correspondantes aux erreurs

Code : Tout sélectionner

;If Not IsDeclared("LR_LOADFROMFILE")		Then	Global Const $LR_LOADFROMFILE			= 0x0010
;If Not IsDeclared("LR_LOADTRANSPARENT")		Then	Global Const $LR_LOADTRANSPARENT		= 0x0020
;If Not IsDeclared("LR_CREATEDIBSECTION")	Then	Global Const $LR_CREATEDIBSECTION		= 0x2000
;If Not IsDeclared("CLR_NONE")				Then	Global Const $CLR_NONE					= 0xFFFFFFFF
;If Not IsDeclared("IMAGE_BITMAP")			Then	Global Const $IMAGE_BITMAP				= 0
If Not IsDeclared("VK_SPACE")				Then	Global Const $VK_SPACE					= 32
;If Not IsDeclared("GWL_STYLE")				Then	Global Const $GWL_STYLE					= -16
En fait, ces constantes sont déjà déclarées dans winapiconstants.au3
Fonctionne sous 3.3.12.0
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
marcelino11
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 21 avr. 2011 10:04
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#10

Message par marcelino11 »

C'était simple ! Je n'avais pas osé y toucher.

Merci pour la réactivité
marcelino11
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 21 avr. 2011 10:04
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#11

Message par marcelino11 »

Bonjour,

Je relance une nouvelle fois le sujet :-)
J'utilise toujours le fichier en version 3.3.14.5, il fonctionne correctement en x86, par contre il y a des soucis lorsque mon script est exécuté en x64.

Etant donné qu'il y a également des incohérences dans l'arborescence qui est crée, je me demande s'il n'y a pas un autre soucis ailleurs, notamment dans la gestion du treeview.
En faisant des recherches, le "handle" des éléments est de forme: 0x03506D86 (8 caractères) pour du x86 et de forme: 0x00000000042CB1C0 (16 caractères) pour du x64.
Est-ce cela qui pose problème ?
Avez-vous déjà eu ce genre de comportement ? Des pistes ?


Vous remerciant par avance pour votre aide
Marcel
marcelino11
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 21 avr. 2011 10:04
Status : Hors ligne

Re: [Ex] TreeView de dossiers avec sélection.

#12

Message par marcelino11 »

Il y a un comportement identique avec l'aide de "_GUICtrlTreeView_AddChild".
Après compilation en x64, l'arborescence est différente de celle affichée en x86.

Edit: J'ai trouvé pour avoir de nouveau une arborescence correct en x64, par contre, l'UDF pour le tristate ne fonctionne toujours pas en x64.
J'ai cherché et testé pas mal de chose sur le forum anglais, sans succès :(
Répondre