banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

#2 Thu 27 May 2010 22:19

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [Map Basic] choisir un dossier pour une sauvegarde.

Bonjour
Voir ici... ou là...

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

 

Pied de page des forums

Powered by FluxBB