Oppure

Loading
31/05/07 15:18
Cross
ciao a tutti voi che fate parte di questo grande e bellissimo forum.
ho un problemuccio.
ragazzi nel programma che ho fatto, premendo sul pulsante sfoglia mi compare il famoso "sfoglia per cartelle" di windows.
però in questo "sfoglia per cartelle" nn cè il pulsante "crea cartella", come mai???
Se cè un codice da scrivere me lo potete dire????
grazie molte
aaa
31/05/07 16:19
motoboy
Postato originariamente da Cross:

ciao a tutti voi che fate parte di questo grande e bellissimo forum.
ho un problemuccio.
ragazzi nel programma che ho fatto, premendo sul pulsante sfoglia mi compare il famoso "sfoglia per cartelle" di windows.
però in questo "sfoglia per cartelle" nn cè il pulsante "crea cartella", come mai???
Se cè un codice da scrivere me lo potete dire????
grazie molte


Si chiama COMMON DIALOG, in VB.
E non sfoglia cartella di Win.

Del resto, se hai creato te il tuo progetto dovresti sapere che potresti benissimo crearti il "Crea Cartella", nel tuo "Sfoglia cartelle" ;)
aaa
31/05/07 16:43
Cross
guarda nn lo fatto tutto io, perchè ci sono state spiegazioni da parte di un'utente nn di questo forum, solo che ora lui nn risponde + e quindi mi rivolgo a voi.
se perfavore me lo potete dire o spiegare.
perfavore...
grazie
aaa
31/05/07 16:45
P4p3r0g4
posta il codice altrimenti è difficile aiutarti.
solo la parte interessata non l'intero progetto.
aaa
31/05/07 17:19
Cross
Option Explicit


Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type

Private Const BIF_RETURNONLYFSDIRS = &H1
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)

Public Function SfogliaCartelle(ByVal Handle As Long) As String
Dim BInfo As BROWSEINFO
Dim CartellaScelta As Long
Dim PercorsoAllocato As Long
Dim PercorsoScelto As String
BInfo.hOwner = Handle
BInfo.lpszTitle = "Scegli una cartella:"
BInfo.ulFlags = BIF_RETURNONLYFSDIRS
PercorsoAllocato = SHBrowseForFolder(BInfo)
PercorsoScelto = Space$(512)
CartellaScelta = SHGetPathFromIDList(PercorsoAllocato, PercorsoScelto)
If CartellaScelta Then
SfogliaCartelle = Left$(PercorsoScelto, InStr(PercorsoScelto, Chr$(0)) - 1)
CoTaskMemFree PercorsoAllocato
Else
SfogliaCartelle = ""
End If
End Function

Private Sub Sfoglia_Click()
Percorso.Text = SfogliaCartelle(Me.hWnd)
End Sub

ok questo è il codice.
cosa devo cambiare o inserire???
grazie molte
aaa
01/06/07 9:13
P4p3r0g4
Private Const BIF_USENEWUI = &H40
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)

Public Function SfogliaCartelle(ByVal Handle As Long) As String
Dim BInfo As BROWSEINFO
Dim CartellaScelta As Long
Dim PercorsoAllocato As Long
Dim PercorsoScelto As String
BInfo.hOwner = Handle
BInfo.lpszTitle = "Scegli una cartella:"
BInfo.ulFlags = BIF_USENEWUI
PercorsoAllocato = SHBrowseForFolder(BInfo)
PercorsoScelto = Space$(512)
CartellaScelta = SHGetPathFromIDList(PercorsoAllocato, PercorsoScelto)
If CartellaScelta Then
SfogliaCartelle = Left$(PercorsoScelto, InStr(PercorsoScelto, Chr$(0)) - 1)
CoTaskMemFree PercorsoAllocato
Else
SfogliaCartelle = ""
End If
End Function

et voilà
bastava modificare lo stile.
Ultima modifica effettuata da P4p3r0g4 01/06/07 9:14
aaa