Visual Basic Basic - Guía del Estudiante Cap. 3 Controles (Continuación) El CommonDialog CONTROLES DE BUSQUEDA DE DE FICHEROS
El CommonDialog es un control del que se libran muy pocas aplicaciones. Dada la importancia de este control, se le dedicaba en versiones anteriores de la Guía del Estudiante un capitulo único. En esta edición se le a anexado el estudio sobre los controles para la búsqueda de ficheros ficheros.. El conocimient conocimiento o de este capítulo capítulo es fundament fundamental al si desea desea llegar a ser un buen programador de VB. CUADRO DE DIALOGO
CommonDialog
Normalmente se encuentra en la caja de herramientas
Este control no se presenta en tiempo de diseño mas que con un simple icono :
El cuadro de diálogo, CommonDialog se utiliza para varias funciones : • • • • •
Abrir Ficheros Guardar Ficheros Elegir colores Seleccionar Impresora Seleccionar Fuentes
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 1
CommonDialog mostrando la función Abrir. Nótese el icono para crear nueva carpeta, objeto del comentario siguiente. En realidad el cuadro de diálogo permite conocer datos con los cuales, y mediante el código adecuad adecuado, o, abriremos abriremos o guardare guardaremos mos ficheros, ficheros, elegirem elegiremos os colores colores o seleccio seleccionare naremos mos fuentes. fuentes. Es decir, decir, el CommonD CommonDialo ialog g NO reali realiza za mas funcio funcione nes s que que mostra mostrarr fiche ficheros ros existentes, fuentes disponibles, colores, para que, mediante código, abramos esos ficheros o usemos una determinada fuente.
La expr expres esió ión n ante anteri rior or se ha recu recuad adra rado do porq porque ue ya no es comp comple leta tame ment nte e cier cierta ta.. El CommonDialog no es un control propio de Visual Basic, sino de Windows. Y la versión de este control que Windows pone en W98 permite que pueda crear una nueva carpeta. Ya hace algo extrañe que el CommonDialog CommonDialog empleado en su su aplicación aplicación pueda crear crear directamente . No se extrañe una nueva carpeta sin que Vd. lo haya diseñado para eso. Al introducir el control en la aplicación está introduciendo la versión más moderna del mismo. Dependiendo de la aplicación para la que vaya a usarse se deberá activar de distintas formas. Si el cuadr cuadro o de diálo diálogo go se va a usar usar para para sele selecc ccion ionar ar la impr impres esor ora a y para para otras otras aplicaciones, es recomendable usar uno exclusivamente para seleccionar la impresora.
Esta última recomendación se debe a que, para el control de la impresora, el CommonDialog SI realiza las funciones de selección de impresora predeterminada. Esta diferencia operativa hace que si usamos el mismo CommonDialog para seleccionar impresora y abrir ficheros, por ejemplo, se “cuelgue” el CommonDialog. El control CommonDialog es un control personalizado (Microsoft CommonDialog Control COMDLG32.OCX), y como casi todos los controles personalizados presenta un asistente de propiedades propio. Puede accederse a las propiedades mediante el cuadro de propiedades típico de otros controles, o mediante el asistente, pulsando el botón derecho del ratón con el puntero colocado encima del icono del cuadro de diálogo. Analizando las propiedades, vemos que tiene gran cantidad de ellas. Esto es porque agrupa todas las propiedades correspondientes a la cinco funciones que puede desarrollar. Se detalla a continuación la forma de usar el CommonDialog para cada aplicación. Se entiende que el nombre - Name - que se ha puesto para el cuadro de diálogo en todos los ejemplos es CD1 ) CUADRO DE DIALOGO MOSTRANDO FUENTES
Para mostrar el cuadro de diálogo correspondiente a Tipos de Letra ( Fonts ), debe ejecutarse la instrucción: CD1.ShowFont y habe haberr pues puesto to,, en la prop propie iedad dad Flags del del cuadr uadro o de diál diálog ogo, o, el valo valorr de 1, 2 ó 3, correspondiente respectivamente a los tipos de letra de la pantalla, de la impresora o ambos. (Véase la propiedad Flags mas adelante) Si no pone uno de estos valores, le dirá que no tiene fuentes instaladas.
Los valores que se pueden obtener de este cuadro de dialogo son: CD1.FontName Indica el nombre de la fuente CD1.FontSize Indica el tamaño de la fuente CD1.Color Indica el color de la fuente (Abrir con Flags=256+1, 2 ó 3) CD1.FontBold = (True / False) False) Si es True, True, se ha ha elegido "Negrita "Negrita"" CD1.FontItalic = (True / False) False) Si es True, True, se ha elegido elegido "Cursiva" "Cursiva" CD1.FontStrikethru = (Tru (True e / False False)) Si es es Tru True, e, se se ha elegi elegido do "T "Tacha achada da " LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 2
CD1.FontUnderline = (Tru (True e / Fals False) e) Si es es True True,, se ha elegi elegido do "Su "Subr braya ayada da"" Si se elige una versión Negrita Cursiva serían True las opciones FontBold y FontItalic El cuadro de diálogo que se presenta es el siguiente: (CommonDialog Mostrando fuentes, con la propiedad Flags = 263)
El objeto Font no puede aplicarse al CommonDialog. Es decir, no podemos poner : Varia ariabl ble e = CD1. CD1.Fo Font. nt.Si Siz ze sino sino Varia ariabl ble e = CD1.F CD1.Fon ontsi tsiz ze En el ejem ejempl plo o que que acom acompa paña ña a este este capít capítul ulo, o, pued puede e ver ver como como se intro introdu duce cen n las las características de una determinada fuente elegida en un cuadro de texto. Programa de ejemplo. Mediante un CommonDialog elegimos el tipo de letra de un TextBox
(TbPrueba) y escribimos un texto de prueba con todas las letras del abecedario. Private Sub BMostrarFonts_Click() CD1.Flags = 259 'Muestra las fuentes de la pantalla (1), las de la impresora (2)y muestra las opciones de 'tachado, subrayado y color (256) 1 + 2 + 256 = 259 CD1.ShowFont TbPrueba.FontName = CD1.FontName TbPrueba.FontSize = CD1.FontSize TbPrueba.FontBold = CD1.FontBold TbPrueba.FontItalic = CD1.FontItalic TbPrueba.FontUnderline = CD1.FontUnderline TbPrueba.FontStrikethru = CD1.FontStrikethru If TbPrueba = "" Then TbPrueba = "Texto de prueba" & vbCrLf & vbCrLf TbPrueba = TbPrueba & "The Quick Brown Fox Jumps Over The Lazy Dog 1234567890" End If End Sub
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 3
CUADRO DE DIALOGO MOSTRANDO COLOR
Para mostrar el cuadro de diálogo correspondiente al color, se deberá ejecutar la instrucción: CD1.ShowColor El cuadro de diálogo puede tener una de estas dos formas (Dependiendo de su propiedad Flags):
(Si (Si la part parte e dere derech cha a del del cuad cuadro ro no sale sale,, se saca saca haci hacien endo do clic clickk en Defi Defini nirr colo colore ress personalizados.) El número correspondiente al color elegido se puede conocer analizando la propiedad color de cuadro de diálogo. En nuestro ejemplo, lo obtendríamos con Variablecolor = CD1.Color
donde Variablecolor contendrá un número correspondiente al color elegido. Variablecolor debe declararse como tipo Long Programa de ejemplo. Mediante un CommonDialog elegimos el color de fondo de un TextBox
(TbPrueba). Private Sub BColores_Click() CD1.Flags = 2 'Hace que el cuadro de diálogo se muestre completo CD1.ShowColor TbPrueba.BackColor = CD1.Color End Sub Nota acerca del número del color .
Para establecer un color por medio de código, se pondrá un valor de color a la propiedad correspondiente de ese objeto. El valor del color puede establecerse de tres formas que se comentan a continuación.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 4
Colores en Visual Basic.
Visual Basic acepta para especificar un color, tres procedimientos: Mediante el número de color, mediante la sentencia RGB ( rojo, verde, azul ) o mediante la función QBColor . Por número
El número que representa el color en VB está formado por la suma de la componente roja, la compo componen nente te verde verde y la compo compone nent nte e azul azul.. Podrí Podríam amos os verlo verlo muy bien bien en numer numeraci ación ón Hexadecimal: Color = Hex XX YY ZZ Donde ZZ es un número Hexadecimal que representa la cantidad del color rojo. El mínimo estaría en 0 (H00) y el máximo en 255 (HFF) YY representaría la cantidad de color verde y XX la de color azul, ambos con los mismos límites explicados para el rojo. Por ejempl emplo: o:
el rojo ojo puro serí ería: el verd verde e pur puro o ser sería ía:: el az azul puro sería ría:
Hex(0 ex(00 000FF) FF) = 255 Hex(0 ex(00F 0FF0 F00) 0) = 65 652280 2280 Hex(F ex(FF F0000) = 16 16711680
Una mezcla de un poco de rojo (HB1), otro poco de verde (H56) y otro poco de azul (H1F) daría el siguiente número: Hex(1F56B1) = 2053809 El número de color puede estar estar comprendido entre 0 (correspondiente al negro) y el 16777215 (correspond (correspondiente iente al blanco. Observe que esa cantidad, 16.777.215 16.777.215 (FFFFFF en hexadecimal) corresponde a los famosos 16 millones de colores de las tarjetas gráficas. Si queremos poner el color de fondo a un control Label, usaremos la propiedad Backcolor. Si el Label se llama Label1, pondríamos la instrucción Label1.Backcolor = 12345678 Por la sentencia RGB
Se puede expresar el color, poniendo simplemente RGB (rojo, verde, azul), donde rojo es un número entre 0 y 255 que indica la cantidad de color rojo que se aporta al color, verde un número comprendido entre 0 y 255 indicando la cantidad de verde, y lo mismo para azul. Esta es la forma mas sencilla de poner la propiedad color, y con la que mejor controlaremos el mismo. Si queremos poner al Label anterior un color mediante la sentencia RGB, ejecutaríamos la sentencia : Label1.Backcolor = RGB (128, 30, 100) Mediante la Función QBColor (Obsoleta. Se introduce por motivos de compatibilidad)
Esta función se ha puesto en Visual Basic para compatibilidad con los colores que se usan en Quick-Basic y Qbasic. Mediante esta función se obtienen solamente 16 colores. Sintaxis
Objeto.QBColor(color)
El argumento color es un número entero entre 0 a 15, según la siguiente lista: LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 5
Número Color
Número Color
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
Negro Azul Verde Aguamarina Rojo Fucsia Amarillo Blanco
G r is Azul claro Verde claro Aguamarina claro Rojo claro Fucsia claro Amarillo claro Blanco brillante
Para el mismo Label anterior, usaríamos la sentencia : Label1.Backcolor = QBColor (12) Fin de la nota acerca del número del color
CUADRO DE DIALOGO MOSTRANDO IMPRESORAS Nota: Si utiliz utiliza a un Commo CommonD nDial ialog og para para impres impresora oras s y otras otras aplic aplicaci acion ones, es, pued puede e tener tener problemas. Utilice un CommonDialog exclusivamente para impresoras. impresoras.
Para presentar el cuadro de elección de impresora, ejecute la instrucción: CD2.ShowPrinter (A este cuadro de dialogo le hemos llamado CD2 para evitar los problemas referidos en la nota). Aparecerá el siguiente cuadro de diálogo:
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 6
La impresora elegida puede conocerla llamando a la propiedad DeviceName de un objeto que aún no hemos visto: el objeto Printer. Este objeto es el encargado de pasar al Administrador de Impresión todos los trabajos de impresión que generen las aplicaciones Visual Basic: Nombredelaimpresora = Printer.DeviceName
Para que la impresora quede como impresora por defecto de Windows, debe tener a True la propiedad PrinterDefault del cuadro de diálogo. El cuadro mostrado para la impresora dependerá de la impresora que tenga instalada en su ordenador, por lo puede observar diferencias respecto a la figura mostrada anteriormente. Programa Ejemplo. Muestra el cuadro de dialogo de impresoras
Private Sub BImpresora_Click() CD1.ShowPrinter End Sub EL COMMONDIALOG PARA ABRIR Y GUARDAR ARCHIVOS
Posiblemente las opciones mas usadas del cuadro de diálogo. Para presentar el cuadro de diálogo correspondiente a Abrir Archivo, debe ejecutar la instrucción: CD1.ShowOpen Si lo que necesita es abrir el cuadro de diálogo para guardar un fichero, debe ejecutar la instrucción : CD1.ShowSave pero antes deberá introducir el filtro o filtros de archivos que necesite. Ojo, ¡ ANTES ! Un filtro sirve para que en el cuadro de diálogo se presenten solamente los ficheros de nuestro interés. Se pueden seleccionar por el nombre, la extensión o las dos cosas. La sintaxis para introducir un filtro es la siguiente: CD1.Filter = "Descripción del fichero|nombre.extensión" donde "nombre" puede ser un nombre o usar caracteres comodín. Lo mismo para "extensión" Por ejemplo, para buscar archivos ejecutables, con cualquier nombre y extensión .EXE CD1.Filter = "Ficheros ejecutables |*.exe" Observe el carácter separador entre la descripción de los ficheros (Ficheros ejecutables) y el parámetro de busca (*.EXE). No ponga ningún espacio espacio entre el separador y los caracteres de busca. El separador es el carácter ASCII 124. Puede buscar varios tipos de ficheros, separando los caracteres de busca por medio del carácter punto y coma (;) CD1.Filter = "Ficheros ejecutables |*.EXE;*.COM;*.BAT" Puede también introducir dos filtros, separados por el separador | (En una línea solamente). CD1.Filter =”Ficheros =”Ficheros de un tipo |*.EXE |Ficheros de otro |*.COM |Otros ficheros |*.BAT” Por ej ejempl emplo o:
LSB
CD1.Filter = "Ficheros Word |*.DOC|Ficheros Write |*.WRI"
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 7
¡ No se pueden poner dos líneas con filtros, se quedaría solamente con la última !
En este caso, cuando se presente el cuadro de diálogo, solamente presentará uno de los filtros, y deberá seleccionar manualmente el otro en un cuadro situado en la parte inferior izquierda del cuadro de diálogo. Para predeterminar cuál de los dos filtros saldrá sin tener que seleccionarlo, deberá ejecutar esta instrucción, ANTES de invocar el cuadro de diálogo CD1.FilterIndex = 2 En este caso, aparecerá por defecto el filtro escrito en segundo lugar. El orden de los filtros comienza por 1. El cuadro de diálogo deberá presentar un directorio. Este directorio con el que, por defecto, aparece el cuadro de diálogo, se puede introducir mediante la propiedad InitDir , que deberá contener el nombre del directorio y su path. Si no se especifica, comenzará por el directorio actual. Para conocer el nombre del fichero elegido, se emplea la propiedad FileName : Nombrefichero= CD1.filename
El nombre del fichero, Nombrefichero en la sentencia anterior, viene con su path, es decir, nombre nombre y direc direcció ción n compl completa eta,, por por lo que que pued puede e emple emplear arse se direct directame ament nte e la sali salida da del del CommonDialog para abrir un fichero. El cuadro de diálogo de abrir o cerrar tiene esta forma :
El cuadro de guardar es similar. Observe que en este caso hemos desplegado la segunda opción de filtro de ficheros :
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 8
Como ve ambos cuadros son prácticamente iguales. Solamente se difieren en que uno pone Abrir y el otro Guardar como en su barra de título. También También en que el cuadro Guardar como presenta los nombres de los ficheros con un tono apagado. Funcionalmente difieren. Por ejemplo, si quiere guardar un fichero con un nombre ya existente, y dependiendo de la propiedad Flags que verá mas adelante, le aparecerá la siguiente advertencia :
Si dese desea a otra otra leyen leyenda da en la barra barra de título título,, pued puede e cambia cambiarla rla usan usando do el asis asiste tent nte e de propiedades, que lo obtendrá colocando el cursor del ratón sobre el icono del CommonDialog y pulsando pulsando el botón derecho. Haga click sobre sobre Propiedades Propiedades en el popmenú que se presenta. presenta. Aparecerá esto :
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 9
PRESENTAR PRESEN TAR AYUDAS AYUDAS
Mediante el CommonDialog se puede presentar presentar un fichero de ayuda. (Ficheros (Ficheros del tipo .HLP de Windows) Pese a que se pueden presentar estos ficheros basándonos en el CommonDialog, es preferible usar directamente el programa WinHelp.Exe, que puede ejecutarlo mediante la función Shell : VariableID = Shell (“WinHelp.Exe FicheroAyuda.hlp”,1)
Para mostrar el fichero de ayuda debe poner el nombre (y Path) del fichero de ayuda en la propiedad HelpFile del CommonDialog CD1.HelpFile = "C:\MiCarpeta\MiFicheroAyuda.HLP" Puede mostrar el índice, o una página concreta de ese fichero. Para ello debe jugar con la propiedad HelpCommand, que le va a indicar al CommonDialog qué ayuda debe mostrar. CD1.HelpCommand =Valor Las opciones para valor son: 1
&H1
cdlContext
Muestra la Ayuda de un contexto determinado. Cuando se usa esta valor, también se debe especificar un contexto con la propiedad HelpContext. 2
&H2
cdlQuit
Notifica a la aplicación Ayuda que el archivo de Ayuda especificado ya no se está utilizando. 3
&H3
cdlContents
Muestra el tema de contenido de ayuda, definido con la opción Contents de la sección [OPTION] del archivo .HPJ. 3
&H3
cdlIndex
Muestra el índice del archivo de Ayuda especificado. Las aplicaciones sólo deben utilizar este valor para un archivo de Ayuda con índice único. 4
&H4
cdlHelpOnHelp
Muestra la Ayuda para utilizar la propia aplicación Ayuda. 5
&H5
cdlSetContents
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 10
Determina el tema de contenido a mostrar cuando el usuario presiona la tecla F1. 5
&H5
cdlSetIndex
Establece el contexto especificado en la propiedad HelpContext como índice actual para el archivo especificado en la propiedad HelpFile. Este índice seguirá siendo el actual hasta que el usuario acceda a un archivo de Ayuda distinto. Utilice este valor sólo para los archivos de Ayuda con más de un índice. 8
&H8
cdlContextPopup
Muestra en una ventana emergente un tema de Ayuda determinado, identificado por un número de contexto definido en la sección [MAP] del archivo .HPJ. 9
&H9
cdlForceFile Asegura que WinHelp muestre el archivo de Ayuda Ayuda correcto. Si se muestra el archivo correcto, no sucede nada. Si se muestra un archivo incorrecto, WinHelp abrirá el
correcto. 257 257
&H10 &H101 1 cdlK cdlKey ey
Muestra la Ayuda sobre una palabra reservada determinada. Al usar esta opción, deberá especificar también una palabra reservada con la propiedad HelpKey. 258 258
&H10 &H102 2 cdlC cdlCom omm mand and
Ejecuta una macro de Ayuda. 261 261
&H10 &H105 5 cdlP cdlPar arti tial alKe Key y
Muestra el tema de la lista de palabras claves que coincide con la palabra pasada en el parámetr parámetro o dwData, si sólo sólo se encuen encuentra tra uno. uno. Si se encuen encuentra tra más más de uno, uno, aparecerá el cuadro de diálogo Buscar mostrando los temas encontrados en el cuadro de lista Ir a. Si no se encuentra ninguno, se mostrará el cuadro de diálogo Buscar. Para que aparezca el cuadro de diálogo Buscar sin pasar una palabra reservada, utilice un puntero largo a una cadena vacía. Si queremos que se muestre el índice de la ayuda, pondríamos esta propiedad de la forma : CD1.HelpCommand = cdlHelpIndex
Para mostrar la página que se ha puesto en el fichero de ayuda como Contexto 2 (En Sección [MAP] del fichero .HPJ (Vea Creación Creación de Ficheros de Ayuda), CD1.HelpCommand = cdlHelpContext CD1.HelpContext = 2
Para mostrar la Ayuda de la Ayuda de Windows : CD1.HelpCommand = cdlHelpHelpOnHelp
Una vez establecidas estas propiedades, mostraremos la ayuda con el Método ShowHelp CD1.ShowHelp Repitiéndole que no se debe usar el CommonDialog para mostrar ayudas, pero para cumplir el objetivo de plasmar en este texto la mayor información acerca de cada control, se enumeran a continuación el resto de propiedades que afectan a la presentación de ayuda : HelpFile HelpContext HelpKey
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 11
PROPIEDADES DEL CommonDialog La Propiedad Action
La propiedad Action se incluye en la versión 4 de VB solamente por motivos de compatibilidad con anterio anteriores res versione versiones. s. Realiza Realiza las mismas mismas funcione funcioness que ShowFont , ShowColor , ShowPrinter , ShowOpen y ShowSave. No debe usarse esta propiedad, sino los equivalentes citados, en previsión de que pueda ser eliminada en futuras versiones. La sintaxis de Action es :
Nombre.Action [= valor]
Valo alor
Descripci ipció ón
0 1 2 3 4 5 6
Ninguna acción. Muestra el el cu cuadro de diálogo Abrir. Muestra el el cu cuadro de de di diálogo Gu Guardar co como. Muestra el el cu cuadro de diálogo Co Color. Muestra el el cu cuadro de diálogo Fu Fuente. Muestra el cu cuadro de diá diálogo Impr Impre esora. Ejecuta W INHELP.EXE.
Utilice en su lugar lugar ShowF ShowFont ont,, ShowPr ShowPrint inter er,, ShowS ShowSave, ave, NO utilice utilice la propied propiedad ad Action Action. Utilice ShowOpen , ShowColor y ShowHelp CancelError
Devuelve o establece un valor que indica si se genera un error cuando el usuario elige el botón Cancelar. Sintaxis : True False False
objeto.CancelError = (True / False)
Se ge genera un un er error. or. (Predet (Predetermin erminado) ado) No se se gener genera a ningún ningún error error.
Cuando se establece True en esta propiedad, se producirá el error número 32755 (cdlCancel) cada vez que el usuario elija el botón Cancelar. Debe poner esta propiedad a true cuando quiera detectar que se ha pulsado el botón CANCELAR. Luego, debe detectar con la rutina de detección de errores adecuada, si el error producido ha sido el 32755. De ser así, es que han pulsado ese botón, y Vd. procederá en consecuencia. Color
Esta propiedad es de lectura / escritura De escritura :Establece el color predeterminado con que aparecerá el CD para elegir color. Puede introducirse como RGB o numéricamente, como se explicó mas atrás. Para que aparezca este color predeterminado, debe poner la propiedad Flags a 1. De lectura : Entrega el color elegido, bien en el cuadro de elección de color, bien en el cuadro de elección de fuente. Copies
Establece el valor predeterminado para número de copias que aparecerá en el CD cuando se abra para elegir impresora. DefaultExt
Devuelve Devuelve o estab establec lece e la extensi extensión ón de archivo predeter predetermina minada da para para el cuadro cuadro de diálogo.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 12
Sintaxis
objeto.DefaultExt [= cadena]
Puede uede util utiliz izar ar esta sta prop propie ieda dad d para para esp especif ecific icar ar una una exte extens nsiión de arch archiv ivo o predeterminada, como por ejemplo .TXT o .DOC. Importante para el CommonDialog de Guardar: Cuando se guarde un archivo sin extensión, se le agregará automáticamente la especificada en esta propiedad. DialogTitle
Devuelve o establece la cadena mostrada en la barra de título del cuadro de diálogo. Sintaxis
Nombre.DialogTitle [= título]
Esta propiedad puede introducirse en la ventana de propiedades, o por programa. Puede utilizar esa propiedad para mostrar el nombre del cuadro de diálogo en la barra de título. El control CommonDialog ignora el valor de la propiedad DialogTitle cuando muestra los cuadros de diálogo Color o Fuente.
Nota
El título predeterminado para un cuadro de diálogo Abrir es Abrir , y para un cuadro de diálogo Guardar como es Guardar como. FileName
Devuelve o establece la ruta y el nombre de archivo de un archivo seleccionado. La lectura de esta propiedad devuelve el nombre del archivo seleccionado actualmente en la lista. Si no hay ningún ningún archivo seleccionad seleccionado, o, FileName devuelve una cadena cadena vacía. Filter
(Explicada mas atrás) Devuelve o establece los filtros que aparecen en el cuadro de lista Tipo de un cuadro de diálogo. Sint Sintax axis is
CD1. CD1.Fi Filt lter er [= [= des descr crip ipci ción ón1 1 |fil |filtr tro1 o1 |de |desscrip cripci ción ón2 2 |fil |filtr tro2 o2.. ...] .]
Utilice el símbolo de canalización ( | , (ASCII 124) ) para separar los valores de desc descri ripci pción ón y de filtro filtro.. No incluy incluya a espa espacio cioss ante antess ni desp despué uéss del del símbol símbolo o de canalización, pues aparecerían en los valores de descripción y valor. Al especificar más de un filtro en un cuadro de diálogo, utilice la propiedad FilterIndex para especificar el filtro predeterminado. Nota para los que no tiene teclado de 102 teclas. Para obtener el carácter ASCII 124, pulse la tecla ALT y, sin dejar de pulsarla, teclee 124 en el teclado numérico. FilterIndex
Devuelve o establece un filtro predeterminado para un cuadro de diálogo Abrir o Guardar Como. Sintaxis
CD1.FilterIndex [= número]
Esta propiedad indica el filtro predeterminado cuando se han especificado varios filtros para un cuadro de diálogo Abrir o Guardar. El índice del primer filtro definido es 1. Flags
Propiedad que tiene distintos significados para cada tipo de cuadro de diálogo. Tiene la misma sintaxis para todos los cuadros.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 13
Sintaxis
CD1. Flags [= valor]
El parámetro valor establece distintas alternativas, dependiendo de cada cuadro. Para el cuadro de diálogo Color
Las opciones para valor son: 1
&H1& cdlRGBInit
Establ Establece ece como valor de color inicial inicial para el cuadro de diálogo diálogo el indicado indicado en su propiedad Color . 2
&H2& cdlFullOpen
Hace que el cuadro de diálogo se muestre completo al crearlo, incluyendo la sección que permite al usuario usuario crear colores colores personalizados. personalizados. Sin esta opción, opción, el usuario debe elegir el botón de comando Definir colores personalizados para mostrar tal sección. 4
&H4& cdlPr lPreven eventF tFu ullO llOpen
Desactiv Desactiva a el botón botón de comando comando Definir Definir colore coloress person personaliz alizado ados, s, usuario defina colores. 8
evitando evitando
que
el
&H8& cdlShowHel p
Hace que el cuadro de diálogo muestre un botón Ayuda. Se pueden poner varias de estas condiciones, poniendo como valor Flags la suma de los valores de cada una de las condiciones a poner. Para los cuadros Abrir y Guardar
Las opciones para valor son: 1
&H1& cdlReadOnly
Hace que la casilla de verificación Sólo lectura aparezca marcada inicialmente al crear el cuadro de diálogo. Este indicador también señala el estado de la casilla Sólo lectura cuando el cuadro de diálogo está cerrado. 2
&H2& cdlOv lOverwrite itePromp ompt
Hace que el cuadro de diálogo Guardar como genere un cuadro de mensaje si el archivo seleccionado ya existe. El usuario deberá confirmar que desea sobrescribir el archivo. 4
&H4& cdlHi lHideReadOnly
Oculta la casilla de verificación Sólo lectura. 8
&H8& cdlNo lNoChangeDir
Hace que el cuadro de diálogo restablezca como directorio actual el que lo era en el momento de abrirse. 16
&H10 &H10& & cdlS cdlSho howH wHel elp p
Hace que el cuadro de diálogo muestre el botón Ayuda. 256
&H100&
cdlNoValidate
Especifica que el cuadro de diálogo común permita caracteres no válidos en el nombre de archivo devuelto. Funciona tanto con el cuadro de Abrir como con el de Cerrar. Tenga cuidado a la hora de crear un archivo con nombre no válido ! 512
&H200&
cdlAl lAllowMu wMultiselect
Especifica que el cuadro de lista Nombre de archivo admita selecciones múltiples. El usuario puede seleccionar más de un archivo en tiempo de ejecución presionando la tecla tecla MAYÚ MAYÚS S y utiliz utilizan ando do las las tecla teclass FLEC FLECHA HA ARRIBA ARRIBA y FLECHA FLECHA ABAJO ABAJO para para seleccionar los archivos deseados. Al hacerlo, la propiedad FileName devolverá una cadena con los nombres de todos los archivos seleccionados. Los nombres están
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 14
delimitados en la cadena con espacios. 102 1024
&H &H400 400&
cdlE cdlExt xten ensi sion onDi Diff ffe erent ent
Indica que la extensión del nombre de archivo devuelto es distinta de la especificada en la propi propied edad ad DefaultExt. Este Este indic indicad ador or no estar estará á activa activado do si la prop propie ieda dad d DefaultExt es Null, si las extensiones coinciden, o si el archivo no tiene extensión. El valor de este indicador puede comprobarse al cerrar el cuadro de diálogo. 2048
&H &H800&
cdlPa lPathM thMustE stExis xist
Especifica que el usuario sólo pueda introducir una ruta de acceso válida. Si se establece este indicador y el usuario introduce una ruta no válida, aparecerá un mensaje de advertencia. 4096
&H10 &H1000 00& &
cdlF cdlFil ileM eMus ustE tExi xist st
Especifica, para el cuadro de Abrir, que el usuario sólo pueda escribir en el cuadro de texto texto Nombre Nombre de archivo archivo nombres nombres de archivos archivos existentes existentes.. Si este este indicad indicador or está está activa activado do y el usua usuario rio intro introdu duce ce un nombre nombre de arch archivo ivo no válido, válido, apare aparece cerá rá una una advertencia. Este indicador activa automáticamente cdlPathMustExist. 819 8192
&H20 &H200 00&
cdlC cdlCrreate eatePr Pro ompt mpt
Especifica, para el cuadro de diálogo de abrir, que si no existe el fichero consulte al usuario antes de crear un archivo que no existe actualmente. Esta advertencia dice : Este Archivo no existe ¿desea crearlo ? y aparecen los botones de ACEPTAR y CANCELAR. Si el usuario pulsa aceptar el CommonDialog se cierra normalmente, si se le pulsa CANCELAR desaparece esta advertencia y el CommonDialog espera a que se le escriba o seleccione otro fichero. Este indicador establece automáticamente los indicadores cdlPathMustExist y cdlFileMustExist. 163 16384 &H40 &H400 00&
cdlS cdlSh hareA areAwa warre
Especifica que se ignoren los errores al compartir archivos. 3276 32768 8 &H80 &H8000 00& &
cdlN cdlNoR oRea eadO dOnl nly yRetu Return rn
Especifica que el archivo devuelto no tenga el atributo de Sólo lectura ni esté en un directorio protegido contra escritura. Presenta un aviso (tanto en el cuadro de abrir como en el cerrar) que impide elegir un fichero de estas características. Se pueden poner varias de estas condiciones, poniendo como valor Flags la suma de los valores de cada una de las condiciones a poner. Para el cuadro Mostrar Fuentes:
Las opciones para valor son: 1
&H1& cdlSc lScreenFonts
Hace que el cuadro de diálogo muestre solamente las fuentes de pantalla que admite el sistema. 2
&H2& cdlPr lPrinterFonts
Hace Hace que que el cuadr cuadro o de diálo diálogo go muest muestre re solam solament ente e las las fuent fuentes es que que admit admite e la impresora, especificadas por la propiedad hDC. 3
&H3& cdlBoth
Hace que el cuadro de diálogo muestre las fuentes de impresora y de pantalla disponibles. La propiedad hDC identifica el contexto de dispositivo asociado a la impresora 4
&H4& cdlShowHel p
Hace que el cuadro de diálogo muestre un botón Ayuda. 256
&H100&
cdlEffects
Especifica que el cuadro de diálogo permita efectos de tachado, subrayado y color. 1024
&H &H400&
cdlANSIOnly
Especifica que el cuadro de diálogo sólo permita seleccionar las fuentes que utilizan el juego de caracteres de Windows. Si se establece este indicador, el usuario no podrá seleccionar una fuente que sólo contenga símbolos. 2048
&H &H800&
LSB
Visual Basic
cdlNo lNoVectorF torFo onts
-
Guía del Estudiante
Capítulo 3
Página 15
Especifica que el cuadro de diálogo no permita seleccionar fuentes vectoriales. 409 4096
&H10 &H100 00&
cdlN cdlNo oSimu Simula lati tion ons s
Especifica que el cuadro de diálogo no permita simulaciones de fuente de interfaz de dispositivo gráfico (GDI). 8192
&H2000&
cdlLim lLimit itSi Siz ze
Espe Especi cific fica a que que el cuad cuadro ro de diál diálog ogo o sele selecc ccio ione ne sólo sólo los los tama tamaño ñoss de fuen fuente te comprendidos en el rango especificado por las propiedades Min y Max. 1638 16384 4 &H40 &H4000 00& &
cdlF cdlFix ixed edPi Pitc tchO hOnl nly y
Especifica que el cuadro de diálogo seleccione sólo fuentes de espaciado fijo. 327 32768 &H80 &H800 00&
cdlW cdlWYS YSIW IWYG YG
Especifica que el cuadro de diálogo permita seleccionar solamente fuentes disponibles al la vez en la pantalla y en la impresora. Si se establece este indicador, también deben establecerse cdlBoth (sume 3 a este número) y cdlScalableOnly (sume 131072 a este número) 6553 65536 6 &H10 &H1000 000& 0&
cdlFo cdlForc rceFo eFont ntEx Exis istt
Especifica que aparezca un cuadro de mensaje cuando el usuario intente seleccionar una fuente o un estilo que no existan. 1310 131072 72 &H20 &H2000 000& 0&
cdlSc cdlScal alabl ableOn eOnly ly
Especifica que el cuadro de diálogo permita seleccionar solamente fuentes escalables. 2621 262144 44 &H40 &H4000 000& 0&
cdlTT cdlTTOn Only ly
Especifica que el cuadro de diálogo permita seleccionar solamente fuentes TrueType. Nota Antes de mostrar el cuadro de diálogo Fuentes, debe establecer establecer cdlScreenFonts, cdlPrinterFonts o cdlBoth en la propiedad Flags. En caso contrario, se producirá el error No hay fuentes. (O dicho de otra forma, Flags=1, 2 ó 3) Se pueden poner varias de estas condiciones, poniendo como valor Flags la suma de los valores de cada una de las condiciones a poner. Para el Cuadro de Diálogo Imprimir
(Observar (Observará á seguram seguramente ente que lo que se descri describe be a continu continuació ación n no se cumple cumple siempre. siempre. Depende de las impresoras que tenga Vd. instaladas) Las opciones para valor son: 0
&H0& cdlAllPages
Devuelve o establece el estado del botón de opción Todas las páginas. 1
&H1& cdlSelection
Devuelve o establece el estado del botón de opción Selección. Si no se especifica cdlPageNums ni cdlSelection, el botón de opción Todas estará seleccionado. 2
&H2& cdlPageNums
Devuelve o establece el estado del botón de opción Páginas. 4
&H4& cdlNo lNoSelection
Desactiva el botón de opción Selección. 8
&H8& cdlNo lNoPageNum Nums
Desactiva el botón de opción Páginas y el control de edición asociado. 16
&H10 &H10& & cdlC cdlCo ollat llate e
32
&H20 &H20& & cdlP cdlPri rint ntT ToFil oFile e
Devuelve o establece el estado de la casilla de verificación Intercalar. Devuelve o establece el estado de la casilla de verificación Imprimir a un archivo. LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 16
64
&H40 &H40& & cdlP cdlPri rint ntSe Setu tup p
Hace que el sistema muestre el cuadro de diálogo Configurar impresora en lugar de Imprimir. Use este Flag cuando lo que desea es cambiar la impresora predeterminada. 128 128
&H80 &H80& & cdlNo cdlNoW Warni arning ng
Evita Evita que que apar aparez ezca ca una una adve advert rten enci cia a cuan cuando do no hay hay una una impr impres esor ora a predeterminada. 256
&H100&
cdlReturnDC
Devuelve un contexto de dispositivo para la impresora seleccionada en el cuadro de diálogo. El contexto se devuelve en la propiedad hDC del cuadro de diálogo. 512
&H200&
cdlReturnIC
Devuelve un contexto de información para la impresora seleccionada en el cuadro de diálogo. Un contexto de información proporciona un método rápido de obte obtene nerr info inform rmac ació ión n sobr sobre e el disp dispos osititivo ivo sin sin crea crearr un cont context exto o de dispositivo. El contexto de información se devuelve en la propiedad hDC del cuadro de diálogo. 2048
&H &H800&
cdlShowHel p
Hace que el cuadro de diálogo muestre el botón Ayuda 262144
&H40000&
cdlUseDevModeCopies
Si un controlador de impresora no admite copias múltiples, al establecer este indic indicad ador or se desa desactiv ctiva a el cont control rol de edici edición ón de número número de copia copias. s. Si el controlador sí admite múltiples copias, al establecer este indicador el cuadro de diálogo almacenará el número de copias solicitado en la propiedad Copies. 524288
&H800 80000&
cdlDi lDisable blePrintT intToF oFil ile e
Desactiva Desactiva la casilla de verif icación Imprimir a un archivo. 104 1048576 8576
&H10 &H100 0000& 000&
cdlH cdlHid ideP ePrrintT intToF oFil ile e
Oculta la casilla de verificación Imprimir a un archivo. Propiedades que afectan al tipo de letra.
Las seis propiedades siguientes nos dan las características especiales de la fuente elegida (negrita, cursiva, etc.). Una vez seleccionado el tipo de letra, el valor de estas propiedades contiene la opción elegida para la letra (si FontBold=True es que hemos elegido negrita, etc.) FontBold
Propiedad Booleana que establece o devuelve que el tipo de letra usado es Negrita. Sintaxis
Variable = CD1.FontBold
Los valores de Variable son: True
Se ha elegido negrita
False (Predeterminado) No se ha elegido negrita.
FontItalic
Propiedad Booleana que establece o devuelve que el tipo de letra usado es Cursiva. Sintaxis
Variable = CD1. FontItalic
Los valores de Variable son: True si se ha elegido cursiva, False (Predeterminado) en caso contrario.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 17
FontStrikethru
Propiedad Booleana que establece o devuelve que el tipo de letra usado es Tachada. Sintaxis
Variable = CD1. FontStrikethru
Los valores de Variable son: True si se ha elegido tachado, False (Predeterminado) en caso contrario. FontUnderline
Propi Propied edad ad Boole Booleana ana que que esta establ blec ece e o devuelv devuelve e que que el tipo tipo de letra letra usad usado o es Subrayado. Sintaxis
Variable = CD1.FontUnderline
Los valores de Variable son: True, si se ha elegido subrayado, False (Predeterminado) en caso contrario FontName
Devuelve el nombre de la fuente elegida. Es una variable tipo String Sintaxis
Variable = CD1.FontName
(Variable toma el valor del nombre de la fuente. Por ejemplo, Variable = “Arial” En general, deberá modificar FontName antes de establecer los atributos de tamaño y estil estilo o con con las las prop propie ieda dade dess FontSize , FontBold , FontItalic , FontStrikethru y FontUnderline . Nota En tiempo de ejecución puede obtener información sobre las fuentes disponibles a través de las propiedades FontCount y Fonts. Lo verá mas adelante FontSize
Devuelve de la fuente elegida. Debe ser una variable tipo Integer o Long Sintaxis
Variable = CD1.FontSize
donde Variable será una expresión numérica que especifica el tamaño de fuente a utilizar, en puntos. Nota Las fuentes disponibles disponibles en Visual Basic varían dependiendo de la configuración del sistema y de los dispositivos de presentación e impresión. En las propiedades relacionadas con las fuentes sólo pueden establecerse valores para los que exista una fuente. En general, deberá modificar FontName antes de establecer los atributos de tamaño y estil estilo o con con las las prop propie ieda dade dess FontSize , FontBold , FontItalic , FontStrikethru y FontUnderline . Sin embargo, cuando especifique un tamaño inferior a 8 puntos para una fuente TrueType , primero deberá establecer el tamaño en puntos con la propiedad FontSize , luego especificar la propiedad FontName y después establecer de nuevo el tamaño con FontSize. El entorn entorno o operativ operativo o Microso Microsoft ft Windows Windows utiliza utiliza una fuente distinta para las fuentes TrueType con un tamaño inferior a 8 puntos.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 18
Index
Igual que el ya estudiado para otros controles. InitDir
Devuelve o establece el directorio de archivos inicial. Sintaxis
objeto.InitDir [= cadena]
La sintaxis de la propiedad InitDir consta de las siguientes partes: objeto objeto Nombre Nombre que define define al CommonDial CommonDialog og cadena cadena Expresión Expresión de cadena que especifica especifica el directorio de archivos inicial. inicial. Si no se especifica esta propiedad, se utilizará el directorio actual. Left y Top
Estas propiedades solamente afectan a la colocación del icono en el formulario. No afectan a la colocación del CommonDialog durante la ejecución. La posición del CommonDialog en tiempo de ejecución no puede controlarse. Esta afirmación de que la posición del CommonDialog no es controlable es válida para para sist sistem emas as a 32 byte bytes. s. En VB 4 de 16 bits bits,, el Commo CommonD nDia ialo log g apar aparec ece e aproxima aproximadame damente nte en la parte parte superio superiorr izquierd izquierda a del formulario formulario que lo contien contiene. e. Algunos Algunos programadores programadores han optado por poner un formulario para contener contener solamente al CommonDialog, y así, controlando la posición de ese formulario, poder controlar la posición (aproximada) en la que aparece el CD. Esto no ocurre para sistemas a 32 bytes, en los que el CD aparece siempre en la parte superior izquierda de la pantalla, independientemente de donde esté el formulario que lo contiene. MaxFileSize
Devuelve o establece el tamaño máximo del nombre de archivo abierto con el control CommonDialog. Sintaxis
objeto.MaxFileSize [= valor]
La sintaxis de la propiedad MaxFileSize consta de las siguientes partes: objeto = Nombre que define al CommonDialog valor = Número entero que especifica el tamaño máximo del nombre de archivo en bytes. El rango de esta propiedad es 132KB. El valor predeterminado es 256. Name
Nombre que define al CommonDialog PrinterDefault
Devuelve o establece una opción que determina si la configuración elegida por el usuario en el cuadro de diálogo Imprimir se utiliza para modificar la configuración predeterminada de impresora del sistema.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 19
Sintaxis
CD1.PrinterDefault = True / False
Las opciones que elija el usuario en el apartado Configurar del cuadro de diálogo Imprimir (selección de la impresora, orientación, etcétera) se utilizan para modificar la configuración de impresora almacenada en el Registro). False Las opciones que elija el usuario no se utilizan para modificar la configuración de impresora predeterminada del sistema. True
Utilice esta propiedad, que por defecto está a True, para poner o no poner como impresora predeterminada, la impresora seleccionada con el CommonDialog. Puede por ejemplo, querer imprimir un texto en una impresora determinada, pero solo ese texto, texto, y no quie quiere re cambi cambiar ar la impre impreso sora ra pred predete etermi rmina nada da por por el hech hecho o de habe haber r sele selecci ccion onad ado o en este este moment momento o otra otra impre impreso sora ra.. Pong Ponga a esta esta prop propie ieda dad d a False False (recuerde que por defecto está a True) para que la impresora seleccionada no se quede como impresora por defecto. Tag
Lo mismo que se ha explicado para otros controles.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 20
CONTROLES DE BUSQUEDA DE DE FICHEROS
CONTROLES DE BUSQUEDA DE FICHEROS Y DIRECTORIOS Estos Estos controles apenas si se usan. La razón es que el CommonDialog ya estudiado sustituye sustituye con con crece crecess a esto estoss tres tres control controles es en su conjun conjunto to.. Sin Sin embar embargo go,, para para dete determin rminad adas as necesidades sí son muy prácticos. Estúdieselos con el mismo entusiasmo que si no existiese el CommonDialog. Al tratarse de controles tipo Lista, le recomiendo que lea el capítulo correspondiente al ListBox. Le aclarará sobre todo los términos empleados para definir los elementos de la lista, que en este caso, son los ficheros de una carpeta, las carpetas de un disco o los discos visibles desde la máquina.
DriveListBox, DirListBox Y FileListBox .
•
Se obtienen directamente de la Caja de Herramientas, en los iconos siguientes:
DriveListBox permite elegir una unidad de disco. DirListBox muestra los directorios existentes en un árbol. FileListBox muestra los ficheros existentes en un determinado directorio.
• • •
Tal como indica su nombre, estos controles son listas. Repase el control ListBox para recordar sus propiedades. DriveListBox
Este control permite elegir una unidad de disco válida en tiempo de ejecución. Utilice este control para mostrar una lista de todas las unidades válidas del sistema de un usuario. Puede crear cuadros de diálogo que permitan al usuario abrir un archivo de una lista en cualquier unidad disponible.
DriveListBox DriveListBo x desplegado y sin desplegar Name (nombre) por defecto List1 Posee las propiedades típicas de cualquier control VB respecto a su geometría y color. Las propiedades mas destacables de este control son : Drive, List, ListCount y ListIndex Drive devuelve el nombre de la unidad de disco seleccionada :
Variable = List1.Drive
Variable = a :
(ó c :[MS-DOS_6] ó D )
Este control se trata de una lista como su nombre indica, y posee las propiedades List, ListCount y ListIndex para permitir al usuario tener acceso a elementos de la lista.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 21
List (n) devuelve el texto que define a la unidad colocada en el lugar n. El número n comienza
por 0. Por ejemplo, en la figura anterior, anterior, List1.list(1) devolverá c :[MS-DOS_6] ListCount proporciona información acerca del número de unidades de disco disponibles (En el ejemplo, List1.ListCoun List1.ListCountt será 3, que corresponde corresponde a los tres discos disponibles disponibles - disco C :, disco A : y disco D : ) ListIndex devuelve el índice del disco seleccionado en la lista (0 para el primero, n-1 para el
último)
Utilizando el control DriveListBox en combinación con DirListBox y FileListBox, podrá realizar un explorador de ficheros en cualquier disco de su ordenador. DirListBox.
Presenta un cuadro de la siguiente forma:
donde puede verse el árbol completo de un directorio. El DirListBox solamente solamente presenta presenta directorios. No presenta ficheros. Aparte de las propiedades geométricas de todos los controles, el DirListBox presentas las siguientes propiedades particulares : Path
Devuelve o establece la ruta de acceso actual. No está disponible en tiempo de diseño. Sintaxis
Nombre.Path [= pathname]
donde Nombre es el nombre del DirListBox pathname pathname Una expresión expresión de cadena cadena que evalúa en el nombre nombre de vía de acceso acceso del directorio directorio por defecto del DirListBox.. El valor valor de la prop propie ieda dad d Path Path es una una cade cadena na que que indi indica ca una una ruta ruta de acce acceso so,, como como C:\WINDOWS\S C:\W INDOWS\SYSTEM. YSTEM. El valor predeterminado es la ruta de acceso actual Cuando se cambia la propiedad Path en tiempo de ejecución se genera un evento Change. Nota El valor que devuelve Path es distinto del de List (ListIndex). Path devuelve siempre un mismo camino, bien el que se le haya impuesto mediante mediante esta misma propiedad Path, y si no se le ha impuesto con anterioridad, el que tenga por defecto. List (ListIndex) devuelve el camino completo del directorio seleccionado, y, como era de esperar, cambia cada vez que cambiamos la selección del directorio. List, ListCount y ListIndex
Al igual que cualquier lista, el DirListBox tiene las propiedades List, ListCount y ListIndex .
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 22
ListIndex devuelve el valor del índice del directorio seleccionado. El valor devuelto es cero
cuando está seleccionado el primer directorio de los situados al final del árbol, 1 para el siguiente, etc. Toma Toma el valor -1 cuando se se selecciona el directorio inmediatamente superior al último nivel, el valor -2 cuando se selecciona el directorio situado 2 niveles jerárquicos por encima del último nivel, etc. ListCount devuelve un valor numérico igual al número de directorios existentes en el último
nivel, independientemente de los directorios que tuviesen por arriba.
List (n) devuelve una cadena de caracteres con el camino completo del elemento cuyo orden
sea sea el señala señalado do entre parénte paréntesis sis.. Si en vez de n colocamos colocamos el ListInd ListIndex ex nos devolverá, devolverá, logicamente, el camino del elemento seleccionado.
FileListBox
Esta lista nos presenta los ficheros existentes en un directorio.
Como Como se puede puede aprec apreciar iar,, cuan cuando do el númer número o de ficher ficheros os supe supera ra el número número que que pued puede e presentar, aparecen automáticamente las flechas de scroll verticales. Esta lista de ficheros tiene las siguientes propiedades destacables : Path
Devuelve o establece la ruta de acceso de su directorio actual. No está disponible en tiempo de diseño. Este directorio puede ser el que se le haya impuesto mediante esta propiedad Path, o el que tenga por defecto. (El directorio por defecto sería el del ejecutable de la aplicación) Si le ponemos el nombre por defecto, List1, para todos los ejemplos : variable = List1.Path List1.Path e.)
Variable = C:\Archivos de programa\Microsoft programa\Microsoft Visual Visual Basic32 Basic32
(p.
ListCount
Devuelve el número total de ficheros que hay en ese directorio. Varia riable ble = List1.Li 1.LisstCount
Varia riable ble = 19
(p. e.)
ListIndex
Devuelve un número con el índice del elemento seleccionado. Como todas las listas, devuelve -1 si no hay ningún elemento seleccionado. El primer elemento de una lista tiene el índice = 0. Filename
Devuelve el nombre del fichero seleccionado. List (n)
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 23
Devuelve el nombre del fichero que ocupa el lugar n en la lista. Variable = List1.List (5)
Varia riable ble = nomb ombre del del fic ficher hero qu que oc ocupa el el 5º 5º lu lugar en en la la lilista.
Si en lugar de n ponemos el valor de ListIndex : variable = List1.List (List1 (List1.Lis .ListIn tIndex) dex)
obtendr obtendremos emos el nombre nombre del fichero fichero selecci selecciona onado. do.
Observe que en este último caso, el resultado es el mismo que el de List1.Filename Veamos otras propiedades del FileListBox Pattern
Devuelve o establece un valor que indica los nombres de archivo mostrados en un control FileListBox en tiempo de ejecución. Sintaxis
objeto.Pattern [= valor]
La sintaxis de la propiedad Pattern consta de las siguientes partes: objeto : Nombre del Control FileListBox valor : Expresión de cadena que indica una especificación de archivo, como *.* o *.FRM. La cadena cadena predeterminada es *.*, que obtiene una lista de todos los archivos. Además Además de utilizar caracteres comodín, también puede especificar varios modelos, separándolos con caracteres punto y coma (;). Por ejemplo, con *.EXE; *.BAT se obtendría una lista con todos los archivos ejecutables y todos los archivos por lotes de MS-DOS.
Comentarios La propiedad Pattern juega un papel clave en el diseño de las funciones de examen y tratamiento de archivos de una aplicación. Puede utilizar Pattern en combinación con otras propiedades de control de archivos para proporcionar al usuario formas de explorar archivos o grupo gruposs de archiv archivos os simil similare ares. s. Por Por ejempl ejemplo, o, en una una aplic aplicaci ación ón dedic dedicad ada a a inicia iniciarr otros otros programas, podría hacer que sólo apareciesen los archivos .EXE en el cuadro de lista de archivos (*.EXE). Al modificar el valor de la propiedad Pattern se genera un evento PatternChange. Archive, Hidden, Normal, System
Devuelven o establecen un valor que determina si un control FileListBox presenta presenta los archivos con los atributos Archive, Hidden, Normal o System. El atributo Archive de un fichero indica si se ha variado ese fichero después de la última copia de seguridad. El atributo Hidden indica si el fichero se trata de un fichero oculto. El atributo Normal indica que el fichero es un fichero “normal” (No está oculto ni es de sistema). El atributo System de un fichero indica que el fichero es un fichero de sistema. Sintaxis objeto.Archive [= booleano] objeto.Hidden [= booleano] objeto.Normal [= booleano] objeto.System [= booleano] Las sintaxis de la propiedades Archive, Hidden, Normal y System tiene la siguiente partes: objeto :Nombre del FileListBox bool boolea eano no :Una :Una expre expresi sión ón bool boolea eana na (Tru (True e / False False)) que que espe especifi cifica ca el tipo tipo de archiv archivos os presentados.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 24
El valor booleano puede presentar los siguientes valores :
:(Predet etermi ermina nado do para para Archive Archive y Norma Normal) l) Pres Presen enta ta archi archivo voss con con el atrib atribut uto o de la True :(Pred propiedad en el control FileListBox.
False : (Predet (Predetermin erminado ado para Hidden Hidden y System) System) Presen Presenta ta archivos archivos sin el atribut atributo o de la
propiedad en el control FileListBox.
Use Use esta estass propi propied edad ades es para para espe especif cifica icarr el tipo tipo de archiv archivos os a pres presen enta tarr en un contr control ol FileListBox, FileListBox, basándos basándose e en los atributos de archivos estándar estándar usados en el entorno operativo. La definición de estas propiedades en el código en tiempo de ejecución hace que el control FileListBox presente sólo aquellos archivos con los atributos especificados. Por ejemplo, ejemplo, en una operación operación de buscar buscar y reemplaz reemplazar ar se podría podrían n prese presenta ntarr solamen solamente te archivos del sistema estableciendo la propiedad System a True y las demás propiedades a False. También, como parte del procedimiento de copia de seguridad, se podría establecer la propiedad propiedad Archive a True para relacionar solamente solamente aquellos archivos modif icados a partir de la última copia de seguridad. PROCEDIMIENTOS del FileListBox
C l ic k KeyDown
Change KeyPress
DragDrop KeyUp
DragOver
GotFocus
SENTENCIAS DE MANEJO DE DIRECTORIOS Y FICHEROS
El Directorio Actual
Se llama directorio Actual al directorio que está actualmente en uso, bien porque haya sido forzado el control correspondiente a tener ese directorio en su propiedad Path, bien porque, al no haberse forzado ninguno, utilice el directorio por defecto. El directorio por defecto es el último que se ha seleccionado por algún procedimiento. Por ejemplo, al arrancar una aplicación, el directorio por defecto será el mismo donde se encuentra el ejecutable. Pero si a lo largo de la aplicación cambiamos el directorio, seleccionando otro mediante un CommonDialog, ese directorio es el que queda por defecto. Asegúrese en sus aplicaciones que siempre elige la propiedad Path antes de presentar ficheros o directorios a través de los controles anteriores, para evitar que pueda mostrarle ficheros de un directorio no deseado. Puede comprobar cual es el directorio actual. La función CurDir nos devuelve el directorio actual. Ejemplo : Introduzca una línea de código con la siguiente sentencia Varia ariabl ble e = CurD CurDir ir
Al ejec ejecut utarl arla a la varia variabl ble e Varia ariabl ble e cont conten endr drá á la la inf inform ormac ació ión n:
Variable ariable = C:\Archiv C:\Archivos os de program programa\Micr a\Microso osoft ft Visua Visuall Basic3 Basic32 2
(p. e.)
Puede darse el caso de que desee conocer el directorio actual de varias unidades de disco. Por ejemplo, ejemplo, puede puede estar estar trabaja trabajando ndo en el director directorio io C:\Cur C:\CursoV soVB\Ej B\Ejemplo emploss y ser ser este este el directorio actual en el disco C :, y tener un disquete en la unidad A : en el que la última vez que trabajó fue en el directorio A :\ApVB\Tema1 y ese es su directorio por defecto en el disco A. Para conocer el directorio actual del disco C : no necesitó especificar la unidad, ya que era precisamente la unidad C la unidad actual. Para conocer el directorio actual de la unidad A emplearía la expresión : Variable = CurDir (“A”)
LSB
Visual Basic
Variable tomará entonces el valor Variable = “A :\ApVB\Tema1” :\ApVB\Tema1”
-
Guía del Estudiante
Capítulo 3
Página 25
Decíamos que el disco C era la unidad actual. También podemos cambiar la unidad actual, mediante la sentencia ChDrive seguida de una letra (entre comillas dobles) Ejemplo
ChDrive “A”
cambi ambia a la unida nidad d actual a la unid nidad A. Observe rve que el parámetro A no tiene que llevar los dos puntos ( : ), aunque si lo desea, puede ponerlos. También es indiferente que la letra sea mayúscula o minúscula.
También podemos forzar a que un directorio sea el directorio por defecto. La sentencia que tendremos que usar en ChDir . Ejemplo : ChDir “C :\Windows\System” :\W indows\System” cambiaría el directorio actual al especificado. especificado. Podemos incluso crear un directorio. Usaremos para ello la sentencia MkDir . Esta sentencia crea el directorio con el nombre indicado, sobre el directorio actual. Si el directorio actual es el C:\VB\Icons y ejecutamos la sentencia : “Varios” MkDir “Varios”
crearíamos el directorio C:\VB\Icons\Varios
Podemos incluso eliminar un directorio. La sentencia para eliminar un directorio es RmDir ¡ Cuidado ! Visual-Basic no le advertirá que puede borrar algo que no desea. Asegúrese muy
bien mediante un aviso al usuario cada vez que elimine un directorio. Vamos amos a ver ahor ahora a como como podem podemos os ver los los nombr nombres es de los fichero ficheross exist existen entes tes en un determinado directorio. Muy sencillo, con un FileListBox . Efectivamente, así podría ser para presentarlo presentarloss en pantalla. Sin embargo, si deseamos deseamos imprimir la lista de ficheros existentes, existentes, guardarla guardarla en un f ichero, etc., tenemos una forma que facilita esta labor. labor. Igual que en DOS. La función Dir A esta función le debemos añadir como parámetro el criterio de búsqueda, criterio formado por los caracteres o comodines que deseemos. Dir devuelve solamente el nombre de un fichero, por lo que tendremos tendremos que repetirl repetirla a tantas tantas veces como ficheros ficheros tenga el directo directorio. rio. Pero solamente tendremos que introducir el criterio de búsqueda la primera vez. En el siguiente ejemplo, sacaremos por impresora los nombres de los ficheros existentes en el direc director torio io actu actual al : (Est (Este e códig código o lo metere meteremo moss en el proc procedi edimie miento nto click click de un botó botón n de comando) f ichero = Dir("*.*") Do Unti Untill fiche fichero ro = "" "" Printe Printerr.Prin .Printt fiche fichero ro f ichero = Dir Loop
‘Le decimos que imprima todos (*.*) ‘Has ‘Hasta ta que que fich ficher ero o sea sea una una cade cadena na de de longi longitu tud d cero cero.. .. ‘Impr ‘Imprime ime la variabl variable e fich fichero ero en la impre impreso sora ra ‘Toma el nombre de otro fichero ‘Vuelve a Do Until .....
Printe nter.EndDoc
‘Termin mina la impr mpresión y saca la hoja de la impr mpresora
Ya sabemos sacar el directorio. Vamos a ver que otras cosas se pueden hacer con ficheros. Función Kill. A poco Inglés Inglés que sepa sepa se habrá habrá dado cuenta cuenta que esta función función sirve sirve para para quitarse algo de enmedio. Esta función borra un fichero del disco. Kill “C:\CursoVB\Ejemplos\Ejemplo1.txt”
borra el fichero Ejemplo1.txt, que se encuentra en el disco C, directorio \ CursoVB\Ejemplos Función FileCopy. Copia un fichero. La sintaxis de esta función es la siguiente : FileCopy Origen, Destino
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 26
Si tenemos un TextBox llamado Text1 donde vamos a introducir el nombre (con su Path) del fichero origen, otro TextBox donde introduciremos el nombre (con su Path) que queremos dar a la copia, para copiar ese fichero ejecutaremos la sentencia : FileCopy Text1.Text, Text2.Text
Si queremos copiar copiar un fichero del disco A, en el directorio directorio CursoVB y de nombre Ejemplo1 al disco y directorio C:\CursoVB\Ejemplos y con el mismo nombre que tenía en el disco A, es decir, Ejemplo1, ejecutaremos la sentencia : FileCopy “A :\CursoVB\Ejemplo1” , “C:\CursoVB\Ejemplos\Ejemplo1”
Observe la necesidad de dobles comillas para especificar que es, precisamente lo escrito en el código, lo que indica el origen y el destino. En el caso anterior no llevaba dobles comillas, debido a que era el contenido de un TextBox lo que se usaba para indicar el origen y el destino. La instrucción Name cambia el nombre de un fichero. No solamente puede cambiar un nombre, puede incluso moverlo de sitio, pero siempre en la misma unidad de disco. La sintaxis de Name es la siguiente : Name nombrerutaantiguo As nombrerutanuevo
Donde nombrerutaantiguo es una expresión de cadena que indica el nombre del fichero (con su path) al que se le quiere cambiar el nombre, y nombrerutanuevo es una expresión de cadena que especifica el nombre nuevo y, si se desea mover de directorio, la nueva ubicación del archivo y la unidad de disco. El nombre y ubicación especificados especificados en nombrerutanuevo nombrerutanuevo no pueden ser los de un archivo existente. Tanto nombrerutanuevo como nombrerutaantiguo deben encontrarse en la misma unidad de disco. Si la ruta de acceso especificada en nombrerutanuevo existe y es distinta de la ruta de acceso especificada en nombrerutaantiguo, la instrucción Name coloca el archivo en el nuev nuevo o dire direct ctor orio io o carp carpet eta a y camb cambia ia el nomb nombre re del del arch archivo ivo,, de ser ser nece necesa sari rio. o. Si nombrerutanuevo y nombrerutaantiguo tienen distintas rutas de acceso y el mismo nombre de archivo, Name coloca el archivo en la nueva ubicación, sin cambiar el nombre del archivo. Por medio de Name se puede mover un archivo de un directorio o carpeta a otro, pero no se puede mover un directorio o carpeta. Si se utiliza Name con un archivo abierto se produce un error. error. Antes de cambiar el nombre de un archivo, se debe cerrar. En el ejemplo, vamos a cambiar el nombre del fichero C:\CursoVB\Ejemplos\Ejemplo1 por el de C :\CursoVB\Ejemplos\Prueba1 “C:\CursoVB\Ejemplos\Ejemplo1” mplo1” As “C :\CursoVB\Ejemplos\Prueba1” Name “C:\CursoVB\Ejemplos\Eje En el siguiente, aparte de cambiarlo de nombre, le cambiamos de directorio. Name “C:\CursoVB\Ejemplos\Eje “C:\CursoVB\Ejemplos\Ejemplo1” mplo1” As “C :\CursoVB\Ejercic \Prueba1” \Prueba1”
Existe una función que le permite conocer el volumen de un fichero : FileLen. Mediante esta instrucción podrá saber, por ejemplo, si un fichero le va a caber en lo que le queda libre de un disquete, el tiempo previsto para enviarlo por módem, etc. La sintaxis es la siguiente : Variable = FileLen("C:\CursoVB\Ejemplos\Ejemplo1")
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 27
Variable tomará un valor numérico igual al número de bytes del fichero. Otra función para el tratamiento de ficheros es FileDateTime, que le permite conocer conocer la fecha y hora de creación o de la última modificación de un fichero. La sintaxis es, para el caso del ejemplo : Variable = FileDateTime ("C:\CursoVB\Ejemplos\Ejemplo1") Variable puede tomar un valor como el siguiente : Variable = 13/02/97 14:59:20 (Observe que de esta función se obtiene una variable de cadena.) Puede aprovechar esta función para borrar o hacer Backup de determinados ficheros que tengan mas de un tiempo de permanencia, sustituir ficheros por versiones mas recientes, etc. Podemos obtener y modificar los atributos de un fichero. Los atributos de un fichero se refieren a si son de solo lectura, ficheros ocultos, de sistema, si ha sido modificado desde la última vez que se ha realizado un Backup, Para Para conocer conocer los atribut atributos os de un fichero, fichero, utilizar utilizaremos emos la función función GetAttr . Esta Esta funció función n devuelve un número, que representa la suma de los atributos de un archivo, directorio o carpeta o una etiqueta de volumen. Sintaxis
Variable = GetAttr (nombreruta)
Donde nombreruta es una expresión de cadena que especifica un nombre de archivo, con su Path y unidad de disco. El valor devuelto por GetAttr es un número, igual a la suma de los siguientes valores de atributos: Valor
Constante
Descripción
0 1 2 4 16 32 copia
vbNormal vbReadOnly vbHidden vbSystem vbDirectory vbArchi ve
Normal. Sólo lectura. Oculto. Archivo de sistema. Directorio o carpeta. El archivo ha sido modif icado después de efectuar la última de seguridad.
Si la expresión nombreruta representa un directorio, se lo indicará devolviendo el valor 16. Para cambiar un atributo utilizaremos la función SetAttr . La sintaxis de esta función es la siguiente Sintaxis
SetAttr nombreruta , atributos
Donde nombreruta es una expresión de cadena que especifica un nombre de archivo, con su Path y unidad de disco, y atributos es una o varias de las constantes o valores anteriores, cuya suma especifica los atributos de archivo. Dado que el valor 16 indica que lo expresado en nombreruta es un directorio, no puede pretenderse darle a ese directorio atributos que solamente se pueden aplicar a un fichero, ni puede pretender darle a un fichero un valor en el que entre el 16 como sumando. Estos casos le producirán un error en tiempo de ejecución. Si pretende establecer los atributos de un archivo abierto, se producirá un error en tiempo de ejecución.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 28
Existe una función, que no tiene nada que ver con la anterior, aunque puede parecerlo por su parecido semántico y que también devuelve atributos, pero de otro tipo. Esta función es FileAttr
Función FileAttr Devuelve el modo de apertura de un archivo. Logicamente debe referirse a un archivo abierto en el momento de ejecutar esta función. Vea para mas detalles la sentencia Open. Sintaxis
variable = FileAttr (numerocanal , tipoinformación)
Donde numerocanal es el número del canal de apertura de ese archivo, y tipoinformación es el tipo de información que deseamos de ese fichero. Si tipoinformación = 1 nos devuelve el modo de apertura del fichero, según la siguiente lista Valor
Modo del archivo
1 2 4 8 32
Entrada Salida Aleatorio Añadir Binario
La Ayud Ayuda a de VB dice dice que que tipo tipoin infor forma maci ción ón pued puede e ser ser =2 para para que que FileAttr devuelva información sobre el selector de archivos del sistema sistema operativo. Algunas veces la información de ayuda de VB promete cosas que, sin dudar de que sean ciertas, son difíciles de comprobar. Esta función no tiene una gran aplicación práctica, ya que comprueba la forma en la que hemos abierto un archivo. Información que conocemos desde el mismo momento de abrirlo.
LSB
Visual Basic
-
Guía del Estudiante
Capítulo 3
Página 29