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