Escrito por Mauro Rondinelli el Miércoles 27 de Febrero de 2008 a las 13:54hs
Controles especializados
Visual Basic proporciona una serie de controles especializados en el acceso al sistema de archivos de windows.
Estos controles son el Cuadro de lista de unidades, el Cuadro de lista de directorios y el Cuadro de lista de archivos. Cada uno de estos controles permite acceder a los correspondientes elementos del sistema de archivos.
![]()
Al cuadro de lista de unidades (figura superior), tienes que darle un tamaño adecuado para que se pueda mostrar cualquier unidad que tengas en tu ordenador. En tiempo de diseño se muestra la etiqueta de la unidad del disco duro de forma que puedas ajustar el control al tamaño de la misma. Este control incluye las unidades de disco duro, disco flexible y Cd-Rom, etc...
![]()
El cuadro de lista de directorios nos permite mostrar los directorios del sistema de archivos del ordenador. Es conveniente que este control muestren tres o cuatro carpetas o directorios. En tiempo de diseño muestra la carpeta en la que se inicia la aplicación y en la que por defecto se guarda el proyecto.
![]()
El cuadro de lista de archivos nos muestra los archivos de un determinado
directorio o carpeta. Su propiedad más interesante es Pattern que nos
permite especificar qué tipo de archivos son mostrados en dicho control. Para
utilizar esta propiedad se pueden utilizar los comodines * y ? al establecer la
propiedad. Estos caracteres tienen el mismo significado que en MS-Dos o Windows
para especificar los nombres de los archivos.
Si estableces la propiedad
Pattern con la cadena *.txt, estás indicando que se muestren sólo los archivos
que tengan esta extensión. Se pueden mostrar más de un tipo de archivos
separándolos con ;.

Conectar controles
En tiempo de diseño, al dibujar los distintos controles del sistema de archivos,
estos muestran la unidad y el directorio en la que se crea el proyecto como he
comentado anteriormente. En tiempo de ejecución el usuario puede cambiar la
unidad y el directorio o carpeta y esta situación no se verá reflejada si no se
escribe código.
Para que los controles estén sincronizados es necesario
conectarlos.
El evento predeterminado del control cuadro de lista de unidades
es Change. Este evento sucede cuando el usuario despliega la lista de
unidades y selecciona una unidad distinta a la actual, por lo que es el evento
adecuado para actualizar la lista de directorios de la siguiente
forma:
Private Sub Dir1_Change()
Dir1.Parh = Drive1.Drive
End
Sub
Para el control cuadro de lista de directorios deberemos hacer
algo parecido, el código será el siguiente:
Private Sub
Dir1_Change()
File1.Path = Dir1.Path
End Sub
De esta forma
tenemos conectados los tres controles de acceso al sistema de archivos.
Manejando los errores
Cuando se escribe código en tiempo de diseño, Visual Basic puede detectar
errores y avisar de ellos. Posteriormente se pueden detectar más errores en
tiempo de compilación, estos errores son de carácter semántico. Los errores en
tiempo de ejecución son sucesos inesperados que Visual Basic no puede controlar
por sí mismo.
Ante este tipo de errores existe la posibilidad de incorporar
un manejador o controlador de errores, que son un conjunto de líneas de
código que sólo se ejecutan cuando se produce un error que es interceptado por
Visual Basic.
Se deben de escribir manejadores de errores siempre que se pueda preveer la ocurrencia de un error en tiempo de ejecución. Alguna de estas situaciones son:
La instrucción que nos permite detectar errores en tiempo de ejecución es On Error. Su sintaxis es: On Error Goto Etiqueta, donde la etiqueta representa el nombre del manejador de error, que tiene que estar situado en el mismo procedimiento que la instrucción On Error. Cuando se produce un error en el procedimiento donde se coloca On Error, Visual Basic dará el control al manejador de errores escrito en dicho procedimiento.
El código puede
ser:
ManejadorError:
If Err.Number = 68 Then
resp = MsgBox("El
dispositivo no está preparado", vbAbortRetryIgnore)
Resume
ElseIf resp =
vbAbort Then
Drive1.Drive = Dir1.Ptah
Resume Next
End If
End
If
La primera línea es la etiqueta que representa el nombre del
manejador.
Al producirse un error en tiempo de ejecución se crea un objeto Err que intercepta dicho error. Este objeto posee la propiedad Number que es el número de error interceptado.
El código pregunta si
dicho error es el 68 y en ese caso presenta un cuadro de diálogo en el que se
indica que el dispositivo no está preparado, dando tres opciones: reintentar,
cancelar o ignorar.
Una vez interceptado el error y ejecutado el código
asociado al manejador, es necesario indicar qué sucede una vez se salga del
manejador. En este caso dependerá de lo que elija el usuario. Si quiere
reintentar la operación se ejecutará la instrucción Resume, que vuelve a
ejecutar la misma instrucción que provocó el error.
Si se anula la operación
se ejecutará Resume Next, que devuelve el control a la siguiente
instrucción que provocó el error.
| < Volver Al Indice | Capitulo Siguiente: Trabajar con archivos II > |
No hay comentarios.
No se permiten comentarios.