PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Explorateur de fichiers
Explorateur de fichiers
Débuté par exkael, 20 jan. 2005 22:35 - 9 réponses
Posté le 20 janvier 2005 - 22:35
Bonjour,

j'ai eu beau fouillé la doc de windev 9, je n'ai rien trouvé sur un éventuel composant ou un exemple permettant de créér un champ contenant un explorateur de fichiers.

Quelqu'un peut m'aider ou m'indiquer comment procéder ?

Merci.
Posté le 20 janvier 2005 - 23:54
Je suis nouveau à Windev et j'ai la même requête.
Je souhaiterai créer un TreeView de type "Browse for folder" comme dans Explorer, comment faire ?
Posté le 21 janvier 2005 - 14:50
Z'avez pas bien cherché....
tu devrais trouver ton bonheur avec la fonction fRepSelecteur

Gromit.

"Patrice Terrier" <pterrier@zapsolution.com> a écrit dans le message de
news: 41f01e0e$1@news.pcsoft.fr...
Je suis nouveau à Windev et j'ai la même requête.
Je souhaiterai créer un TreeView de type "Browse for folder" comme dans
Explorer, comment faire ?



Posté le 21 janvier 2005 - 15:51
Salut,

Voici un petit bout de code qui permet d'explorer les dossiers dans un champ Arbre (TreView) en excluant les dossiers cachés:

//gtParam[2] correspond à un dossier ou je stocke mes icones system//

========================================================
========================================================
A l'initialisation de la fenetre contenant le champ Arbre:

//Remplissage de l'arbre à l'ouverture Début ///////////////////////////////////
e, eLecteur est un entier
POUR eLecteur = 65 A 90
e = fDisqueInfo(Caract(eLecteur) + ":",fdTypeDisque)
SELON e
CAS 1 //Amovible
ArbreAjoute(arbDossier, Caract(eLecteur) + ":", gtParam[2] + "Amovible.ico",gtParam[2] + "Amovible.ico")
CAS 2 //Dur
ArbreAjoute(arbDossier, Caract(eLecteur) + ":", gtParam[2] + "Dur.ico", gtParam[2] + "Dur.ico")
CAS 4 //Réseau
ArbreAjoute(arbDossier, Caract(eLecteur) + ":", gtParam[2] + "Reseau.ico", gtParam[2] + "Reseau.ico")
CAS 8 //Lecteur
ArbreAjoute(arbDossier, Caract(eLecteur) + ":", gtParam[2] + "Cdrom.ico", gtParam[2] + "Cdrom.ico")
FIN
FIN
//Remplissage de l'arbre à l'ouverture Fin ///////////////////////////////////

========================================================
========================================================
//Dans le code de click sur l'Arbre :


//Explorer récursivement le repertoire du noeud sélectionner ////////////////////////////
sNoeud est une chaîne = ArbreSelect(MoiMême)
sDossier est une chaîne = fRep(Remplace(sNoeud, TAB, "\") + "\*", frRépertoire)
sAttribut est une chaîne
TANTQUE sDossier <> ""
sAttribut = fRepAttribut(Remplace(sNoeud, TAB, "\") + "\" + sDossier)
SI Remplace(sAttribut, "H", "") = sAttribut ALORS
ArbreAjoute(MoiMême, sNoeud + TAB + sDossier, gtParam[2] + "DossierF.ico", gtParam[2] + "DossierO.ico")
FIN
sDossier = fRep("", frRépertoire)
FIN
//Explorer récursivement le repertoire du noeud sélectionner ////////////////////////////

Pour y rajouter les fichiers, c'est le même principe que ci-dessus.
Un double-Click déroule le noeud sélectionné.

En espérant avoir eclairé votre lanterne

Laurent_B
Posté le 21 janvier 2005 - 20:53
Pas mal.. mais bon on est loin de celui de windows (icones des fichiers par exmple)

Il n'a aucun moyen de recupérer celui de windows ?
Posté le 21 janvier 2005 - 23:50
Je sais le faire en utilisant l'API SHGetFileInfo et SHGFI_SYSICONINDEX || SHGFI_SMALLICON pour récupérer les icônes.
J'espérais seulement qu'il y avait déjà une classe Windev "toute faite" pour ce cas de figure, pour m'éviter l'écriture d'une DLL supplémentaire.

Malgré tout merci pour le feedback.

Patrice Terrier
www.zapsolution.com
Posté le 22 janvier 2005 - 00:40
Que reproches-tu à la fonction fRepSelecteur() ?
Freddie

Dans son message précédent, exkael a écrit :
Pas mal.. mais bon on est loin de celui de windows (icones des fichiers par exmple)

Il n'a aucun moyen de recupérer celui de windows ?


--
freddie3@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Posté le 22 janvier 2005 - 11:38
Freddie,

fRepSelecteur est une encapsulation de l'API SHBrowseForFolder qui affiche une boîte de dialog popup.

Ce que je souhaite faire, c'est afficher DIRECTEMENT le TreeView dans une fenêtre Windew en tant que "child control", car le Treeview doit rester affiché en permanence sur la gauche de ma fenêtre principale comme dans l'Explorateur de Windows.

Voici un exemple de ce que je souhaite pouvoir faire :
htt://www.zapsolution.com/zmsexp.htm

Merci
Posté le 22 janvier 2005 - 15:01
Oulà.. ça devient compliqué ^^

Tu pourrais détailler un peu stp ?
Posté le 24 janvier 2005 - 16:40
Pour ma part j'ai reussi a faire un treeview qui affiche les repertoires et les fichiers de tous mes HDD grace à l'algo qui nous a été donné (merci d'ailleurs ^^). La je vais m'attaquer à laffichage des icones selon le type de fichier ajouté dans l'arbre.

Je trouve vraiment dommage de devoir faire tout cela juste pour avoir un champ explorateur windows ancré dans une fenetre...