Foros del Web » Programación para mayores de 30 ;) » Programación General »

Control similar al DirListBox

Estas en el tema de Control similar al DirListBox en el foro de Programación General en Foros del Web. Aunque el DirListBox es medianamente efectivo, me he dado cuenta que casi todas las aplicaciones actuales utilizan un standart o al menos una interfaz muy ...
  #1 (permalink)  
Antiguo 25/11/2004, 00:16
 
Fecha de Ingreso: mayo-2004
Ubicación: En mi casa
Mensajes: 54
Antigüedad: 19 años, 11 meses
Puntos: 0
Control similar al DirListBox

Aunque el DirListBox es medianamente efectivo, me he dado cuenta que casi todas las aplicaciones actuales utilizan un standart o al menos una interfaz muy similar cuando de seleccionar carpetas se trata.

Quiero saber si este es un control ocx o que y como lo puedo insertar en mi proyecto de vb (si se puede).
Si quieren ver un muestra del control que del que les hablo (si es que es un control) abran el explorador de Windows(XP) y en Edición>Copiar a la carpeta.

Última edición por 00000; 25/11/2004 a las 00:31
  #2 (permalink)  
Antiguo 25/11/2004, 05:47
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 5 meses
Puntos: 0
Para obtener ese cuadro copia este código en un módulo:

Código:
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
    Alias "SHGetPathFromIDListA" ( _
    ByVal pidl As Long, _
    ByVal pszPath As String) As Long

Private Declare Function SHBrowseForFolder Lib "shell32.dll" _
    Alias "SHBrowseForFolderA" ( _
    lpBrowseInfo As BROWSEINFO) As Long

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

Const BIF_RETURNONLYFSDIRS = &H1

Function GetFolder(meX As Form, title As String) As String

    Dim Browse_Folder As BROWSEINFO
    Dim Item_ID As Long, Result As Long
    Dim NewPath As String

    Browse_Folder.hOwner = meX.hwnd
    Browse_Folder.lpszTitle = title

    ' The type of folder(s) to return
    Browse_Folder.ulFlags = BIF_RETURNONLYFSDIRS

    Item_ID = SHBrowseForFolder(Browse_Folder)
    NewPath = Space(512)
    Result = SHGetPathFromIDList(ByVal Item_ID, ByVal NewPath)

    GetFolder = Terminador(NewPath)

    If GetFolder <> "" Then
        If Not Right(GetFolder, 1) = "\" Then
            GetFolder = GetFolder & "\"
        End If
    End If
    
End Function

Function Terminador(ByVal VarString As String) As String

    Dim Cero As Integer
    
    Cero = InStr(VarString, Chr$(0))
    If Cero > 0 Then
        Terminador = Left$(VarString, Cero - 1)
    Else
        Terminador = VarString
    End If
    
End Function
Para utilizarlo simplemente:

Código:
DirectorioSeleccionado = GetFolder (Me, "Buscar carpeta ...")
Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
  #3 (permalink)  
Antiguo 25/11/2004, 19:47
 
Fecha de Ingreso: mayo-2004
Ubicación: En mi casa
Mensajes: 54
Antigüedad: 19 años, 11 meses
Puntos: 0
Muchas gracias

Que gran satisfacción se siente cuando alguien te saca de problemas así de rápido, Muchas gracias !.
__________________
Quiero que ciencia y tecnología avancen muy rápido, por eso comparto lo que se, podría servir a alguién q esté creando algo genial.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:51.