#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