Espacio para tratar temas de programacion para dispositivos moviles, Pocket PC, Compact Framework, Embbeded Visual Basic, Visual Basic.NET , C# (C Sharp)
En este nuevo capítulo vamos a detallar más sobre los controles utilizados en el capítulo anterior.
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 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
Me parece muy importante hablar de este control, particularmente en el desarrollo de aplicaciones para Windows CE, principalmente por la característica de que no se pueden descargar los forms (formas) de memoria en Windows CE.
El control Frame es intrínsico en eVB, eso quiere decir que viene dentro de los archivos del runtime de eVB, y no es necesario ir a la opción de referencias y referenciarlo, o ir a la opción de Componentes y escogerlo de allá.
El control Frame es un contenedor de controles, esto quiere decir que este control puede contener todos o casi todos los controles que maneja eVB dentro de él.
Particularmente yo, utilizo los frames para simular diferentes ventanas de la aplicación, solamente los pongo invisibles y los muestro cuando son necesarios y los muevo a las posiciones de la pantalla correspondiente. Esto lo veremos a medida que desarrollemos la aplicación y lo entenderán mejor.
Las propiedades que más utilizo de los frames son: Visible, Top, Left.
Con Visible muestro u oculto el frame de la pantalla
Con Top coloco la posición superior del frame en donde la necesito
Con Left coloco la posición izquierda del frame donde la necesito.
Bien, en este Capitulo explicamos el control MenuBar para crear menús y barras de herramientas o botones gráficos, además se explica como podemos utilizar el control ImageList y como asignarle imágenes.
Aprendimos como asignarle un control ImageList a un control MenuBar, para poder usar las imágenes con botones en una barra de herramientas.
Además que podemos usar los iconos del sistema para utilizarlos en un MenuBar.
Que los frames van a ser nuestros mejores aliados para el desarrollo de aplicaciones en Pocket PC y Windows CE para simular diferentes ventanas o pantallas (como quieran decirles J ).
No hay comentarios.:
Publicar un comentario