Ayuda con Visual Basic 6


  • 0

    A ver, que vosotros sois los mas empollados en el tema.

    Estoy haciendo una aplicaicon para una empresa y necesito que me digais que control tengo que utilizar para poder mostrar un cuadro de dialogo por pantalla para seleccionar una carpeta.
    Para seleccionar un fichero utilizo el Microsoft common dialog pero para seleccionar una carpeta no vale. A ver si sabeis decirme que control tengo que usar para sacar por pantalla algo como esto:
    attachment_t_38434_0_5.jpg



  • 1

    Hace mucho que no programo con visual pero creo que para el arbol de directorios puedes usar un control TreeView, lo que ya no recuerdo es si con este control te salen los botones de aceptar y demas o esos los tendrias que añadir tu aparte.

    Tambien si lo que quieres es abrir un archivo determinado puedes utilizar los common dialogs en tu caso seria el de abrir, todo esto que te digo tendras que añadirlo a los controles estandar de tu proyecto como componentes activex

    Siento no poder ser mas exacto pero ya te digo que hace tiempo que no toco el visual y no tengo ningun entorno instalado en mi equipo.



  • 2

    No acabo de entender la pregunta.. te refieres a un "browse" por ejemplo, y que salga la lista de unidades? O esa ventana tiene que salir cuando… cuando ?¿ (estoy espeso xD)

    Ahora que lo vuelvo a leer por tercera vez.. te refieres a que te deje darle a "Aceptar" con 1 carpeta seleccionada envez de un archivo y que luego "guarde" la ruta de esa carpeta? pero eso parece que ya te deja hacerlo en la captura que has puesto.

    Joder, ahora lo vuelvo a leer y veo que la captura es lo que quieres hacer, no lo que has conseguido xDDD
    Tienes que jugar con el drives list, dir list y file list. Yo tengo hecho un visualizador de imagenes algo chapucero, si quieres te mando el proyecto para que te hagas una idea, no deberia ser muy distinto de lo que quieres hacer.
    Ahi una imagen:

    http://img72.imageshack.us/img72/2782/navegador4ha.jpg

    (no consigo hacer funcionar el resize de la previsualizacion pero vaya no me importa xD)

    PD: Aqui tienes el archivo por si te interesa.



  • 3

    Que yo sepa, la ventana que quieres mostrar no existe como control propiamente dicho, como es el caso del CommonDialog. Así pues, tienes dos opciones:

    • Crearte el formulario de forma manual, metiendo un control ListBox, TreeView o DirListBox, una lista de tipo FileListBox, una lista DriveListBox, un TextBox y dos botones de comando ("Aceptar" y "Cancelar")
    • Llamar a una función del API de Windows que muestre esa ventana (supongo que es la que preferirás, aunque es la más "complicadilla" de aprender)

    Para la primera, pues ya te han dicho más o menos cómo se hace. Es, quizás, la más sencilla, pero también la más lenta, al obligarte a diseñar tú mismo el formulario con todos sus controles. Claro que también te permite personalizarla totalmente a tu gusto.

    La segunda es la más rápida y profesional, pero también la más jodida de aprender, pues requiere llamar a unas cuantas funciones recogidas en el API de Windows. En esta web te explican cómo hacerlo.

    Saludetes :D



  • 4

    Sí que existe un control que está hecho para elegir un directorio. Yo lo usé en un programilla que hice. En la lista de componentes se llama: CCRP BrowseDialog Control.

    Saludos.



  • 5

    Sí que existe un control que está hecho para elegir un directorio. Yo lo usé en un programilla que hice. En la lista de componentes se llama: CCRP BrowseDialog Control.

    Hombre, vale. Puede ser que alguien haya desarrollado algún control ActiveX por su cuenta, que muestre la ventanita de marras, pero en los controles que trae Visual Basic 6 por defecto, no viene, que es a lo que yo me refería, al contrario de lo que pasa con el CommonDialog :nono:

    Ya que lo has dicho, ¿podrías postear aquí el control ese? Sería interesante para los que queremos mostrar la ventanita y no tener que llamar a las 450 funciones de rigor :D

    Saludos



  • 6

    Ya había entendido a lo que te referías y decía que ese es control que hace eso entre los que vb 6 tiene por defecto. A mí me viene en la lista de componentes por defecto que trae, ¿a ti no? Como no sea otra versión del 6.0 (la mía es la 8176)…



  • 7

    Vaya. Pues a mí no me viene, ni en la lista de controles por defecto, ni en la ventana en la que te deja agregar más controles. Yo tengo el Visual Studio 6 + Service Pack 6, y la versión de Visual Basic que tengo yo es la 9872, como puedes ver en la imagen que adjunto.

    Qué cosa más rara. Que yo sepa, cuando lo instalé, seleccioné los controles ActiveX adicionales :vayatela:

    En fin…

    Saludos :P
    attachment_p_308051_0_visual-basic-6.jpg



  • 8

    Bueno, pues ya que no está en todas las versiones, he cogido el ocx y lo he colgado para que podáis usarlo si queréis:

    ccrpbd.ocx

    Saludos



  • 9

    Hola, para mostrar ese cuadro de dialogo necesitas utilizar la función SHBrowseForFolder de la libreria shell32. Yo la he utilizado en varios proyectos y el resultado es este.

    Aquí te adjunto un modulo con la función para que la puedas usar en tu proyecto.

    Salu2.
    attachment_p_308829_0_modbuscarcarpeta.zip





Has perdido la conexión. Reconectando a Hardlimit.