#1 Thu 27 May 2010 20:21
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
[Map Basic] choisir un dossier pour une sauvegarde.
Bonjour,
Voici mon petit problème. Je crée une application qui crée des tables à parti d'une autre table. Dans l'application, on demande à l'utilisateur de choisir un dossier ou sauvgarder ces nouvelles tables. Or je ne trouve aucune fonction qui permettent à l'utilisateur de choisir un dossier/folder/directory.
FileSaveAsDlg nous demande un nom de fichier ainsi que le type ce que je veux éviter
FileOpenDlg nous demande aussi la même chose
Je suis capable de récupérer le dossier qui m'intéresse avec le FileSaveAsDlg mais l'utilisateur doit enter un nom de table bidon étant données que les nouvelles tables ont un nom différent de la table originale.
J'aimerais que l'utilisateur choisis un dossier et clique ouvrir pour le choisir.
Merci.
JF
Hors ligne
#3 Fri 28 May 2010 14:39
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: [Map Basic] choisir un dossier pour une sauvegarde.
Voici la solution que j'ai garder pour intéger à mon code simplement besoin d'un bouton qui "calling" dir_handler
Code:
Declare sub dir_handler
Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Integer)
define MAX_PATH 260
Type BrowseInfo
hWndOwner As Integer
pIDLRoot As Integer
pszDisplayName As String
lpszTitle As String
ulFlags As Integer
lpfnCallback As Integer
lParam As Integer
iImage As Integer
End Type
Declare Function choixrepert(byval sPrompt As String) As String
Declare Function SHBrowseForFolder Lib "shell32" Alias "SHBrowseForFolderA"(lpbi As BrowseInfo) As Integer
Declare Function SHGetPathFromIDList Lib "shell32"
Alias "SHGetPathFromIDListA" (ByVal pidList As Integer, lpBuffer As String) As Integer
Dim repertoire As String
'-------------------------------
Sub dir_handler
Dim test as String
test=choixrepert("cliquer sur le disque ou dossier choisi")
If test="" then
repertoire=ApplicationDirectory$()
Else
If right$(test,1)="\" Then
repertoire=test
Else
repertoire=test+"\"
End If
End if
print "Le chemin du dossier choisi est : "+repertoire
End Program
End Sub
'-------------------------------
Function choixrepert(byval sPrompt As String) As String
Dim nNull,lpIDList,nResult,retval As Integer
Dim sPath As String
Dim bi As BrowseInfo
bi.hWndOwner = 0
bi.pszDisplayName = Space$(MAX_PATH)
bi.lpszTitle = sprompt
bi.ulFlags = 0
lpIDList = SHBrowseForFolder(bi)
If lpIDList <> 0 Then
sPath = Space$(260)Bravo pour ce code car je n'y comprend rien
Merci
Dernière modification par jean94 (Fri 28 May 2010 14:39)
Hors ligne


