You are on page 1of 36

CAPTULO 5 C. Castillo P.

EL FORMULARIO
Un formulario es un objeto contenedor que sirve para

disear la interfaz de usuario. En el formulario se colocan los controles para que el usuario pueda interactuar con la

aplicacin de una manera fcil e intuitiva.

Los formularios tienen sus propias propiedades, eventos mtodos con los que se puede controlar su apariencia

y y

comportamiento, muchos de los cuales ya han sido utilizados en las aplicaciones de los captulos anteriores y que a

continuacin pasamos a describir. Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 1

Propiedad AutoRedraw BackColor BorderStyle Caption ControlBox

Especifica

si

Descripcin se activa

el

redibujado

automtico del formulario. Especifica el color de fondo del formulario. Especifica un estilo de borde para el formulario. Especifica el texto que se muestra de en la

barra de ttulo del formulario. Especifica si aparece un icono

men

desplegable en el ngulo superior izquierdo ForeColor Height Icon MaxButton MinButton Picture StartUpPosition Visible Width WindowState Nota Un twip es una unidad independiente de la pantalla del formulario. Especifica el color de primer plano utilizado para mostrar texto sobre el formulario. Especifica el alto del formulario. Se mide en twips. Especifica el icono que se muestra para un formulario. Especifica si el formulario tiene un botn Maximizar. Especifica si el formulario tiene un botn Minimizar. Especifica el archivo de imagen que se va ha mostrar como fondo para el formulario. Especifica la posicin del formulario la

primera vez que se ejecuta. Establece si el formulario es visible o est oculto. Especifica el ancho del formulario. Se mide en twips. Establece el estado del formulario (normal, minimizado o maximizado).

utilizada para asegurar que la colocacin y la proporcin de

los elementos de la pantalla de la aplicacin son los mismos en todos los sistemas de pantallas. Un twip es igual a 1/20 de un punto de impresora. Existen aproximadamente 1440 twips en una pulgada o 567 twips en un centmetro.

Los

eventos

los

que

responde

un

formulario

son

los

siguientes: Evento Activate Deactivate Load MouseDown QueryUnload Descripcin Ocurre cuando el formulario se convierte en ventana activa. Ocurre cuando el formulario deja de ser la ventana activa. Ocurre cuando el formulario se carga en la memoria. Ocurre cuando el usuario pulsa el botn de

derecho del ratn sobre el formulario. Ocurre antes de iniciarse el proceso descarga del formulario se (antes del Unload). Ocurre cuando

evento el

Resize Unload

muestra

primero

formulario o se cambian sus dimensiones. Ocurre cuando el formulario se descarga de la memoria.

Los mtodos que se pueden utilizar con un formulario son los siguientes: Mtodo Hide Descripcin Oculta un formulario.

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 3

PopupMenu Print Refresh Show

Presenta un men popup en la posicin actual del ratn. Imprime un valor sobre el formulario. Vuelve a pintar un formulario y actualiza todos los valores contenidos en l. Muestra un formulario y determina si es modal o carece de modo. Si el formulario a mostrar no est cargado Visual Basic lo carga automticamente.

Como

ejemplo

vamos

desarrollar

una

aplicacin

que

utilice dos formularios. Desde el primer formulario el usuario podr ir al segundo formulario y viceversa.

Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto. Seguidamente debe ubicar dos botones de comando en el formulario. Luego establezca las siguientes propiedades: Form1

Nombre Caption Command1 Nombre Caption Command2 Nombre Caption

Form1 Primer formulario

CmdIr &Ir

CmdSalir &Salir

Seguidamente procede a ingresar el cdigo que se muestra a continuacin: Private Sub CmdIr_Click() Form2.Show Form1.Hide End Sub Private Sub CmdSalir_Click() End End Sub Luego debe aadir un formulario adicional al proyecto. Para tal fin, seleccione el men Proyecto y elija la opcin Agregar formulario.

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 5

Del

cuadro

de

dilogo

que

se

presenta

elija

el

icono

Formulario y haga click en el botn Abrir, tal como se indica en la figura. En ese instante se aadir un nuevo formulario al proyecto. Luego, proceda a ubicar un botn de comandos en el formulario que acaba de aadir y establezca las siguientes

propiedades: Form2 Nombre Caption ControlBox Command2 Nombre Caption CmdVolver &Volver Form2 Segundo formulario False

En seguida proceda a ingresar el cdigo que se indica a continuacin: Private Sub CmdVolver_Click() Form1.Show Form2.Hide End Sub

ESTILOS DE FORMULARIO Visual Basic cuenta con seis diferentes estilos de

formulario, cuya descripcin es la siguiente: Valor Estilo 0 None 1 Fixed Single Descripcin No presenta ningn borde. Puede incluir un Men de control, una Slo Barra de y los ttulo un botn cambiar botones , un botn tamao y Maximizar mediante 2 Sizable Minimizar. de Maximizar

puede

Minimizar. (Predeterminado). Puede cambiar de tamao mediante cualquiera de los elementos opcionales de borde indicados para Fixed Single. Descripcin Puede incluir un Men de control y una Barra de ttulo, pero no los botones Maximizar ni Minimizar. No puede cambiar de tamao. Slo muestra el botn Cerrar y el

Valor Estilo 3 Fixed Dialog

Fixed ToolWindow

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 7

texto de la barra de ttulo aparece con un tamao de fuente reducido. 5 Sizable ToolWindow No puede cambiar su tamao. Slo muestra el botn Cerrar y el texto de la barra de ttulo aparece con un tamao de fuente reducido. Puede cambiar de tamao. Como ejemplo vamos a desarrollar una aplicacin que

permita representar los diferentes estilos de formulario de Visual Basic.

Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto y luego ubique los siguientes controles en el formulario: 1 cuadro de lista

2 botones de comando Luego debe establecer las propiedades que se indican a continuacin: Form1 Nombre Caption BorderStyle List1 Nombre List LstTipoForm 0-None 1-Fixed Single 2-Sizable 3-Fixed Dialog 4-Fixed ToolWindow 5-Sizable ToolWindow Command1 Nombre Caption Command2 Nombre CmdSalir Caption &Salir Seguidamente procede a ingresar el cdigo que se muestra a continuacin: Private Sub Form_Load() Load FrmNone Load FrmFixedSingle Load FrmSizable CmdMostrar &Mostrar FrmPrincipal Estilos de formulario 3-Fixed Dialog

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 9

Load FrmFixedDialog Load FrmFixedToolWindow Load FrmSizableToolWindow End Sub Private Sub CmdMostrar_Click() Dim OP As Integer OP = LstTipoForm.ListIndex Select Case OP Case 0 : FrmNone.Show vbModal Case 1 : FrmFixedSingle.Show vbModal Case 2 : FrmSizable.Show vbModal Case 3 : FrmFixedDialog.Show vbModal Case 4 : FrmFixedToolWindow.Show vbModal Case 5 : FrmSizableToolWindow.Show vbModal Case Else MsgBox Debe seleccionar estilo de formulario End Select End Sub Private Sub LstTipoForm_DblClick() Call CmdMostrar_Click End Sub Private Sub CmdSalir_Click() End

10

End Sub Seguidamente proceda a aadir los formularios para las diferentes opciones del cuadro de lista. Cambie los nombres de los formularios segn se indica: Formulario Form2 Form3 Form4 Form5 Form6 Form7 Nombre FrmNone FrmFixedSingle FrmSizable FrmFixedDialog FrmFixedToolWindow FrmSizableToolWindow

Luego debe activar el formulario FrmNone, ubicar un botn de comandos sobre el mismo y establecer las siguientes

propiedades: Form2 Nombre BorderStyle Caption Command1 Nombre Caption FrmNone 0-None None CmdVolver &Volver

Una vez establecidas las propiedades, proceda a ingresar el cdigo que se muestra a continuacin: Private Sub CmdVolver_Click() Unload Me End Sub Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 11

Para concluir con el diseo de la aplicacin, simplemente repita el procedimiento anterior para los dems tipos de

formularios. Como mediante habr el podido observar, podemos al mostrar de un formulario modal

mtodo

Show

hacerlo

forma

(vbModal) o no modal (opcin por defecto). Un formulario modal es aquel que necesita cerrarse antes de pasar el enfoque a otro formulario. Un formulario no modal no requiere cerrarse para pasar el enfoque a otro formulario.

PASANDO VALORES ENTRE FORMULARIOS Muchas veces se requieren pasar valores de un formulario a otro, esto se puede realizar mediante el uso mdulos estndar, los cuales son contenedores de procedimientos y declaraciones a los que tienen acceso otros mdulos de la aplicacin. Como ejemplo vamos a construir la siguiente aplicacin, la cual enva un mensaje de texto del primer formulario hacia el segundo formulario.

12

Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto y aada un formulario adicional, de tal forma que tenga los formularios Form1 y Form2. Seguidamente ubicar los siguientes controles: Form1 TxtMensaje1 CmdEnviar CmdSalir Form2 TxtMensaje2 CmdRecibir CmdVolver

Text1 Command1 Command2

Text1 Command1 Command2

A continuacin proceda a ingresar el cdigo que se indica para el primer formulario (Form1):

Private Sub CmdEnviar_Click() Mensaje = TxtMensaje1 Form1.Hide Form2.Show End Sub Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 13

Private Sub CmdSalir_Click() End End Sub Para el segundo formulario (Form2) proceda a ingresar el cdigo siguiente: Private Sub CmdRecibir_Click() TxtMensaje2 = Mensaje End Sub Private Sub CmdVolver_Click() Form2.Hide Form1.Show End Sub Seguidamente debe aadir un mdulo estndar al proyecto, para ello, seleccione el Men Proyecto y elija la opcin

Agregar mdulo, se debe presentar un cuadro de dilogo similar a la figura mostrada, en el cual debe dar click en el botn Abrir.

14

Seguidamente proceda a declarar la variable Mensaje como pblica en la seccin de declaraciones del mdulo que acaba de aadir:

Una

variable

pblica

(Public)

es

una

variable

que

se

declara a nivel de mdulo y se le puede acceder desde cualquier otro mdulo.

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 15

FORMULARIOS MDI Un formulario MDI (Interfaz de Documentos Mltiples) es una ventana que acta como fondo de una aplicacin y es el contenedor hijas). (ventana padre) de otros formularios (ventanas

En una aplicacin MDI pueden haber varias ventanas hijas, pero slo una ventana como padre debe por aplicacin. su Para que una

ventana

acte

hija

tener

propiedad

MDIChild

establecida a True. Como ejemplo vamos a desarrollar una aplicacin MDI que incluya tres ventanas hijas. Para tal fin proceda a crear un nuevo proyecto y seguidamente agregar dos formularios (simples) al mismo.

16

No

olvide

establecer

la

propiedad

MDIChild

de

los

formularios Form1, Form2 y Form3 a True. Luego, debemos agregar el formulario MDI, para ello

acceder al Men Proyecto y elegir la opcin Agregar formulario MDI, del cuadro de dilogo que se presenta hacer click en el botn Abrir.

A continuacin dar doble click sobre el formulario MDI e ingresar el siguiente cdigo: Private Sub MDIForm_Load() Form1.Show Form2.Show

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 17

Form3.Show End Sub Ahora slo tiene que indicarle a Visual Basic que el

formulario de arranque (inicial) ser el formulario MDI. Para ello vaya al Men Proyecto y elija la opcin Propiedades de Proyecto. En el cuadro combinado Objeto inicial seleccionar MDIForm1, tal como se indica en la figura:

Eso

es

todo,

ahora

simplemente

tiene

que

ejecutar

su

aplicacin. Cabe destacar que en los formularios MDI por lo general no se pueden incluir controles, debido a ello se suele trabajar

18

con mens de opciones o barras de herramientas para indicar alguna accin a realizar.

CREACIN DE MENS Un men es un conjunto de opciones que se presentan al usuario, entre las cuales debe elegir una de ellas. Dependiendo de la decisin se realizarn una serie de acciones.

Para disear un men cualquiera dar click derecho sobre el formulario y del men emergente que se presenta elegir la

opcin Editor de mens.

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 19

En seguida se ha de presentar el Editor de mens de Visual Basic.

Para

crear

un

men,

tener

en

cuenta

los

siguiente

procedimientos: Ingresar el Editor de mens. Introducir el ttulo del men en el cuadro de texto Caption, el cual aparecer en la barra de mens.

20

Introducir un nombre para el men en el cuadro de texto Name, el cual ser utilizado en el cdigo para referirse al men. Introducir los elementos que componen el men, para ello

escriba en los cuadros de texto Caption y Name el ttulo y el nombre del correspondiente elemento del men.

Para diferenciar un elemento del men del propio men, hay que sangrar el y ). ttulo click del en elemento, el botn para flecha tal fin, la

seleccinelo derecha (

haga

hacia

Un elemento de men puede ser una orden (si el elemento siguiente aparece sangrado al mismo nivel) o un submen (si el elemento siguiente aparece sangrado un nivel ms).

Utilizando separadores puede agrupar las rdenes en funcin de lo que realizan. Para insertar un separador, escriba un nico guin (-) en el cuadro Caption del Editor de mens. Tiene que especificar tambin un nombre para el separador.

Para aadir un acelerador (una tecla o combinacin de teclas que permiten activar un men), utilizar la propiedad

Shortcut.

La propiedad Checked es til para indicar si una orden est activa o no lo est. Cuando se especifica esta propiedad aparece una marca (3) a la izquierda del elemento de men.

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 21

La propiedad Enabled es til para desactivar una orden en un momento en el cual no tiene sentido que est activa. La propiedad Visible es til cuando durante la ejecucin se desea ocultar un elemento de men. Cerrar el Editor de mens, para ello una vez que haya

finalizado su diseo pulse el botn Aceptar. Como ejercicio intente construir el men mostrado en la figura anterior. Caption Name MnuArchivo MnuArchivoArticulo MnuArchivoCliente MnuArchivoVendedor MnuArchivoLinea MnuArchivoSalir MnuProceso MnuProcesoPedido MnuProcesoFacturacion MnuReporte MnuReporteRegVentas ShortCut Ninguno Ninguno Ninguno Ninguno Ninguno Ctrl + X Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno ingrese el

&Archivo . . . &Artculo . . . &Cliente . . . &Vendedor . . . . . . &Salir &Proceso . . . &Pedido . . . &Facturacin &Reporte . . . &Registro de ventas . . . Catlogo de &artculos . . . MnuReporteLinea MnuReporteClienteMes . . . &Cliente del mes MnuReporteVendMes . . . &Vendedor del mes MnuAyuda Ay&uda MnuAyudaContenido . . . &Contenido MnuAyudaIndice . . . &Indice MnuAyudaBusqueda . . . &Bsqueda . . . MnuAyudaLinea MnuAyudaAbout . . . &Acerca de Para probar el men que acaba de crear, siguiente cdigo:

22

Private Sub MnuArchivoArticulo_Click() MsgBox Seleccion la opcin Artculo End Sub Private Sub MnuArchivoCliente_Click() MsgBox Seleccion la opcin Cliente End Sub Private Sub MnuArchivoVendedor_Click() MsgBox Seleccion la opcin Vendedor End Sub Private Sub MnuArchivoSalir_Click() Unload Me End Sub Private Sub MDIForm_Unload(Cancel As Integer) Dim RESP As Integer RESP = MsgBox(Desea terminar la aplicacin?, _ vbQuestion + vbYesNo, Pregunta) If RESP = vbYes Then End Else: Cancel = True End If End Sub

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 23

Luego

al

ejecutar

su

aplicacin y

seleccionar el

men

Archivo, opcin Artculo, el resultado ser similar a la figura mostrada:

Hasta ahora hemos programado la salida de una aplicacin, asociando el cdigo al botn Salir. Sin embargo, cuando el usuario hace click en el botn Cerrar de la barra de ttulo o en la opcin Salir del Men de control del formulario, el cdigo escrito para el botn Salir es ignorado. Para remediar esta situacin, en el ejemplo anterior

cuando el usuario pulsa el botn Salir, se invoca al evento Unload. La palabra al reservada Me proporciona una forma desde donde se est ejecutando de el

referirse cdigo.

formulario

Recordar desencadena

que

el el

evento usuario

Unload intenta

del cerrar

formulario el

se

cuando

formulario

mediante cualquiera de las formas descritas anteriormente.

24

Para utilice el

determinar parmetro

si

ocurre Si

la

descarga es

del False

formulario ocurre la

Cancel.

Cancel

descarga, si Cancel es True impide que el formulario se quite. CREACIN DE UNA BARRA DE HERRAMIENTAS Una opciones barra ms de herramientas de un contiene men, de botones tal manera con que las el

utilizadas

usuario haciendo click en dicho control activara la opcin indicada de una manera ms rpida. Para crear una barra de herramientas debemos utilizar dos controles que no estn en la lista de controles estndar, por tanto debemos agregar dichos controles que se encuentran en el componente Microsoft Windows Common Controls 6.0, tal como se indica a continuacin:

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 25

Como ejemplo, vamos a crear la barra de herramientas de la figura mostrada:

26

Para

ello,

ubicar

un

control

ImageList

sobre

el

formulario, para establecer sus propiedades dar click derecho sobre el control y elija la opcin Propiedades.

Se ha de presentar un cuadro de dilogo similar a la figura mostrada:

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 27

Activar

la

ficha

Imgenes

y pulsar

el botn

Insertar

imagen para seleccionar las imgenes que se incluirn en el control ImageList. Para el a ejemplo, cada uno debe de incluir los ocho de imgenes la barra que de

corresponden herramientas.

botones

Concluido el proceso anterior, proceda a ubicar un control Toolbar sobre el formulario. Luego hacer click derecho sobre dicho control y del men emergente que se presenta seleccionar la opcin Propiedades. Del cuadro de dilogo que se presenta en la ficha General establecer las siguientes propiedades:

28

Luego,

en

la

ficha

Botones

pulse

el

botn

Insertar

botn. En el cuadro de texto Image se debe indicar un nmero que corresponde al orden de imagen a mostrar.

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 29

El lector debe continuar con este proceso hasta completar los botones restantes, segn: Index 1 2 3 4 5 6 7 8 ToolTipText Artculo Cliente Vendedor Pedido Facturacin Registro de ventas Catlogo de artculos Ayuda Image 1 2 3 4 5 6 7 8

Como el cdigo a ejecutar tiene que ser el mismo cuando el usuario elija una opcin del men o de un click sobre un botn de la barra de herramientas se pueden programar procedimientos de usuario que realicen dichas tareas, luego se deben invocar a estos procedimientos tanto para las opciones del men como para la barra de herramientas. Sin embargo, para el ejemplo el cdigo es muy sencillo, ya que slo muestra un mensaje con la opcin seleccionada (esto por razones de simplicidad). Para probar la funcionalidad de la barra de herramientas que acaba de crear ingrese el siguiente cdigo:
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1: MsgBox Seleccion la opcin Artculo Case 2: MsgBox Seleccion la opcin Cliente

30

Case 3: MsgBox Seleccion la opcin Vendedor Case 4: MsgBox Seleccion la opcin Pedido Case 5: MsgBox Seleccion la opcin Facturacin Case 6: MsgBox Seleccion la opcin Registro de ventas Case 7: MsgBox Seleccion opcin Catlogo de artculos Case 8: MsgBox Seleccion la opcin Ayuda End Select End Sub

El

evento ButtonClick se dispara cuando el usuario hace

click sobre un botn de la barra de herramientas. La propiedad Index permite identificar el nmero de botn pulsado.

CREACIN DE UNA BARRA DE ESTADO Una barra de estado es un marco que se ubica en la parte inferior del formulario y puede contener varios paneles que informan al usuario acerca del estado de la aplicacin. Para crear una barra de estado utilizar el control StatusBar, el cual forma de los controles personalizados que se encuentran en el componente Microsoft Windows Common Controls 6.0. Como ejemplo vamos a crear una barra de estado similar a la de la figura mostrada:

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 31

Para ello ubicar un control StatusBar sobre el formulario, dar click derecho sobre el mismo y en la ficha Paneles incluir una imagen para la hora del sistema.

32

El resto de propiedades se establecern mediante cdigo al momento de la carga del formulario. Private Sub MDIForm_Load() Dim I As Integer For I = 1 To 2 StatusBar1.Panels.Add Next With StatusBar1.Panels .Item(1).Style = sbrTime .Item(2).Style = sbrCaps .Item(3).Style = sbrIns End With End Sub La propiedad Style permite mostrar el estado de las ' Se agregan 2 paneles ms

teclas, la hora y la fecha del sistema con un mnimo de cdigo. Constante sbrText sbrCaps sbrNum sbrIns sbrScrl sbrTime sbrDate Valor 0 1 2 3 4 5 6 Descripcin (Predeterminado). Texto o mapa de bits. Tecla BLOQ MAYS. Tecla BLOQ NM. Tecla INS. Tecla BLOQ DESPL. Muestra la hora actual con el formato del sistema. Muestra la fecha actual con el formato

del sistema. CREACIN DE UN MEN CONTEXTUAL

Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 33

Un men contextual es un men emergente (flotante) que se muestra sobre un formulario, independiente de la barra de

mens. Para mostrar un men contextual el usuario debe pulsar el botn derecho del ratn sobre el formulario. A menudo querr usar un men contextual para tener acceso a opciones que no se encuentran disponibles en la barra de mens. Para crear un men que no se presente en la barra de mens, haga invisible un elemento de men de nivel superior en tiempo de diseo (asegrese de que la casilla de verificacin Visible del Editor de mens no est activada). Cuando Visual Basic presenta un men emergente, pasa por alto la propiedad Visible del men de nivel superior especificado.

34

Para crear el men contextual de la figura, debe ingresar al Editor de mens y aadir lo siguiente: Caption &Herramientas . . . Calculadora . . . Calendario . . . Solitario Name MnuTools MnuToolsCalc MnuToolsCalen MnuToolsSol Visible 3 3 3

Seguidamente proceda a ingresar el cdigo que se indica a continuacin: Private Sub MDIForm_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then PopupMenu MnuTools End If End Sub Private Sub MnuToolsCalc_Click() Dim I I = Shell(C:\WINDOWS\CALC.EXE, 1) End Sub Private Sub MnuToolsCalen_Click() FrmCalendario.Show End Sub Private Sub MnuToolsSol_Click() Elaborado por Carlos Castillo Peralta Cap. 5 Pg. 35

Dim I I = Shell(C:\WINDOWS\SOL.EXE, 1) End Sub En el ejemplo anterior se asume que existe otro formulario de nombre FrmCalendario. Este puede ser construido usando el control MonthView. La funcin Shell ejecuta un programa ejecutable y devuelve un tipo Variant (Double) que representa la identificacin de la tarea del programa si se ha ejecutado con xito, en caso

contrario devuelve cero.

36

You might also like