Por: Roberto Alvarado
Capitulo 5
En este nuevo capítulo vamos a detallar más sobre los controles utilizados en el capítulo anterior.
Control MenuBar
Como pudimos ver en el anterior capítulo, este control nos permite crear menús y / o barras de herramientas o Toolbars como son más conocidas. Podemos utilizar o crear menús de textos, menús de botones (barras de herramientas), o la combinación de ambos como en el ejemplo de la entrega anterior.
Dim mnuTablas As MenuBarMenu
Dim mnuAccion As MenuBarMenu
Observamos se debe declarar dos variables de tipo MenuBarMenu, una para cada opción del menú a crear.
'Configuro el MenuBar
Set mnuTablas = MenuBar1.Controls.AddMenu("Tablas", mnuTablas)
mnuTablas.Items.Add 1, "mnuTabTareas", "Tareas"
mnuTablas.Items.Add 2, "mnuTabClientes", "Clientes"
mnuTablas.Items.Add 3, "mnuTabApp", "Aplicaciones"
Set mnuAccion = MenuBar1.Controls.AddMenu("Accion", mnuAccion)
mnuAccion.Items.Add 1, "mnuNuevo", "Nuevo"
mnuAccion.Items.Add 2, "mnuEditar", "Editar"
mnuAccion.Items.Add 3, "mnuBorrar", "Borrar"
mnuAccion.Items.Add 4, "mnuSepara1", "------------"
mnuAccion.Items.Add 5, "mnuCancelar", "Cancelar"
mnuAccion.Items.Add 6, "mnuGuardar", "Guardar"
mnuAccion.Items.Add 7, "mnuSepara2", "------------"
mnuAccion.Items.Add 8, "mnuCerrar", "Cerrar"
mnuAccion.Items("mnuSepara1").Enabled = False
mnuAccion.Items("mnuSepara2").Enabled = False
Luego configuramos cada uno de estos objetos Menú. En cada una de las instrucciones Set estamos creando una instancia de los objetos declarados antes, e inmediatamente les asignamos el texto o Caption que va a aparecer en la pantalla, como primer parámetro del método Addmenu de la colección Controls del control MenuBar, el segundo parámetro es la llave o Key del objeto, la cual nos va a permitir llamarlo o identificarlo en forma correcta.
Para el caso de la colección Ítems, o sea los submenús de cada uno de los objetos menú, llamamos al método Add para crear un Ítem, y los parámetros son, el índice del elemento dentro de la colección, el segundo es la llave o Key (para nosotros es nuestro identificador), el tercer parámetro es el Caption o mensaje que va a aparecer en la pantalla, existe un cuarto parámetro que es el estilo, pero hasta el momento no he podido ubicar los valores que deben ir y sus correspondientes efectos sobre el menú.
Como podemos ver en el código anterior he agregado un par de opciones para simular unos separadores dentro del menú de Acción.
En las dos ultimas líneas del código anterior, desactivamos las opciones mnuSepara1 y mnuSepara2 para simular una línea de separación de menús. gris.
Para capturar el evento de clic sobre alguno de las opciones del menú, utilizamos el evento:
Private Sub MenuBar1_MenuClick(ByVal Item As MenuBarLib.Item)
Select Case Item.Key
Case "mnuTabTareas"
'TAREAS
Case "mnuTabClientes"
'CLIENTES
Case "mnuTabApp"
'APLICACIONES
Case "mnuNuevo"
'NUEVO
Case "mnuEditar"
'EDITAR
Case "mnuborrar"
'BORRAR
Case "mnuCancelar"
'CANCELAR
Case "mnuGuardar"
'GUARDAR, GRABAR O SALVAR
Case "Cerrar"
'CERRAR LA OPCION ACTUAL
End Select
End Sub
A medida que avancemos iremos colocando el código necesario para cada una de las opciones del menú.
Ahora con botones
Ahora vamos a explicar los menús como barras de herramientas o Toolbars.
Podemos utilizar botones utilizando los iconos predefinidos del sistema, estos íconos son los que aparecen en la gráfica siguiente:

Primero definimos los objetos MenuBarButton que representa cada botón de la barra que vallamos a crear.
'Configuro los botones
Dim btnSepara As MenuBarButton
Dim btnInicio As MenuBarButton
Dim btnPrevio As MenuBarButton
Dim btnSigte As MenuBarButton
Dim btnFin As MenuBarButton
Luego configuramos cada uno de los botones. En nuestro caso, el primer botón es un separador para diferenciar el menú de texto del de los botones gráficos.
'Boton Separador
Set btnSepara = MenuBar1.Controls.AddButton
btnSepara.Width = 80
btnSepara.Style = mbrSeparator
'Boton Inicio
Set btnInicio = MenuBar1.Controls.AddButton("btnInicio")
btnInicio.Image = 1
btnInicio.Style = mbrDefault
'Boton Previo
Set btnPrevio = MenuBar1.Controls.AddButton("btnPrevio")
btnPrevio.Image = 2
btnPrevio.Style = mbrDefault
'Boton Sgte
Set btnSigte = MenuBar1.Controls.AddButton("btnSigte")
btnSigte.Image = 3
btnSigte.Style = mbrDefault
'Boton Ultimo
Set btnFin = MenuBar1.Controls.AddButton("btnFin")
btnFin.Image = 4
btnFin.Style = mbrDefault
Para nuestro caso las imágenes que estamos asociando a cada botón las colocamos en un control ImageList, el cual configuramos en esta parte del código:
' Configuro el tamaño de las imagenes
ImageList1.ImageHeight = 16
ImageList1.ImageWidth = 16
' Agrego las imagenes
ImageList1.Add App.Path & "Primero.bmp"
ImageList1.Add App.Path & "Atras.bmp"
ImageList1.Add App.Path & "Adelante.bmp"
ImageList1.Add App.Path & "Ultimo.bmp"
'Le decimos al MenuBar que use el ImageList
MenuBar1.ImageList = ImageList1.hImageList
Por eso asignamos a los botones las imagines 1, 2, 3 y 4 respectivamente.
Si vamos a utilizar los iconos del sistema no necesitamos crear un imagelist, eVB lo crea automáticamente con solo decirle el numero de los íconos del sistema en la propiedad Image, teniendo en cuenta la imagen de arriba de los íconos del sistema.
Para capturar los eventos click que se ejecuten sobre cada botón entonces usamos el siguiente evento:
Private Sub MenuBar1_ButtonClick(ByVal Button As MenuBarLib.MenuBarButton)
Select Case Button.Key
Case "btnInicio"
Case "btnPrevio"
Case "btnSigte"
Case "btnFin"
End Select
End Sub
Para finalizar con el control MenuBar, eliminamos de memoria los objetos utilizados
' Luego que los botones y los menus son agregados
' al MenuBar, los Objectos se liberan
Set mnuTablas = Nothing
Set mnuAccion = Nothing
Set btnSepara = Nothing
Set btnInicio = Nothing
Set btnSigte = Nothing
Set btnPrevio = Nothing
Set btnFin = Nothing

No hay comentarios.:
Publicar un comentario