Sección de tutoriales y manuales vb
Nota: En la siguiente página hay mas ejemplos relacionados
Ejemplos sobre cuadro de diálogos en visual basic
Para poder utilizar dichos cuadros de diálogo hay que incluir al proyecto el ocx Microsoft Common Dialog Controls. Esto se hace desde el menú Proyecto en la opción componentes.
Una ves incluído dicho ocx en nuestro proyecto, con el mismo podemos utilizar todos los cuadros de diálogo mencionados anteriormente. Para insertarlo e incorporarlo solo hay que hacerlo como cualquier otro control, es decir hacer un doble click sobre el mismo o seleccionarlo y dibujarlo en el formulario en que lo vamos a utilizar.
Para poder utilizar el cuadro que permite abrir y poder seleccionar archivos, se utiliza el método ShowOpen.
Al ejecutar este método, automáticamente se abre el cuadro de diálogo que nos permite seleccionar un fichero del disco.
Antes de ver un ejemplo se describen algunas propiedades importantes.
Como se mencionó, para llamar a este cuadro se utiliza el método ShowOpen. Por ejemplo:
CommonDialog1.ShowOpen
Al hacer esto se abre el mismo y podemos seleccionar un fichero. Cuando seleccionamos uno, el control Commondialog, en su propiedad FileName, nos devuelve la ruta del archivo elegido, en cambio si no se selecciona ninguno, la propiedad FileName devuelve una cadena vacía.
Por ejemplo, este fragmento de código lo que hace es, al presionar un botón abre el CommonDialog con ShowOpen, y luego de que nosotros seleccionamos un archivo, mostramos el path o ruta del mismo en un control Label1.
Private Sub Command1_Click() 'Abrimos el Commondialog con ShowOpen CommonDialog1.ShowOpen 'Si seleccionamos un archivo mostramos la ruta If CommonDialog1.FileName <> "" Then Label1 = CommonDialog1.FileName Else 'Si no mostramos un texto de advertencia de que no se seleccionó _ ninguno, ya que FileName devuelve una cadena vacía Label1 = "No se seleccionó ningún archivo" End If End Sub
Para poder establecerle un título al cuadro de diálogo, como por ejemplo, "Seleccione un fichero" o el texto que se quiera, se utiliza la propiedad DialogTitle, ejemplo:
'Le establecemos la propiedad DialogTitle CommonDialog.DialogTitle = "Seleccione un archivo" 'Abrimos el Commondialog con ShowOpen CommonDialog1.ShowOpen
Para poder permitir visualizar determinadas extensiones se utiliza la propiedad Filter. A esta propiedad que es de tipo String, se le indican las extensiones, con una descripción, separadas por el caracter "|", creo que se llamaba Pipe si no me acuerdo mal.
El siguiente ejemplo abre un cuadro de diálogo que visualiza solo archivos de texto con extensión .txt
CommonDialog.Filter = "Archivos de texto|*.txt"
CommonDialog.ShowOpen
Este otro ejemplo visualiza, o mejor dicho filtra archivos con extensión exe, ocx y dll
'Le indicamos a la propieadad filter
que muestre solo archivos exe, ocx y dll
CommonDialog.Filter = "Archivos ejecutables|*.exe|Archivos Ocx|*.ocx|Archivos
Dll|*.dll"
CommonDialog.ShowOpen
Este otro ejemplo filtra archivos con extensión jpg, gif, ico, bmp y por último damos la opción de visualizar cualquier extensión indicándole *.*, es decir todos los archivos.
Private Sub Form_Load()
'Le indicamos a la propieadad Filter que muestre o filre solo archivos Jpg,
Bmp,
'Gif, Ico y también la posibilidad de mostrar todas las extensiones
(*.*)
CommonDialog.Filter = "Archivos Jpg|*.jpg|Archivos Bmp|*.bmp|Archivos
Gif|*.gif|Archivos de íconos|*.ico|Todos los Archivos|*.*" CommonDialog.ShowOpen
End sub
Nota: si no le especificamos nada a la propiedad Filter, por defecto muestra todos los archivos sin hacer un filtrado.
Otra cosa importante: Al especificar la cadena que filtrará los archivos en la propiedad filter, estos no deben poseer un espacio, por ejemplo:
CommonDialog.Filter = "Archivos Jpg|*.jpg |Archivos
Bmp|*.bmp"
CommonDialog.ShowOpen
Si probás el ejemplo anterior, verás que podrás visualizar los archivos Bmp sin problemas, pero los jpg no los listará, ya que posee un espacio entre la extensión *.jpg y el caracter "|"
Para indicar el directorio inicial que mostrará el cuadro de diálogo al abrirse, se hace con la propiedad InitDir. El siguiente ejemplo abre el commondialog en el directorio "c:\windows". Cabe aclarar que primero debemos establecer la propiedad y luego llamar al método ShowOpen.
CommonDialog.InitDir = "c:\windows"
CommonDialog.ShowOpen
Como se dijo antes la propiedad FileName devuelve el path completo del archivo que se seleccionó, pero si nosotros queremos obtener solo el nombre, es decir sin la ruta completa, podemos utilizar la propiedad FileTitle.
Un Ejemplo:
'Titulo del cuadro de dialogo
CommonDialog.DialogTitle = "Seleccione un archivo"
'Abrimos el CommonDialog
CommonDialog.ShowOpen
'Mostramos el nombre del archivo seleccionado sin el path
MsgBox "El nombre del archivo seleccionado es: " & CommonDialog.FileTitle
Importante: Cuando un usuario no selecciona ningún archivo del cuadro de diálogo, la propiedad FileName devuelve una cadena vacía. Muchas veces nosotros debemos comprobar que se ha seleccionado un archivo, depende a lo que hagamos. Por ejemplo si abrimos un cuadro de diálogo para abrir un archivo que luego se utilizará el path del mismo para leer el contenido, puede que la rutina de código que lee el mismo de error ya que el nombre del archivo es un path vacío, es decir Error: no se ha encontrado el archivo
Una forma de comprobarlo es con un simple IF. En el siguiente ejemplo, si al abrir el cuadro de diálogo, se presiona cancelar, se muestra un mensaje "no se ha seleccionado ningún fichero" ya que la propiedad FileName tiene el valor "", (una cadena vacía)
'Abrimos el CommonDialog CommonDialog.ShowOpen If CommonDialog.FileName = "" Then 'No se ha seleccionado ningún archivo MsgBox "No se ha seleccionado ningún archivo", vbInformation Else 'Mostramos la ruta archivo seleccionado MsgBox CommonDialog.FileName End If
Este ejemplo consiste en al presionar un commandButton se abrirá un Commondialog para poder seleccionar un archivo del disco de tipo Gif. Luego ese archivo se visualiza en un control Image.
Colocar un Commondialog1, un Command1 y un Image1
'Titulo del CommonDialog CommonDialog1.DialogTitle = "Seleccione el archivo gif" 'Extensión del CommonDialog CommonDialog1.Filter = "Archivos gráficos gif|*.gif" 'Abrimos el CommonDialog CommonDialog1.ShowOpen If CommonDialog1.FileName = "" Then 'No se ha seleccionado ningún archivo MsgBox "No se ha seleccionado ningún archivo", vbInformation Else 'Mostramos la ruta archivo seleccionado Image1.Picture = LoadPicture(CommonDialog1.FileName) End If
Este otro ejemplo lo que hace es, al presionar un Command1 abrir el cuadro de diálogo para seleccionar archivos de texto con extensión txt. Una ves seleccionado un archivo del cuadro de diálogo, se lee el mismo y se carga el contenido del fichero en un control Text1.
Colocar un commonDialog1, un control Command1 y un control Text1 con la propiedad Multiline en True
Private Sub Command1_Click() Dim Linea As String 'Titulo del CommonDialog CommonDialog1.DialogTitle = "Seleccione un archivo de texto" 'Extension del CommonDialog. Archivos txt CommonDialog1.Filter = "Archivos de texto Txt|*.txt" 'Abrimos el CommonDialog CommonDialog1.ShowOpen If CommonDialog1.FileName = "" Then 'salimos de la rutina ya que no se ha seleccionado ningún archivo Exit Sub Else 'Borramos el contenido de Text1 Text1 = "" 'Abrimos el archivo para leerlo, pasándole la ruta con la pro _ piedad FileName del Commondialog Open CommonDialog1.FileName For Input As #1 While Not EOF(1) 'Leemos la línea Line Input #1, Linea 'Vamos cargando las líneas leídas en el text1 Text1 = Text1 & Linea & vbNewLine Wend 'Cerramos el archivo abierto anteriormente Close End If End Sub
Las propiedades del mismo son las mismas que utiliza el anterior cuadro de diálogo, las propiedades DialogTitle, Filter, InitDir, FileTitle, etc..
El siguiente ejemplo lo que hace es al presionar un Command1 se llama al cuadro de diálogo GuardarComo. Luego hay que escribir un nombre de archivo y al presionar el botón Guardar se creará un archivo, que es de tipo txt, ya que le indicamos en la propiedad Filter que es de esta extensión, y luego usando la sentencia Open en modo OutPut crea el fichero con el contenido de un control Text1.
Entonces para el ejemplo colocar un CommonDialog1, un control Text1 con la propiedad Multiline en true y un Command1 que abre el Commondialog.
Private Sub Command1_Click() Dim Linea As String 'Titulo del CommonDialog CommonDialog1.DialogTitle = "Escriba el nombre del archivo de texto" 'Extension del CommonDialog. Archivo de tipo txt CommonDialog1.Filter = "Archivos de texto Txt|*.txt" 'Abrimos el CommonDialog CommonDialog1.ShowSave If CommonDialog1.FileName = "" Then 'salimos ya que no se ha seleccionado ningún archivo Exit Sub Else If Text1 = "" Then MsgBox "Debe escribir algo en el text1 para poder crear el archivo" 'Salimos de la rutina ya que no hay nada que guardar Exit Sub End If 'Creamos un archivo con la sentencia OutPut, pasandole la ruta _ con la pro piedad FileName del Commondialog Open CommonDialog1.FileName For Output As #1 'Escribimos en el archivo el contenido de Text1 Print #1, Text1 'Cerramos el archivo Close End If End Sub
Este ejemplo es similar al anterior, con la diferencia de que en ves de guardar el contenido de un control text1 para generar un archivo de texto, se graba una imagen de un control Picture1 en la ruta que le indiquemos y también con el nombre que le coloquemos en el cuadro de diálogo. Para grabar el contenido del Picture1 se utiliza la función SavePicture. Esta función tiene 2 parámetros, el primero es la imagen, en este caso le indicamos el control PictureBox que tiene dicho gráfico cargado, el segundo parámetro es el path donde generar dicho archivo.
El ejemplo guarda la imagen en formato bmp, por eso mismo en la propiedad Filter del CommonDialog le indicamos esta extensión.
Para probar el ejemplo coloca un Picture1 y cargarle un gráfico. Luego coloca un Commondialog1 y un control Command1 que es el que llamará a dicho cuadro de diálogo, donde se deberá escribir el nombre del archivo para guardarlo en otro ubicación.
Private Sub Command1_Click() 'Titulo del CommonDialog CommonDialog1.DialogTitle = "seleccione la ruta y escriba el nombre del archivo imagen" 'Extension del CommonDialog. Archivo de tipo Bmp CommonDialog1.Filter = "Archivos Bmp|*.bmp" 'Abrimos el CommonDialog Guardar como CommonDialog1.ShowSave If CommonDialog1.FileName = "" Then 'salimos ya que no se ha escrito ningún nombre de archivo 'o se seleccionó cancelar, por lo tanto FileName es una cadena vacía Exit Sub Else 'Grabamos el archivo SavePicture Picture1.Picture, CommonDialog1.FileName End If End Sub
Nota: Cuando abrimos el diálogo para escribir el nombre del archivo, no es necesario escribir la extensión, ya que la misma está especificada en la propiedad Filter. Si lo hacemos, suponiendo que escribimos MiArchivo.bmp, el archivo generado será MiArchivo.Bmp.Bmp.
Este tercer ejemplo muestra como, utilizar el Cuadro de diálogo Abrir archivo para seleccionar un gráfico y cargarlo en un control Image. Luego mediante otro Botón se Abre el utiliza el cuadro de diálogo Guardar, para poder guardar el mismo gráfico en alguna ubicación especifica y con otro nombre.
Nota. Para guardar el gráfico se utiliza la función SavePicture. Esta función requiere como parámetro, la imagen, en este caso es la que se encuentra cargada en el Image, y el path donde guardarlo, que en este caso es la ruta y nombre del archivo que hayamos elegido en el Commondialog
Colocar un control Image1, un Command1 , un Command2 y un control CommonDialog llamado Commondialog1, como está en la imagen:
El código fuente del formulario
'Carga la imagen en el control Image Private Sub Command1_Click() With CommonDialog1 .DialogTitle = " Seleccionar imagen ára cargar en el image " 'Filtro para los archivos de imagen .Filter = "BMP|*.bmp|JPG|*.JPG|GIF|*.GIF|Todos los archivos|*.*" 'Muestra el cuadro de diálogo Arir archivo .ShowOpen 'si no se seleccionó un archivo salimos If .FileName = "" Then Exit Sub Else ' Si no , cargamos la imagen seleccionada en el control Image1 = LoadPicture(.FileName) End If End With End Sub 'Guarda la imagen del image en un nuevo archivo Private Sub Command2_Click() On Error GoTo errSub 'si el control Image no tiene una imagen sale de la rutina If Image1.Picture = 0 Then MsgBox "No se puede guardar. El image debe tener una imagen", vbCritical End If With CommonDialog1 'Filtro para guardar con la extención BMP .Filter = "BMP|*.bmp" ' Muestra el cuadro de diálogo Guardar como .ShowSave 'Si el archivo es una cadena vacía salimos If .FileName = "" Then Exit Sub Else 'Si no, la guardamos SavePicture Image1, .FileName MsgBox " archivo guardado correctamente ", vbInformation End If End With Exit Sub errSub: MsgBox Err.Description End Sub Private Sub Form_Load() Image1.Stretch = True Me.Caption = " Ejemplo para guardar una imagen con el" _ & "Commondialog y SavePicture " Command1.Caption = " Cargar imagen " Command2.Caption = " Guardar imagen" End Sub
Bueno esto es lo básico sobre los Commondialog. Si te interesa poder utilizar los cuadros de diálogo de windows pero sin utilizar el ocx de Visual basic, podés hacerlo con el Api de windows. Hacerlo con el Api es mejor, ya que estamos dependiendo menos de archivos externos para nuestra aplicación, en este caso el ocx COMDLG32.ocx .
En este enlace podés descargar un módulo que permite utilizar el cuadro de diálogo Abrir y commondialog para guardar: Módulo bas para utilizar los Commondialog de windows usando el Api
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar