arroba más más - Programación e Internet  arroba más más - Programación e Internet
Estás en: Inicio > Cursos > Entornos de desarrollo > El entorno Delphi > Curso básico de Delphi > - El control MainMenu
 
CAPÍTULOS

SECCIONES

SITIOS RECOMENDADOS

OTROS SITIOS DE LA AUTORA

En línea desde el 7 de noviembre de 2000

5I. El control Main Menu

Todos hemos usado menús en los programas: son las barras de opciones que suelen aparecer debajo de la barra de título de los programas, justo encima del área de trabajo del form. En Delphi podremos encontrarlo bajo el icono El control MainMenu de Delphi - Paleta estándar, en la pestaña Standard de la paleta de componentes. Con él, podremos insertar un componente Main Menu en el form.

La propiedad principal de este componente es Items, una matriz de objetos TMenuItem, cada uno de los cuales representa una opción del menú. La propiedad Items cuenta a su vez con una propiedad Count, mediante la cual podremos saber el número de opciones que tiene el menú. Cada uno de los elementos de la matriz Items tiene a su vez una propiedad Count, que nos servirá para saber el número de opciones existentes en cada lista pues, como sabemos, dentro de una opción podemos tener más subopciones y así sucesivamente.

Para facilitarnos la edición de un menú, Delphi dispone del Diseñador de menús. Podremos acceder a él haciendo doble click sobre el componente, o bien pulsando sobre la propiedad Items. Aparecerá una ventana en la que podremos ir introduciendo los títulos de las opciones, simplemente tecleándolas, y componiendo la estructura del menú desplazándonos, básicamente, mediante las teclas del cursor.

Edición de un Menú

Veamos un ejemplo de creación del menú. Para ello, partimos de un menú vacío recién insertado en el form. Introducimos la cadena &Bloque uno, que se irá mostrando en el inspector de objetos junto a la propiedad Caption, y pulsamos la tecla RETURN. Con esto ya tenemos la primera opción, cuya primera letra, la 'B' está subrayada, denotando así que además se trata de una tecla de acceso rápido.

A la derecha de esta opción y en la misma barra, aparecerá un borde punteado, que nos indicará la posición en la que se introducirá la siguiente opción principal, mientras que justo debajo de la opción que acabamos de crear también aparece un borde punteado en vídeo inverso indicándonos que podemos teclear la primera opción del menú Bloque uno. Si tras varias opciones queremos mostrar una separada del resto por una línea, tan sólo habrá que introducir un guión y pulsar <RETURN>. Aparecerá así en la ventana una línea horizontal separando las anteriores opciones de la siguiente.

Elementos del menú

Cada una de las opciones que hemos insertado en el menú anterior representa a un objeto del tipo TMenuItem. Este tipo cuenta con las propiedades necesarias para, además de conservar el título, activar o desactivar la opción, mostrarla como marcada o desmarcada, asociar teclas de acceso rápido, etc. En la siguiente tabla enumeramos algunas de sus propiedades.

PropiedadTipoComentario
BreakTMenuBreakTipo de división en el menú
CaptionStringTítulo de la opción
CheckedBooleanIndican si la opción está marcada o no
CountIntegerNúmero de opciones en este menú
EnabledBooleanIndica si la opción está activa
GroupIndexByteFacilita la unión de múltiples menús
ItemsTMenuItem[]Matriz con las opciones
RadioItemBooleanPermite crear grupos de opciones exclusivas
ShortCutTShortCutTecla de acceso rapido

Teclas de acceso rápido

Para crear teclas de acceso rápido a cada una de las opciones, desplegaremos la lista de posibilidades correspondiente a la propiedad ShortCut, en el inspector de objetos, y seleccionaremos la combinación de teclas que queramos, que aparecerá a la derecha de la opción.

Opciones con más opciones

Aunque una opción puede dar paso a una cierta acción en el programa, también puede abrir una nueva lista de opciones. La finalidad de la propiedad Items con la que cuenta cada objeto TMenuItem es precisamente esa, contener las opciones correspondientes a una cierta opción. Puesto que las opciones de ese nuevo menú también son objetos TMenuItem, cualquiera de ellas puede dar paso a otro menú, proceso que se puede repetir nivel tras nivel.

Para crear estas nuevas opciones pulsaremos sobre la opción que queramos que tenga las otras opciones las combinación de teclas <Control> + <Cursor derecho>. Aparecerá una nueva ventana, en la que podremos añadir las nuevas opciones.

Menús multicolumna

En caso de que la lista cuente con un gran número de opciones, resultando demasiado larga, podemos dividirla en dos o más columnas, mediante la propiedad Break. Esta propiedad puede tomar los valores que se muestran en la siguiente tabla.

ConstanteTipo de división
mbNoneNinguna división. Es el valor por defecto
mbBreakDivisión separada por un espacio
mbBarBreakDivisión separada por una línea vertical

Insertar y eliminar opciones en tiempo de diseño

La disposición de las opciones en un menú no es algo estático. Así, si en un momento nos interesa, podemos insertar una nueva opción entre otras ya existentes, eliminar alguna e incluso cambiar el orden de las ya existentes.

Para insertar una nueva opción seleccionaremos aquella que queramos desplazar hacia abajo o hacia la derecha y a continuación pulsaremos la tecla <Insert>. Podremos ver cómo se abre un espacio vacío, en el cual introduciremos la nueva opción.

Si lo que queremos es eliminar una opción de las ya existentes, lo único que hemos de hacer es seleccionarla y pulsar la tecla <Supr>. En caso de que la opción que borremos tenga otras en un nivel inferior, éstas también serán borradas.

Por último, también podemos alterar el orden de las opciones, tanto en la barra principal como en una lista de submenú. El método es muy simple, utilizando el cursor del ratón y el botón izquierdo para arrastrar y soltar la opción en su nueva posición.

El menú emergente del Diseñador de Menús

El Diseñador de menús cuenta con un menú emergente, al que podemos acceder mediante la pulsación del botón derecho del ratón. En él encontraremos algunas opciones que ya conocemos, como la de insertar o borrar una opción e insertar un nuevo menú. La opción Select menu nos permite pasar a editar otro que exista en el form, sin necesidad de salir del Diseñador de menús y volver a entrar. La opción Save as template nos permite salvar el menú que estamos diseñando como si fuese una plantilla, de tal forma que, posteriormente, podamos insertarlo en cualquier otro mediante la opción Insert from template. En último lugar encontramos la opción Insert from resource, que nos permite importar un menú que haya sido diseñado con cualquier otra herramienta de edición de recursos (siempre que se haya salvado en el formato habitual de los archivos de recursos de Windows).

Finalizar la edición

Cuando hayamos terminado el diseño de nuestro menú, tendremos que cerrar el Diseñador de menús para volver a la edición del form. Al hacerlo nos encontramos de nuevo con el componente MainMenu y sus propiedades, así como el menú que hemos diseñado situado en la parte superior del form. Si queremos acceder a las propiedades de cualquiera de los opciones existentes en el menú tenemos dos opciones: abrir de nuevo el Diseñador de menús, realizando un doble clic sobre el componente, o bien abrir la lista de componentes del Inspector de objetos, seleccionando el objeto TMenuItem correspondiente a la opción que queremos manipular.

Autor: Lola Cárdenas Luque
Última actualización: 24 de junio de 2001
- El control TImageList | - El control PopUp Menu
Copyright © 2000 - 2005, Lola Cárdenas Luque - Todos los derechos reservados