Boite dialogue selection dossier ou fichier

Signaler
Messages postés
237
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
6 décembre 2005
-
Messages postés
11
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
15 avril 2006
-
Bonjour,

Actuellement, dans mon prog j'ai deux boutons :
- un qui ouvre une boite de dialogue permettant de sélectionner un fichier (CommonDialog)
- un qui ouvre une autre boite de dialogue permettant de sélectionner un répertoire (API).

L'idée serait de trouver une boîte de dialogue qui permette de sélectionner soit un répertoire soit un fichier.

Si quelqu'un sait comment faire, merci d'avance !

4 réponses

Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013

Salut,

J'aurais une option pour toi :

Tu crée une form avec une FileListBox et une DirListBox et avec en plus 2 optionButtons exclusifs où tu indique si tu choisis le répertoire ou le fichier.

Ensuite dans ton prog, en fonction de l'optionbutton tu fait transiter dans ta variable FileListBox1.FileName (nom du fichier) ou DirListBox1.name (nom du répertoire)

Zifnig
Messages postés
237
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
6 décembre 2005
3
Je te remercie pour ta réponse, mais c'est justement ce que je voulais éviter (cela revient un peu à ce que je fais actuellement). J'aurais souhaiter obtenir une boite de dialogue qui permettait de sélectionner fichiers et répertoires, comme celle qui est dans WINRAR par exemple.
Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013

Il ne reste plus que l'OCX personnalisé (ActiveX).

Zifnig
Messages postés
11
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
15 avril 2006

Utilise cette fonction; Je l'ai découverte il ya trois jours
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Function DirDlg(TheOwner As Long) As String
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo


With udtBI
'on définit ici le parent
.hWndOwner = TheOwner
'lstrcat appends the two strings and returns the memory address
.lpszTitle = lstrcat("C:", "")
'Return only if the user selected a directory
.ulFlags = BIF_RETURNONLYFSDIRS
End With


'Show the 'Browse for folder' dialog
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
'Get the path from the IDList
SHGetPathFromIDList lpIDList, sPath
'free the block of memory
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If


DirDlg = sPath
End Function

Pas le temps de traduire les commentaires

__________________________________________________________
Je persiste à croire qu'il n'y a rien dans la technologie....