[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 : 11288
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

[Ex] TreeView de dossiers avec sélection.

#1

Message par Tlem » jeu. 13 août 2009 21:21

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 4796 fois
ShellTristateTreeView.zip
(15.67 Kio) Téléchargé 1278 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
Modérateur
Modérateur
Messages : 685
Enregistré le : ven. 18 avr. 2008 16:29
Status : Hors ligne

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

#2

Message par Yogui » ven. 14 août 2009 21:12

super rapide en plus merci :mrgreen:
[url=http://le_monde_de_nael.bananarchipel.com]Pour faire plaisir à ma femme ...[/url]
hébergeur gratuit

Gnifrus
Niveau 4
Niveau 4
Messages : 76
Enregistré le : mar. 14 juil. 2009 12:48
Localisation : Montauban
Status : Hors ligne

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

#3

Message par Gnifrus » ven. 11 juin 2010 07:46

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 : 11288
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

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

#4

Message par Tlem » ven. 11 juin 2010 08:18

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 : 76
Enregistré le : mar. 14 juil. 2009 12:48
Localisation : Montauban
Status : Hors ligne

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

#5

Message par Gnifrus » ven. 11 juin 2010 08:28

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
Contact :
Status : Hors ligne

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

#6

Message par Yoyo86220 » sam. 09 avr. 2011 11:02

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 : 11288
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

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

#7

Message par Tlem » sam. 09 avr. 2011 17:59

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 09:04
Status : Hors ligne

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

#8

Message par marcelino11 » lun. 25 janv. 2016 12:00

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 : 564
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

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

#9

Message par walkson » lun. 25 janv. 2016 13:32

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

marcelino11
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 21 avr. 2011 09:04
Status : Hors ligne

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

#10

Message par marcelino11 » lun. 25 janv. 2016 16:17

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 09:04
Status : Hors ligne

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

#11

Message par marcelino11 » lun. 02 juil. 2018 09:05

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 09:04
Status : Hors ligne

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

#12

Message par marcelino11 » lun. 02 juil. 2018 11:00

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