Está en la página 1de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

CAPITULO 8 VISUAL BASIC CUADROS DE DIALOGO COMUNES


Todas las aplicaciones Windows utilizan cuadros de dilogo estndar que permiten
realizar operaciones comunes como abrir y guardar archivos, establecer opciones de
impresin y seleccionar colores y fuentes. Estos cuadros de dilogo han sido diseados
dentro del sistema operativo y estn disponibles para ser utilizados en el diseo de cualquier
aplicacin mediante el uso del control CommonDialog.
8.1 El Control CommonDialog.- Para utilizar estos cuadros de dilogo, todo lo que se
debe hacer es colocar un control CommonDialog en el formulario y llamar al mtodo
apropiado. En tiempo de ejecucin, cuando se invoca a un mtodo, se presenta un cuadro
de dilogo, en tiempo de diseo, el control CommonDialog se presenta como un icono en el
formulario.
El control CommonDialog utiliza los siguientes mtodos para visualizar cuadros de
dilogo:
Mtodo
ShowOpen
ShowSave
ShowColor
ShowFont
ShowPrinter
ShowHelp

Accin
Muestra el cuadro de dilogo Abrir
Muestra el cuadro de dilogo Guardar como
Muestra el cuadro de dilogo Color
Muestra el cuadro de dilogo Fuente
Muestra el cuadro de dilogo Imprimir
Muestra el cuadro de dilogo Ayuda

8.1.1 Colocar el Control CommonDialog en el Formulario.- Si el control CommonDialog


no aparece en el cuadro de herramientas, seguir estos pasos para agregarlo:
1. Hacer clic en la opcin Componentes del men Proyecto. Visual Basic muestra el cuadro
de dilogo Componentes:
2. Desplazarse hasta la opcin Microsoft Common Dialog Control 6.0 y hacer clic para
seleccionarlo.
3. Hacer clic en Aceptar y el control CommonDialog aparecer al final del cuadro de
herramientas.
4. En el cuadro de herramientas, hacer doble clic sobre el control CommonDialog para
colocarlo en el formulario.
Al colocar el control CommonDialog en el formulario, podr fijar su posicin pero no
podr modificar su tamao, ya que se trata de un control que slo es visible durante el diseo
pero no durante la ejecucin.

8.2 Los Cuadros de Dilogo Abrir y Guardar.- Los cuadros de dilogo Abrir y Guardar
permiten manipular archivos de datos. Por medio de ellos se puede salvar los datos, as
como recuperarlos. La figura siguiente muestra el cuadro de dilogo Abrir, por medio del
Ing. Hermas Herrera Callejas

Pgina : 1 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

cual, el usuario puede especificar una unidad, un directorio y un nombre de archivo. En la


parte inferior dispone de una lista de tipos de archivos.

Usar el cuadro de dilogo Abrir para desplazarse a cualquier otro directorio mediante
la lista desplegable. Buscar y solicitar la ruta y un archivo.
En tiempo de ejecucin, cuando el usuario selecciona un archivo y cierra el cuadro de
dilogo, se utiliza la propiedad .FileName para obtener la ruta y el nombre del archivo
seleccionado.
El control CommonDialog crea el mismo cuadro de dilogo Abrir que se utiliza en otras
aplicaciones. Por ejemplo, hacer clic con el botn derecho del mouse en cualquier archivo
que aparece en la lista de este cuadro y aparecer un men contextual con el que podr
cambiar el nombre del archivo, copiarlo, cortarlo, eliminarlo, etc
.
El cuadro de dilogo Guardar como es idntico al cuadro de dilogo Abrir, pero difiere
en los ttulos de los botones que hay en la parte inferior derecha.
8.2.1 Propiedades
Propiedad
CancelError

DefaultExt

Filter

FilterIndex

FileName

Descripcin
Asignar el valor True a esta propiedad y cuando el usuario haga clic en el botn
cancelar del cuadro de dilogo, se generar un error que indica a la aplicacin que
se quiere detener la operacin actual. Todos los cuadros de dilogo comunes
generan el mismo error, el 32755 (la constante Cancel). Proporcionar un gestor de
errores que examine el nmero del error y si es 32755, detenga la operacin.
Esta propiedad se usa para especificar la extensin por defecto de los archivos,
como Txt o Doc, de manera que cuando el usuario abra o guarde un archivo sin
extensin, la especificada en esta propiedad se aada al nombre del archivo.
Esta propiedad se utiliza para especificar el tipo o tipos de archivos que se mostrarn
en la lista de archivos del cuadro de dilogo. Por ejemplo, para mostrar slo archivos
de texto, debemos especificar:
Dilogo.Filter = Archivos Txt|*.txt
Observar que la barra vertical | separa la descripcin (Archivos Txt) de la extensin
real (*.txt). En caso de que se quiera especificar ms de un filtro, cada uno de ellos
debe estar separado del siguiente por la barra vertical. Por ejemplo, para que la lista
muestre archivos con las extensiones Txt y Doc deber espedficar:
Dilogo.Filter = Archivos Txt|*.txt|Archivos Doc|*.Doc
Cuando se especifica ms de un filtro, el primero que aparece en la propiedad Fiiter,
pasa a ser el filtro por defecto. Filterlndex permite especificar un filtro distinto del
primero. Utilizando el ejemplo anterior, si a Filterlndex le asignamos el valor 2, el
cuadro de dilogo Abrir mostrar archivos con extensin Doc por defecto.
Luego de seleccionar o escribir un nombre de archivo y hacer clic en el botn
Aceptar del cuadro de dilogo, la ruta y el nombre de este archivo quedan
almacenados en la propiedad FileName. Posteriormente, esta propiedad se puede

Ing. Hermas Herrera Callejas

Pgina : 2 de 19

Computacin para Ingeniera I y Laboratorio

FileTitle
MaxFileSize

InitDir

DialogTitle

Cap.8Visual BasicCuadros de Dilogo Comunes

utilizar para abrir el archivo y leer o escribir en l.


Esta propiedad devuelve slo el nombre del archivo que se va a abrir o guardar, sin
incluir la ruta de acceso.
Por defecto, la mxima longitud que puede tener un nombre de archivo incluida la
ruta de acceso es de 256 bytes. En caso de que se necesite una longitud mayor,
especificar la nueva longitud en la propiedad MaxFileSize.
Esta propiedad permite establecer un directorio de inicio desde el cual se obtendrn
los archivos cada vez que se activen los cuadros de dilogo Abrir o Guardar. Si no se
establece un directorio inicial, el directorio por defecto ser aquel donde se abri o
guard el ltimo archivo. Por ejemplo, para que el directorio inicial sea C:\Mis
documentos\ se deber especificar:
Dilogo.InitDir = C:\Mis documentos\
La siguiente sentencia establece como directorio inicial, la ruta de acceso de la
aplicacin.
Dilogo.InitDir = App.Path
Esta propiedad permite especificar un ttulo que se muestra en la barra de titulo del
cuadro de dilogo. Si no se especifica un titulo se utilizar el titulo por defecto.

8.2.2 Indicadores.- Abierto el cuadro de dilogo, ste actuar de una u otra forma
dependiendo de una serie de indicadores, que el programador facilitar utilizando la
propiedad Flags. Para activar varios indicadores en la propiedad Flags, se debe combinar
sus valores mediante el operador lgico Or.
Constante
cdIOFNReadOnly

Descripcin
Activa la opcin Abrir como slo lectura ubicada en la parte inferior del
cuadro de dilogo.
cdIOFNHideReadOnly
Oculta la opcin Abrir como slo lectura.
cdIOFNFileMustExit
Muestra un mensaje de advertencia si el usuario introduce un nombre de
archivo inexistente.
cdIOFNPathMustExit
Muestra un mensaje de advertencia si el usuario introduce una ruta de
acceso inexistente.
cdIOFNNochangeDir
Impide que el usuario cambie el directorio actual. Usar este indicador para
forzar al usuario a guardar los archivos en una determinada carpeta.
cdIOFNCreatePrompt
Muestra un mensaje al usuario preguntando si desea crear un archivo que
no existe.
cdIOFNAllowMultiselect
Permite la seleccin de varios archivos en el cuadro de dilogo Abrir. El
usuario puede seleccionar ms de un archivo manteniendo presionada la
tecla Shift y usando las teclas del cursor. Al hacer clic en Aceptar, la
propiedad FileName contendr una cadena con los nombres de los
archivos seleccionados, separados por espacios.
cdIOFNExtensionDiferent Indica que el usuario utiliz una extensin diferente a la extensin
especificada en la propiedad DefaultExt.
cdIOFNExplorer
Muestra una ventana similar al del Explorador.
cdIOFNOverwritePrompt Muestra un mensaje preguntando al usuario si desea sobrescribir en caso
que el archivo seleccionado en el dilogo Guardar como exista.
cdIOFNLongNames
Permite utilizar nombres de archivo largos.
cdIOFNNoValidate
Normalmente el cuadro de dilogo Abrir valida los nombres de los
archivos. Este indicador se activa para saltar este paso de validacin.
cdIOFNNoLongNames
No permite utilizar nombres de archivos largos.
cdIOFNHelpButton
Muestra el botn Ayuda en el cuadro de dilogo.
cdIOFNNoDeferenceLinks No quita la referencia de vnculos. Por defecto, elegir un vnculo hace que
se quite la referencia.
cdIOFNNoReadOnlyReturn Inhabilita la seleccin de archivos con el atributo de Slo lectura y que no
estn en una carpeta protegida contra escritura.
Ing. Hermas Herrera Callejas

Pgina : 3 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

8.3 El Cuadro de Dilogo Fuente.- Este cuadro de dilogo ser de mucha utilidad si la
aplicacin que se est diseando trabaja con texto. Permite al usuario seleccionar una
fuente, tamao o estilo de fuente y algunos efectos especiales como color, subrayado o
tachado.
El cuadro de dilogo Fuente proporciona al usuario las fuentes que hay en la
computadora.

Una vez cerrado el cuadro de dilogo, el control CommonDialog devuelve los atributos
de la fuente seleccionada por medio de las siguientes propiedades:
Propiedad
FontName
FontBold
FontItalic
FontStrikethru
FontUnderline
FontSize
Color

Descripcin
Devuelve el nombre de la fuente seleccionada.
Ser True si tiene puesto el atributo Negrita.
Ser True si tiene puesto el atributo Cursiva.
Tendr el valor True si se seleccion el efecto Tachado. Asignar la constante
CFEffects a la propiedad Flags para usar este efecto.
Tendr el valor True si se seleccion el efecto Subrayado. Asignar la constante
CFEffects a la propiedad Flags para usar este efecto.
Devuelve el tamao de la fuente seleccionada.
Devuelve el color seleccionado. Asignar la constante CFEffects a la propiedad
Flags para usar este efecto.

Las propiedades anteriores servirn para conocer la seleccin que ha efectuado el


usuario. Tambin se puede dar un valor inicial antes de llamar al cuadro de dilogo Fuente,
de tal forma que aparezcan seleccionadas por defecto las caractersticas que se indiquen.
8.3.2 Indicadores.- Por medio de la propiedad Flags se puede utilizar uno o varios
indicadores, mediante los cuales el cuadro de dilogo sabr qu tipos de letra puede
seleccionar el usuario y qu acciones adicionales deber llevar a cabo. La siguiente tabla
muestra estos indicadores:
Constante
cdICFTTOnIy
cdICFScreenFonts

Descripcin
Hace que el cuadro de dilogo muestre slo fuentes True Type.
Hace que el cuadro de dilogo muestre slo las fuentes disponibles para la
pantalla.
cdICFPrinterFonts
Hace que el cuadro de dilogo muestre slo fuentes disponibles para
impresora.
cdICFBoth
Hace que el cuadro de dilogo muestre fuentes de pantalla y de impresora.
cdICFScalableOnly Hace que en el cuadro de dilogo slo aparezcan fuentes escalables.
cdICFFixedPitchOnly Hace que el cuadro de dilogo muestre slo fuentes de espaciado fijo.
cdICFEEffects
Permite usar las opciones de color, tachado y subrayado.
cdICFNoFaceSel
No seleccionar los nombres de fuentes.
Ing. Hermas Herrera Callejas

Pgina : 4 de 19

Computacin para Ingeniera I y Laboratorio

cdICFNoSizeSel
cdICFNoStyleSel
cdICFHelpButton

Cap.8Visual BasicCuadros de Dilogo Comunes

No seleccionar el tamao de fuentes.


No seleccionar ningn estilo.
Muestra el botn Ayuda en el cuadro de dilogo.

8.4 El cuadro de dilogo Imprimir.- Este cuadro de dilogo permite al usuario elegir la
impresora, el tamao del papel, el nmero de copias que se desea imprimir y qu pginas se
van a imprimir.

Luego de que el usuario haya elegido la impresora y haya hecho clic sobre el botn
Aceptar, el control CommonDialog devuelve al programa el nombre de la impresora y los
atributos de impresin a travs de las siguientes propiedades:
Propiedad
Copies (Copias)
FromPage (Desde la pgina)
ToPage (Hasta la pgina)
HDC
PrinterDefault

Descripcin
Especifica el nmero de copias que se van a imprimir.
Especifica la pgina en la que comenzar la impresin
Especifica la pgina en la que se detendr la impresin
Especfica el contexto del dispositivo de la impresora seleccionada
Asignar el valor True a esta propiedad y la nueva impresora
seleccionada por el usuario pasar a ser la impresora por defecto

Dependiendo de los indicadores que se activen en la propiedad Flags, el cuadro de


dilogo Print actuar de una forma u otra.
8.4.1 Indicadores
Constante
cdIPDAIIPages
cdIPDPageNums
cdIPDNoPageNums
cdIPDSelection
cdIPDNoSelection
cdIPDDisablePrintToFile
cdIPDHldePrintToFile
cdIPDPrintToFile

Descripcin
Devuelve o establece el estado de la opcin Todo.
Devuelve o establece el estado de la opcin Pginas.
Desactiva el botn de opcin Pginas.
Devuelve o establece el estado de la opcin Seleccin.
Desactiva el botn de opcin Seleccin.
Desactiva la casilla de activacin Imprimir en un archivo.
Oculta la Casilla de activacin Imprimir en un archivo.
Devuelve o establece el estado de la casilla de activacin Imprimir en un
archivo.
cdIPDCollate
Devuelve o establece el estado de la casilla de activacin Intercalar
copias.
cdIPDPrintSetup
El sistema presenta directamente el cuadro de dilogo Configurar
impresora.
cdIPDUseDevModeCopies Desactiva Nmero de copias si la impresora no soporta la impresin de
mltiples copias.

8.5 El Cuadro de Dilogo Color.- Este cuadro de dilogo permite que el usuario seleccione
un color de una paleta o definir un color personalizado a partir de los componentes rojo,
Ing. Hermas Herrera Callejas

Pgina : 5 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

verde y azul.
El cuadro de dilogo Color slo tiene una propiedad: Color. Mediante esta propiedad se
podr obtener el color seleccionado en tiempo de ejecucin. Asignar un color a la propiedad
Color y asignar la constante CCRGBInit en la propiedad Flags para que cuando se abra el
cuadro de dilogo, aparezca seleccionado un color inicial.
El cuadro de dilogo Color muestra slo algunos colores, pero el usuario puede definir
un nuevo color haciendo clic en el botn Definir colores personalizados.

8.5.1 Indicadores
Constante
cdCCFullOpen

Descripcin
Muestra todo el cuadro de dilogo, incluyendo la seccin Definir colores
personalizados que aparece en la parte derecha del cuadro.
cdCCPreventFullOpen Impide que el usuario acceda a la seccin Definir colores personalizados.
cdCCRGBInit
Establece el valor inicial del color, cuando se abre el cuadro de dilogo.

8.6 Creacin de un Mini Editor.- Se crear un mini editor. Al ejecutar esta aplicacin, la
interfaz de usuario deber presentar una barra de mens con las opciones Archivo, Edicin y
Formato; una barra de herramientas con botones de acceso directo y una barra de estado. El
men Archivo deber contener comandos que permitan crear, abrir, guardar e imprimir
archivos. El men Edicin, comandos que permitan copiar, cortar y pegar texto. El men
Formato, un comando que permita aplicar estilos de fuente al texto seleccionado. Una barra
de herramientas, como se sabe, presenta un conjunto de botones que permiten ejecutar los
comandos ms comnmente utilizados; de manera que, la barra de herramientas de nuestro
mini editor presentar botones que permitirn crear, abrir, guardar e imprimir archivos, as
como tambin, copiar, cortar y pegar texto. La barra de estado presentar tres paneles: el
primer panel mostrar un mensaje relacionado con la accin que estemos realizando; el
segundo mostrar el texto MAYUS en negrita si la tecla Caps Lock est activa y atenuada si
no lo est; el tercer panel mostrar la hora. Aspecto de la interfaz de usuario al ejecutar el
programa MiniEditor.

Seguir estos pasos:


Ing. Hermas Herrera Callejas

Pgina : 6 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

1. Hacer clic en la opcin Nuevo proyecto del men Archivo para crear un nuevo proyecto.
2. Hacer clic sobre el formulario para seleccionarlo.
3. Hacer clic sobre el botn Editor de mens para visualizar el cuadro de dilogo Editor de
mens. Crear la barra de mens segn el siguiente detalle:
Caption
Name
&Archivo
Archivo
....&Nuevo
ArchivoNuevo
....&Abrir
ArchivoAbrir
....LneaSeparadoral
....&Guardar
ArchivoGuardar
....LneaSeparadora2
....&Imprimir
ArchivoImprimir
....LneaSeparadora3
....&Salir
ArchivoSalir
&Edicin
Edicin
....&Copiar
EdicinCopiar
....C&ortar
EdicinCortar
....&Pegar
EdicinPegar
&Formato
Formato
....&Fuente
FormatoFuente
4 Si el cuadro de herramientas

Shortcut
Ctrl+N
Ctrl+A
Ctrl+G
Ctrl+I
Ctrl+S
Ctrl+C
Ctrl+O
Ctrl+P
Ctrl+F

no est activo, hacer clic en el botn Cuadro de


herramientas
5 Poner sobre el formulario una caja de texto. Para ello, hacer doble clic sobre el control
TextBox en el cuadro de herramientas.
Guardar el proyecto con el nombre MiniEditor.Vbp y el formulario con el nombre
MiniEditor.Frm. Cambiar las propiedades de los controles Form y TextBox como sigue:
Control
Form

TextBox

Propiedad
Name
Caption
Icon
Name
Multiline
ScrollBars
Text

Valor
Forml
Mi Editor
C:\Grficos\Note14.icon
Text1
True
3-Both
(Texto)

Crear la barra de herramientas. Para ello, colocar un control ImageList en el formulario.


Si el cono del control ImageList no aparece en el cuadro de herramientas, hacer clic en la
opcin Componentes del men Proyecto. En el cuadro de dilogo Componentes, habilitar la
opcin Microsoft Windows Common Controls 6.0 y hacer clic en Aceptar.
1 En el cuadro de herramientas, hacer doble clic en el cono del control ImageList. Este
aparece en el centro del formulario.
2 En el formulario, situar el puntero del mouse sobre el control ImageList y hacer clic con el
botn derecho del mouse.
3 En el men emergente que aparece, seleccionar la opcin Propiedades. Visual Basic
muestra el cuadro de dilogo Pginas de propiedades.
4 Este cuadro presenta tres pestaas: General, Imgenes y Color. En la pestaa General
indique la altura y ancho de los iconos que se incluirn en la barra de herramientas. Esta
propiedad es de slo lectura si la barra de herramientas contiene imgenes
5 Seleccionar la pestaa Imgenes para elegir las imgenes que se insertarn en la barra
de herramientas.
6 Hacer dic en el botn Insertar Imagen y Visual Basic visualizar el cuadro de dilogo
Seleccionar imagen, desde el cual se podr seleccionar la imagen que se incluir en la
Ing. Hermas Herrera Callejas

Pgina : 7 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

barra de herramientas.

7 Continuar haciendo clic en este botn hasta completar las imgenes restantes, finalmente
hacer clic en el botn Aceptar.
8 En el cuadro de herramientas, hacer doble clic en el cono del control ToolBar para incluir
una barra de herramientas en el formulario.
9 Hacer clic con el botn derecho del mouse sobre la barra de herramientas y en el men
emergente que aparece, seleccionar la opcin Propiedades.

Al hacer clic en la opcin Propiedades, Visual Basic muestra el cuadro de dilogo


Pginas de propiedades.

Establecer las siguientes propiedades:


Propiedad
ImageList
Appearance
Style
Ing. Hermas Herrera Callejas

Valor
ImageList1
1-cc3D
1-tbrFlat
Pgina : 8 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

Seleccionar la pestaa Botones y hacer clic en el botn Insertar botn. En Key,


ingresar un nombre que despus se utilizar en el programa. En ToolTipText, ingresar un
texto descriptivo que servir de ayuda al situar el puntero sobre el botn, en la barra de
herramientas; en Image ingresar un nmero que corresponda al orden o nmero de la
imagen a mostrar.
Nombre
Imagenl
Imagen2
Imagen3
Imagen4
Imagen5
Imagen6
Imagen7

Index
1
2
3
4
5
6
7

Key
BotnNuevo
BotnAbrir
BotnGuardar
BotnImprimir
BotnCopiar
BotnCortar
BotnPegar

ToolTipText
Nuevo
Abrir
Guardar
Imprimir
Copiar
Cortar
Pegar

Image Enables
1
2
3
4
5
Deshabilitado
6
Deshabilitado
7

Dado que la barra de herramientas tendr siete botones, hacer clic en el botn Insertar
botn siete veces y establecer las propiedades mostradas en el cuadro anterior.

Luego de ingresar todas las propiedades para cada uno de los botones que aparecern
en la barra de herramientas, hacer clic en Aceptar. La interfaz de usuario tendr aspecto de
la figura mostrada:

Ahora, proceder a insertar un control StatusBar en el formulario.


1. En el cuadro de herramientas, hacer doble clic en el cono del control StatusBar. Una
barra de estado aparece en la parte inferior del formulario.

Ing. Hermas Herrera Callejas

Pgina : 9 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

2. En el formulario, desplazar el puntero del mouse sobre la barra de estado y hacer clic con
el botn derecho del mouse. En el men emergente que aparece, seleccionar la opcin
Propiedades. Visual Basic visualiza el cuadro de dilogo Pginas de propiedades:

Seleccionar la pestaa Paneles y hacer clic en el botn Insertar panel. En Minimun


Width ingresar el ancho del panel. Hacer clic en el botn Examinar y Visual Basic visualizar
el cuadro de dilogo Seleccionar imagen desde el cual podr seleccionar una imagen para
el panel.
Ingresar los siguientes valores para cada uno de los paneles:
Panel
Panel 1
Panel 2
Panel 3

Index
1
2
3

MinimumWidth
1800
1440
144000

Picture
C:\Graficos\Nota.bmp
C:\Graficos\Mano_tecla.bmp
C:\Graficos\Relojl .bmp

3. Finalmente, hacer clic en el botn Aceptar.


Para finalizar el diseo de la interfaz, insertar un control CommonDialog en el formulario.
Para ello, hacer doble clic sobre el cono del Control CommonDialog en el cuadro de
herramientas. Si este control no aparece en el cuadro de herramientas, seleccionar la opcin
Componentes del men Proyecto. En el cuadro de dilogo Componentes, habilitar la opcin
Microsoft Common Dialog Control 6.0 y hacer clic en Aceptar.
Luego de disear la interfaz de usuario, asociar un procedimiento al formulario. Cuando
el usuario inicie el programa, este procedimiento se ejecutar de manera automtica.
1. Hacer doble clic en el formulario para visualizar la ventana de cdigo.
2. Digitar el siguiente cdigo:
Option Explicit
'La variable Modificado permitir saber si hubo alguna modificacin en el archivo
Public Modificado, rpta As Boolean
'La variable Canal servir para obtener un nmero de canal libre
Ing. Hermas Herrera Callejas

Pgina : 10 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

Public Canal As Integer


Private Sub Form_Load()
Dim i As Integer
'Centra el formulario en la pantalla
Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2
'Establece el ttulo de la ventana
Caption = "Mi Editor"
'Establece que el texto que se escriba sea de tipo arial
Text1.FontName = "Arial"
'Establece que por defecto 10 sea el tamao del texto
Text1.FontSize = 10
'Desactiva la opcin Copiar del men Edicin
EdicinCopiar.Enabled = False
'Desactiva la opcin Cortar del men Edicin
EdicinCortar.Enabled = False
'Activa/desactiva la opcin Pegar del men Edicin segn el portapapeles si contiene o no texto
EdicinPegar.Enabled = (Len(Clipboard.GetText()) > 0)
'Desactiva la opcin Fuente del men Formato
FormatoFuente.Enabled = False
'Habilita/deshabilita botn pegar de barra herramientas segn el portapapeles si contiene o no texto
Toolbar1.Buttons(7).Enabled = (Len(Clipboard.GetText()) > 0)
'Asigna el estado de la tecla Caps Lock (Bloqueo Mays) al panel 2 de la barra de estado
StatusBar1.Panels(2).Style = sbrCaps
Asigna la hora del sistema al panel 3 de la barra de estado
StatusBar1.Panels(3).Style = sbrTime
End Sub

Asociar un procedimiento al formulario accionado por el suceso Resize. Cuando el


usuario redimensione el formulario, el procedimiento redimensionar el control Text1
1. Hacer doble clic en el formulario para visualizar la ventana de cdigo.
2. Desplegar el cuadro de lista procedimientos y seleccionar el suceso Resize. La ventana
de cdigo abre el procedimiento Form_Resize.
3. Digitar el siguiente cdigo:
Private Sub Form_Resize()
Text1.Top = 440
Text1.Left = 0
Text1.Width = ScaleWidth
Text1.Height = ScaleHeight - 740
End Sub

Digitar un procedimiento para cada una de las opciones de los mens Archivo, Edicin y
Formato. En el formulario, abrir el men Archivo y hacer clic en la opcin Nuevo. En la
ventana de cdigo aparece el procedimiento ArchivoNuevo_Click. En este procedimiento
escribir el comando Call Nuevo:
Private Sub ArchivoNuevo_Click()
Call Nuevo
Llama al procedimiento Nuevo
End Sub

Proceder de modo similar para las opciones Abrir, Guardar, Imprimir, Salir, Copiar,
Cortar, Pegar y Fuente.
Private Sub ArchivoAbrir_Click()
Call Abrir
Llama al procedimiento Abrir.
End Sub
Private Sub ArchivoGuardar_Click()
Call Guardar
Llama al procedimiento Guardar.
Ing. Hermas Herrera Callejas

Pgina : 11 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

End Sub
Private Sub ArchivoImprimir_Click()
Call Imprimir
Llama al procedimiento Imprimir.
End Sub
Private Sub ArchivoSalir_Click()
End
Termina la ejecucin del programa.
End Sub
Private Sub EdicinCopiar_Click()
Call Copiar
Llama al procedimiento Copiar
End Sub
Private Sub EdicinCortar_Click()
Call Cortar
Llama al procedimiento Cortar
End Sub
Private Sub EdicinPegar_Click()
Call Pegar
Llama al procedimiento Pegar
End Sub
Private Sub FormatoFuente_Click()
Call Fuente
Llama al procedimiento Fuente
End Sub

Nota: Call transfiere el control a un procedimiento Sub o a un procedimiento Function.


Asociar un procedimiento a la barra de herramientas. En el formulario, hacer doble clic
sobre la barra de herramientas. La ventana de cdigo abre el procedimiento
Toolbar1_ButtonClick. Digitar el siguiente cdigo:
Private Sub Toolbar1_ButtonClick(ByVal Button As MSConnect1Lib.Button)
Select Case Button.Key
Case "BotnNuevo"
Call Nuevo
Case "BotnAbrir"
Call Abrir
Case "BotnGuardar"
Call Guardar
Case "BotnImprimir"
Call Imprimir
Case "BotnCopiar"
Call Copiar
Case "BotnCortar"
Call Cortar
Case "BotnPegar"
Call Pegar
End Select
End Sub

Digitar el cdigo de los procedimientos Nuevo, Abrir, Guardar, Imprimir, Copiar, Cortar y
Pegar.
Public Sub Nuevo()
'Procedimiento para editar un nuevo archivo y guardar las modificaciones realizadas en el mismo
If Modificado Then
rpta = MsgBox("Desea guardar los cambios realizados en el documento?", vbYesNo, "Mi Editor")
If rpta = vbNo Then
Exit Sub
Else
Call Guardar
End If
End If
Ing. Hermas Herrera Callejas

Pgina : 12 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

Form1.Caption = "(Sin ttulo)"


Text1.Text = " "
'Borra el contenido actual del cuadro de texto Text1
Text1.FontName = "Arial"
'Establece la fuente de tipo arial
Text1.FontSize = 10
'Establece el tamao de la fuente
Text1.FontBold = False
'Desactiva la propiedad FontBold (Negrita)
Text1.FontItalic = False
'Desactiva la propiedad FontItalic (Cursiva)
Text1.FontUnderline = False
'Desactiva la propiedad FontUnderline(Subrayado)
Text1.FontStrikethru = False
'Desactiva la propiedad FontStrikethru(Tachado)
Text1.ForeColor = RGB(0, 0, 0)
'Establece un color (negro) para el texto
Modificado = False
'Desactiva el indicador de Modificado
End Sub
Public Sub Abrir()
'Procedimiento para abrir un archivo de texto
Dim Cadena1, Cadena2 As String
Dim Nmero1, Nmero2 As Long
Dim Estado1, Estado2, Estado3, Estado4 As Boolean
'Guarda las modificaciones realizadas en el archivo
If Modificado Then
rpta = MsgBox("Desea guardar los cambios realizados en el documento?", vbYesNo, "Mi Editor")
If rpta = vbNo Then
Exit Sub
Else
Call Guardar
End If
End If
On Error GoTo ManipularErrorAbrir
'Si ocurre un error, ejecutar ManipularErrorAbrir
'Muestra un mensaje en el primer panel de la barra de estado
StatusBar1.Panels(1).Text = "Abriendo archivo"
'Fijar las propiedades necesarias
With CuadroDeDilogo
.CancelError = Trae
'Generar un error cuando pulse cancelar en dilogo abrir
.Filter = "Archivo de texto|*.txt|Todos los archivos|*.*"
'Filtros
.FilterIndex = 2
'Filtro por defecto
.DefaultExt = "Txt"
'Extensin por defecto que se aadir al nombre del archivo
.Flags = cdlOFNFileMustExist 'El usuario solo podr introducir nombres de archivos existentes
.ShowOpen
'Visualiza el cuadro de dilogo Abrir
Canal = FreeFile
'Obtiene un nmero de canal libre
Open .FileName For Input As Canal
Form1.Caption = .FileName
'Muestra el nombre del archivo en la barra de ttulo del formulario
End With
Text1.Text = " "
'Borra el texto actual del control Te xt1
Input #Canal, Cadena1, Cadena2, Nmero1, Estado1, Estado2, Estado3, Estado4, Nmero2
With Text1
.Text = Cadena1
.FontName = Cadena2
.FontSize = Nmero1
.FontBold = Estado1
.FontItalic = Estado2
.FontUnderline = Estado3
.FontStrikethru = Estado4
.ForeColor = Nmero2
End With
Close #Canal
'Cierra el archivo
Ing. Hermas Herrera Callejas

Pgina : 13 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

StatusBar1.Panels(1).Text = " "


'Borra el mensaje del primer panel de la barra de estado
Modificado = False
'Desactiva el indicador de modificado
Exit Sub
ManipularErrorAbrir:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido al abrir el archivo"
End If
End Sub
Public Sub Guardar()
'Procedimiento para guardar un archivo de texto
On Error GoTo ManipularErrorGuardar
StatusBar1.Panels(1).Text = "Guardando archivo"
With CuadroDeDilogo
.CancelError = True
.DefaultExt = "txt"
.Filter = "Texto|*.txt|Todos los archivos|*.*"
'Muestra un mensaje preguntando si desea sobreescribir el archivo
.Flags = cdlOFNOverwritePrompt
.ShowSave
'Muestra el cuadro de dilogo Guardar como
Canal = FreeFile
Open .FileName For Output As #Canal
Form1.Caption = .FileName
End With
'Escribir en el archivo los datos necesarios
With Text1
Write #Canal, .Text, .FontName, .FontSize, .FontBold, .FontItalic, .FontUnderline, .FontStrikethru,
.ForeColor
End With
Close #Canal
StatusBar1.Panels(1).Text = " "
Modificado = False
Exit Sub
ManipularErrorGuardar:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido al guardar el archivo"
End If
End Sub
Public Sub Imprimir()
'Procedimiento para imprimir el aspecto actual del formulario
Dim copias As Byte
On Error GoTo ManipularErrorImprimir
StatusBar1.Panels(1).Text = "Imprimiendo archivo"
With CuadroDeDilogo
.CancelError = True
.Flags = cdlPDNoSelection Or cdlPDNoPageNums Or cdlPDHidePrintToFile
.PrinterDefault = True
.ShowPrinter
'Muestra el cuadro de dilogo Imprimir
Ing. Hermas Herrera Callejas

Pgina : 14 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

copias = .Copies
End With
Printer.Copies = copias
'Fijar el nmero de copias
Printer.Font = Text1.Font
'Tomar el estilo de texto
Printer.Print Text1.Text
'Imprimir el texto actual
Printer.EndDoc
'Fin de impresin
StatusBar1.Panels(1).Text = " "
Exit Sub
ManipularErrorImprimir:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido"
End If
End Sub
Public Sub Copiar()
'Una copia del texto seleccionado en el cuadro de texto Text1 pasa al portapapeles (Clipboard)
Clipboard.SetText Text1.SelText
EdicinPegar.Enabled = Trae
'Activa la opcin Pegar del men Edicin
Toolbar1.Buttons(7).Enabled = Trae
'Activa el boton Pegar de la barra de erramientas
End Sub
Public Sub Cortar()
'Una copia del texto seleccionado en el cuadro de texto Text1 pasa al portapapeles (Clipboard)
Clipboard.SetText Text1.SelText
Text1.SelText = ""
'Borra el texto seleccionado
EdicinCopiar.Enabled = False
'Inhabilita la opcin Copiar del men Edicin
EdicinPegar.Enabled = Trae
'Habilita la opcin Pegar del men Edicin
FormatoFuente.Enabled = False
'Inhabilita la opcin Fuente del men Formato
Toolbar1.Buttons(5).Enabled = False
'Inhabilita el boton Copiar de la barra de herramientas
Toolbar1.Buttons(6).Enabled = False
'Inhabilita el boton Cortar de la barra de herramientas
Toolbar1.Buttons(7).Enabled = True
'Habilita el boton Pegar de la barra de herramientas
End Sub
Public Sub Pegar()
'Transfiere texto desde el portapapeles hacia el cuadro de texto Text1
Text1.SelText = Clipboard.GetText()
End Sub
Public Sub Fuente()
'Procedimiento que modifica el estilo del texto
On Error GoTo ManipularErrorFuente
StatusBar1.Panels(1).Text = "Aplicando estilo"
With CuadroDeDilogo
.CancelError = True
FontName = Text1.FontName
'Fijar el estilo actual en el cuadro de dilogo
.FontSize = Text1.FontSize
.FontBold = Text1.FontBold
.FontItalic = Text1.FontItalic
.FontUnderline = Text1.FontUnderline
.FontStrikethru = Text1.FontStrikethru
.Color = Text1.ForeColor
.Flags = cdlCFBoth Or cdlCFEffects
ShowFont
'Muestra el cuadro de dilogo Fuente
Text1.FontName = .FontName
'Aplica al cuadro de texto Text1 el estilo elegido
Ing. Hermas Herrera Callejas

Pgina : 15 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

Text1.FontSize = .FontSize
Text1.FontBold = .FontBold
Text1.FontItalic = .FontItalic
Text1.FontUnderline = .FontUnderline
Text1.FontStrikethru = .FontStrikethru
Text1.ForeColor = .Color
End With
StatusBar1.Panels(1).Text = " "
Exit Sub
ManipularErrorFuente:
If Err.Number = 32755 Then
StatusBar1.Panels(1).Text = " "
Exit Sub
Else
MsgBox "Error desconocido"
End If
End Sub

Asociar un procedimiento al formulario accionado por el suceso Unload. Cuando el


usuario finalice el programa, este procedimiento guardar las modificaciones realizadas en el
texto
Private Sub Form_Unload(Cancel As Integer)
If Modificado Then
rpta = MsgBox("Desea guardar los cambios realizados en el documento?", vbYesNo, "Mi Editor")
If rpta = vbNo Then
Exit Sub
Else
Call Guardar
End If
End If
End Sub

Asociar un procedimiento al cuadro de texto Text1 accionado por el suceso Change.


Cuando el usuario realice alguna modificacin en el cuadro de texto Textl, este procedimiento
activar la variable Modificado.
1. Hacer doble clic en el cuadro de texto Text1. La ventana de cdigo muestra el
procedimiento Text1_Change.
2. Digitar el siguiente cdigo:
Private Sub Text1_Change()
Modificado = True
End Sub

Asociar un procedimiento al cuadro de texto Text1 accionado por el suceso MouseUp.


1. Hacer doble en el cuadro de texto Text1
2. Desplegar el cuadro de lista Procedimientos y seleccionar el suceso MouseUp. La
ventana de cdigo abre el procedimiento Text1_MouseUp.
3. Digitar el siguiente cdigo:
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Habilita/Inhabilita el botn Copiar si Seleccion/No seleccion texto en el cuadro de texto Text1.
Toolbar1.Buttons(5).Enabled = (Text1.SelLength > 0)
'Habilita/Inhabilita el botn Cortar si Seleccion/No seleccion texto en el cuadro de texto Text1.
Toolbar1.Buttons(6).Enabled = (Text1.SelLength > 0)
'Habilita/Inhabilita la opcin Copiar del men Edicin si Seleccion/No seleccion
'texto en el cuadro de texto Text1.
EdicinCopiar.Enabled = (Text1.SelLength > 0)
Ing. Hermas Herrera Callejas

Pgina : 16 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

'Habilita/Inhabilita la opcin Cortar del men Edicin si Seleccion/No seleccion


'texto en el cuadro de texto Text1.
EdicinCortar.Enabled = (Text1.SelLength > 0)
'Habilita/Inhabilita la opcin Fuente del men Formato si Seleccion/No seleccion
'texto en el cuadro de texto Text1.
FormatoFuente.Enabled = (Text1.SelLength > 0)
End Sub

8.7 Creacin de un Programa que Visualiza Imgenes.- Crear un programa que permita
visualizar imgenes. Al ejecutar esta aplicacin, la interfaz de usuario debe presentar dos
opciones: Abrir archivo y Salir. La opcin Abrir archivo debe permitir la seleccin de un
archivo de imagen y la opcin Salir finalizar la ejecucin del programa. La interfaz de usuario
debe ser similar a la siguiente ilustracin:

Observar que en este formulario hay dos etiquetas: Label1 y Label2; un control
PictureBox y un control CommonDialog. Modificar las propiedades de estos controles:
Control
Form

Label

Label

PictureBox

Propiedad
Name
Caption
BorderStyle
BackColor
Name
AutoSize
BackStyle
BorderStyle
Caption
Font
ForeColor
Name
AutoSize
BackStyle
BorderStyle
Caption
Font
ForeColor
Name
BorderStyle
Visible

Valor
Form1
Imgenes
5-Sizable ToolWindow
&H80000001&
Label1
True
0-Transparent
0-None
Abrir imagen
Comic Sans MS
&H000000FF&
LabeI2
True
0-Transparent
0-None
Salir
Comic Sans MS
&H000000FF&
Picture1
0-None
False

Luego de disear la interfaz de usuario, escribir el cdigo de la aplicacin.


Asociar un procedimiento al control Label1. En el formulario, hacer doble clic sobre el
control Label1 En la ventana de cdigo, desplegar el cuadro de lista Procedimientos y
seleccionar el suceso MouseUp. Escribir el siguiente cdigo:
Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo ManipularErrorAbrir
Ing. Hermas Herrera Callejas

Pgina : 17 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

Picture1.Picture = LoadPicture()
'Limpia el control Picture Box
CommonDialog1.CancelError = True
CommonDialog1.DialogTitle = "Abrir imgenes"
CommonDialog1.Filter = "Imagenes (.gif)|*.gif|Imgenes (.jpg)|*.jpg|Imgenes (.bmp)|*.bmp|Todos los
archivos (*.*)|*.*"
CommonDialog1.FilterIndex = 3
CommonDialog1.ShowOpen
'Muestra el cuadro de dilogo Abrir
'Inserta la imgen elegida en el control picture box
Picture1.Picture = LoadPicture(CommonDialog1.FileName)
Picture1.Visible = True
'Hace visible el control PictureBox
Label1.ForeColor = &HFF&
'Asigna el color rojo al control Label1
Exit Sub
ManipularErrorAbrir:
If Err.Number = 32755 Then
Exit Sub
Else
MsgBox "Error desconocido al abrir el archivo"
End If
End Sub

Asociar un procedimiento al control LabeI2 accionado por el suceso MouseUp. Cuando


el usuario suelte el botn del mouse en el control Label2, la ejecucin del programa debe
finalizar.
Private Sub Label2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Unload Me
'Cierra el formulario
End
'Finaliza la ejecucin del programa
End Sub

Asociar un procedimiento al control Labell accionado por el suceso MouseMove.


Cuando el usuario mueva el puntero del mouse sobre el control Labell, el texto que muestra
este control debe cambiar de color.
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Al mover el puntero del mouse sobre el control label1 el color amarillo se asigna al control label1
Label1.ForeColor = &HFFFF&
'Color amarillo
End Sub

Asociar un procedimiento al control Label2 accionado por el suceso MouseMove.


Cuando el usuario mueva el puntero del mouse sobre el control Label2, el texto que muestra
este control debe cambiar de color.
Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Al mover el puntero del mouse sobre el control label2 el color amarillo se asigna al control label2
Label2.ForeColor = &HFFFF&
'Color amarillo
End Sub

Asociar un procedimiento al formulario accionado por el suceso MouseMove. Cuando el


usuario desplace el puntero del mouse sobre el formulario, el color del texto de los controles
Label debe cambiar a rojo.
1. Hacer doble clic en el formulario.
2. En la ventana de cdigo, desplegar el cuadro de lista Procedimientos y seleccionar el
suceso MouseMove. La ventana de cdigo abre el procedimiento Form_MouseMove.
3. Digitar el siguiente cdigo:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Al mover el puntero del mouse sobre el formulario, asigna el color rojo a los controles Label1 y Label2
Label1.ForeColor = &HFF&
Label2.ForeColor = &HFF&
End Sub
Ing. Hermas Herrera Callejas

Pgina : 18 de 19

Computacin para Ingeniera I y Laboratorio

Cap.8Visual BasicCuadros de Dilogo Comunes

Asociar un procedimiento al control Picture1 accionado por el suceso Resize. Cuando el


usuario modifique el tamao del control Picture1, el tamao del formulario debe cambiar en
funcin del tamao del control PictureBox.
1. Hacer doble clic en el control PictureBox.
2. En la ventana de cdigo, desplegar el cuadro de lista Procedimientos y seleccionar el
suceso Resize. La ventana de cdigo abre el procedimiento Picture1_Resize.
3. Digitar el siguiente cdigo:
Private Sub Picture1_Resize()
'Redimensiona el tamao del formulario en funcin del tamao del control PictureBox
Form1.Top = 0
Form1.Left = 0
Form1.Width = Picture1.Width + 360
Form1.Height = Picture1.Height + 960
End Sub

Guardar el proyecto con el nombre Imagen.Vbp y el formulario con el nombre


Imagen.Frm.
Presionar la tecla F5 para ejecutar el programa.
Desplazar el puntero del mouse sobre la opcin Abrir imagen (observar que Abrir
imagen adopta el color amarillo) y hacer clic. En el cuadro de dilogo Abrir, seleccionar una
imagen. Por ejemplo, seleccionar la imagen Imagen1 que se adjunta con las prcticas de
laboratorio. Cada vez que seleccione una nueva imagen el formulario cambiar de tamao.

Ing. Hermas Herrera Callejas

Pgina : 19 de 19