RE:SELECCIONAR DIRECTORIOS, NO ARCHIVOS
Hola.
desde la vers 8 (creo) la 9 si
GetFolder ( title, directory )
SI no transcribo de Celso Cortes de su pagina
Função para recuperar o diretório selecionado
//DECLARE AS FUNÇÕES : EXTERNAL FUNCTION
Function long SHBrowseForFolder( Ref BROWSEINFO lpBi ) Library "shell32.dll"
Function boolean SHGetPathFromIDList( long pIDL, Ref String pszPath )
Library "shell32.dll" Alias For "SHGetPathFromIDListA"
/// DEFINA A ESTRUTURA
/// NÃO ALTERE O NOME DA ESTRUTURA (BROWSEINFO) NEM DAS VARIÁVEIS
BROWSEINFO from structure
long hwndOwner
long pidlRoot
string pszDisplayName
string lpszTitle
ulong ulFlags
ulong lpfn
ulong lParam
long iImage
/////////////////////
//Defina com global a variável VG_RETDIR
Private:
constant ulong VG_RETDIR = 1
//Defina com global a variável MAX_PATH
Private constant long MAX_PATH = 260
//Defina a função f_browser
f_browser ( Long handler_da_w_que_chamou, String Uma_var_qualquer) returns String
// Com a função definida escreva em PB.
RETURN This.f_PG_Browse( handler_da_w_que_chamou, Uma_var_qualquer, VG_RETDIR )
// Defina outra função com o nome f_PG_Browse()
f_PG_Browser( Long handler_da_w_que_chamou, String Uma_var_qualquer, VG_RETDIR) returns String
// Com a função definida escreva em PB.
long Lista
BROWSEINFO lBI
string lsPath
// MONTAR A BROWSEINFO ESTRUTURA
lBI.hWndOwner = handler_da_w_que_chamou
lBI.pidlRoot = 0
lBI.pszDisplayName = Space( MAX_PATH )
lBI.lpszTitle = Uma_var_qualquer
lBI.ulFlags = VG_RETDIR
lBI.lpfn = 0
lBI.lParam = 0
lBI.iImage = 0
Lista = f_PG_Browser( lBI )
IF (Lista > 0) THEN
lsPath = Space( MAX_PATH )
IF NOT SHGetPathFromIDList( Lista, lsPath ) THEN
lsPath = ""
ELSE
// Foi Pressionado CANCEL ou erro selecionando a PATH
lsPath = ""
END IF
//Pegue o retorno com o diretório selecionado
RETURN Trim(lsPath)
/////////////////////////
Espero te ayude