Leonardo
|
SÃO PEDRO DA ALDEIA RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 23/11/2004 11:34 hs
Olá. Sempre que preciso que o usuário selecione um arquivo, uso o Microsoft Common Dialog Control. Mas agora, preciso que ele selecione uma pasta. Qual componente devo usar? Obrigado.
|
|
|
|
Sandro
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 23/11/2004 12:44 hs
Você pode utilizar um DirListBox junto com um DriveListBox. Ao selecionar o Drive, o evento Change é disparado, então você digita o seguinte nele: Dir1.Path = Drive1.Drive Pronto, ao selecionar o drive, a lista de pastas é automaticamente direcionada para ele. Você captura a pasta através da propriedade Path.
|
|
|
THECRAZY
|
BRASÍLIA DF - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 23/11/2004 12:46 hs
Eu sou o alfa e o ômega, o princípio e o fim, diz o Senhor, que é, e que era, e que há de vir, o Todo Poderoso. (Ap 1.8)
|
|
|
Leonardo
|
SÃO PEDRO DA ALDEIA RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 23/11/2004 12:51 hs
Eu não queria usar esse DirListBox porque eu acho meio feio. Eu estava pensando numa janela parecida com a que abre no windows, quando a gente vai em Editar > Copiar arquivo para a pasta... Agora lembrei que com API dá pra usar esse Common Dialog. Será que existe alguma para o tipo de dialog que eu quero?
|
|
|
|
Postada em 23/11/2004 16:31 hs
Realmente, o DirListBox é horrível. Eu falei para você usar isso, pois na máquina em que eu estava não tinha o VB e a minha vaga lembrança não permitia lembrar como eu havia resolvido isso a um tempo atrás... Mas agora, eu encontrei o código: Private Type BrowseInfo hWndOwner As Long Root As Long folderNamePtr As Long title As Long Flags As Long callbackPtr As Long callbackParam As Long iImage As Long End Type Const MAX_PATH = 260 Declare Function SHBrowseForFolder Lib "shell32" (bi As BrowseInfo) As Long Declare Function SHGetPathFromIDList Lib "shell32" (ByVal itemID As Long, ByVal path As String) As Long Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal dest As String, ByVal As String) As Long
Na sua procedure digite isso: Dim Info As BrowseInfo Dim IdLista As Long Dim Pasta As String
With Info .hWndOwner = hWnd .title = lstrcat(Mensagem, "") .Flags = 0& End With
IdLista = SHBrowseForFolder(Info) Pasta = "" If IdLista 0 Then Pasta = Space(MAX_PATH) Call SHGetPathFromIDList(IdLista, Pasta) Pasta = Left(Pasta,Len(Pasta)-1) End If
Acho que é isso que você quer. Qualquer coisa, é só postar Um abraço, Sandro.
|
|
|
Leonardo
|
SÃO PEDRO DA ALDEIA RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 23/11/2004 19:15 hs
Perfeito. Muito obrigado.
|
|
|