NOTA: Este control es parecido a SelDir (gsSelDir.ocx), pero he a�adido la opci�n de poder mostrar y seleccionar un archivo.
Puedes probarlo en la p�gina de ejemplo del control (pincha aqu�), te recuerdo que para poder instalar el control, deber�s tener "puesta" la seguridad en "media" para que te pregunte si quieres instalar los componentes.
Puedes seguir fi�ndote de mi, no tiene "virus".Baja los listados para VB5 (SelDirFile.zip 16.0 KB)
El funcionamiento es igual que el de "su primo hermano" gsSelDir, s�lo que ahora he a�adido una opci�n (o m�todo) para poder mostrar/seleccionar archivos.
Si ya has usado el gsSelDir, puedes sustituir el otro control por este y no tendr�s que cambiar la forma de usarlo.
Las nuevas propiedades y m�todos son:Propiedades: FileName Nombre del archivo/Path del directorio Filter Extensiones a mostrar, en formato: Descrip|ext;ext|Descp2|ext;ext... DialogTitle El Caption del di�logo Flags Pueden ser estos valores, o una suma de ellos: (Cuando se muestra con ShowOpen/ShowSave, est�n todos conectados) sdfFile 1-Mostrar los archivos sdfExt 2-Mostrar las extensiones sdfInfo 4-Mostrar la informaci�n del archivo sdfPic 8-Mostrar el picture para ver los archivos gr�ficos Stretch Para asignar la propiedad del mismo nombre de la imagen del di�logo M�todos: ShowOpen Seleccionar un archivo ShowSave Seleccionar un archivo (por compatibilidad con los di�logos comunes) ShowSelDir Seleccionar un directorio (no muestra ni archivos no extensi�n) ShowSelFile Seleccionar un archivo, opcionalmente mostrar� la imagen y la informaci�n SplitPath Para "desgranar" una ruta en sus partes...Para usarlo, hazlo de esta forma:
'Seleccionar un directorio: Text1(cDirIni) = oSelDir.ShowSelDir(Trim$(Text1(cDirIni))) 'Seleccionar un archivo: oSelDir.Filter = "Todos los archivos|*.*|Basic|*.vbp;*.bas" oSelDir.filename = Trim$(Text1(0)) oSelDir.Flags = sdfInfo + sdfPic oSelDir.ShowOpen sFile = oSelDir.filename 'O tambi�n de esta forma: sFile = oSelDir.ShowSelFile(Trim$(Text1(0))) sFile = oSelDir.ShowSelFile(Trim$(Text1(0)), sdfInfo + sdfPic) oSelDir.SplitPath sFile, sPath, , sExt Text1(0) = "." & sExt Text1(cDirIni) = sPath 'Para crear una colecci�n de los archivos especificados, 'y mostrarlos en un listbox: (esto es igual que con el otro control) Private Sub CmdAceptar_Click() 'Empieza la acci�n Dim sRuta As String Dim i As Long Dim sExt As String Dim tNombre As Object Dim colDir As Object Dim cSelDir As Object Set tNombre = oSelDir.cNombre Set colDir = oSelDir.cNombres Set cSelDir = oSelDir.SelDir On Local Error Resume Next If cmdAceptar.Caption = "Cancelar" Then Cancelar = True cSelDir.Cancelar = True GoTo Salir End If Cancelar = False cSelDir.Cancelar = False sRuta = Trim$(Text1(cDirIni)) cmdAceptar.Caption = "Cancelar" MousePointer = vbArrowHourglass DoEvents 'Leer la estructura de directorios, si se activa Check1 ' Text1(cExtension) = Trim$(Text1(cExtension)) 'Asegurarse de que se queda s�lo la extensi�n sExt = Text1(cExtension) oSelDir.SplitPath sExt, "", , sExt If Check1 Then 'Si se recorren los directorios, usar la funci�n Label2 = "Procesando los directorios de " & sRuta If Len(sExt) Then Label2 = Label2 & vbCrLf & "con la extensi�n: " & sExt End If DoEvents cSelDir.Directorios colDir, sRuta, sExt Label2 = "" If cSelDir.Cancelar Then GoTo Salir End If Else If Len(Text1(cExtension)) Then 'Los archivos del directorio especificado cSelDir.Directorio colDir, sRuta, Text1(cExtension) If cSelDir.Cancelar Then GoTo Salir End If Else 'S�lo el directorio actual colDir.Nuevo sRuta End If End If 'Mostrar el contenido de colDir List1.Clear For Each tNombre In colDir.Nombres List1.AddItem tNombre.Nombre Next Label2 = "Archivos/Directorios hallados: " & List1.ListCount 'Liberar memoria y los objetos Set tNombre = Nothing Set colDir = Nothing Set cSelDir = Nothing ' Salir: 'Restaurar los "valores" por defecto cmdAceptar.Caption = "&Aceptar" MousePointer = vbDefault DoEvents On Local Error GoTo 0 End SubY esto es todo, como te digo siempre: echale un vistazo al c�digo y ver�s lo f�cil que es esto de crear controles.
Adem�s funciona con VB4 de 32 bits sin problemas.� A disfrutarlo !