OVH Cloud OVH Cloud

Cherche objet boîte de dialogue

2 réponses
Avatar
Joseph PUSZTAY
Bonjour,

Je cherche la boîte de dialogue identique à celle de l'explorateur de
Windows, qui place en premier le bureau, puis un peu en dessous C.... avec
possibilité de récupérer le chemin choisi par clique ?

Je ne trouve pas cet objet, faut-il en prendre un autre et le modifier?

Merci, au revoir et à bientôt.

Joe.

2 réponses

Avatar
Christophe
Voila un bout de code qui te donne les repertoires,

christophe Vergon


Public Function strSelectFolder(hwnd&) As String

Dim shellOperator As Object
Dim folRepSel As Object
Dim foliFile As Object
Dim rep As Object
Dim sFullPath As String
Dim sNameFolder As String
Dim sComplement As String

'ouverture de la fenetre choix du répertoire

'Affiche la boite de sélection des répertoire
Set shellOperator = CreateObject("Shell.Application")
Set folRepSel = shellOperator.BrowseForFolder(hwnd&, "Répertoire où
trouver les images :", 1)
If folRepSel Is Nothing Then
strSelectFolder = ""
Exit Function
End If

'récupère la collection des fichiers contenus dans le répertoire
Set rep = folRepSel.Items
sComplement = ""
If rep.count = 0 Then
'récupère le premier élément du répertoire parent
Set foliFile = folRepSel.ParentFolder.Items.Item(0)
sComplement = folRepSel.Title + ""
Else
Set foliFile = rep.Item(0)
'premier élément, on récupère le nom du répertoire
End If

'récupère le chemin de l'item
sFullPath = foliFile.Path
'construction du chemin
If sFullPath = "" Then
'choix d'un ordinateur réseau
'il faut mettre NOM_ORDI
sFullPath = "" + sComplement
Else
'pas racine d'un ordi distant
'récupère le nom de l'item
sNameFolder = foliFile.Name
'construction du path
sFullPath = Left(sFullPath, Len(sFullPath) - Len(sNameFolder)) +
sComplement
End If
Set foliFile = Nothing
Set shellOperator = Nothing
Set folRepSel = Nothing

strSelectFolder = sFullPath

End Function
"Joseph PUSZTAY" a écrit dans le message de news:

Bonjour,

Je cherche la boîte de dialogue identique à celle de l'explorateur de
Windows, qui place en premier le bureau, puis un peu en dessous C.... avec
possibilité de récupérer le chemin choisi par clique ?

Je ne trouve pas cet objet, faut-il en prendre un autre et le


modifier?

Merci, au revoir et à bientôt.

Joe.




Avatar
Ledev
Joseph PUSZTAY wrote:
Bonjour,



Bonjour,

Je cherche la boîte de dialogue identique à celle de
l'explorateur de Windows, qui place en premier le bureau, puis un peu
en dessous C.... avec possibilité de récupérer le chemin choisi par
clique ?

Je ne trouve pas cet objet, faut-il en prendre un autre et le
modifier?



Tu peut utilisée TreeView(dans les contrôles communs).
Ainsi, tu place toi même le bureau et le poste de travail, et tu obtient
alors la liste des lecteurs par api de préférence(mais tu peu aussi passez
par un contrôle DriveList) et tu explore les dossiers avec Dir.
Pour explorer les dossiers et les sous dossiers, cela peut sembler
compliquer, mais disons que l'astuce consiste a faire une sub qui s'appelle
elle même pour les sous dossiers:
sub AjouteDossier(NomDossier)
'Je n'aurrai pas le temps de m'atarder, donc je donne en gros, mais je
te la compléterai demain si j'en ait le temps(les cours sont trés prenant
:-( ).
'Ajoute le dossier à la liste
'Utilise la méthode Add de la collections Nodes de l'objet TreeView

'Puis tu listes tous les sous dossiers avec dir(je pense que tu sais
faire)
'Et pour chaque sous dossiers:
AjouteDossier(LeNouveauDossier)

end sub



Pour ce qui est de "gérer" les noeuds, passe par la key de chaque noeud pour
mettre le chemin complet(par exemple c:MonDossier1MonDossier2), et la
propriété Text pour juste le nom(MonDossier2). Ainsi pour ajouté
MonDossier3, suffit d'ajoutée un noeud comme suit:
Key="c:MonDossier1MonDossier2MonDossier3"
Text="MonDossier3"
Parent(ceci doit être le premier argument de la methode add de
nodes)="c:MonDossier1MonDossier2"

Voilà, a+.