Discutiendo los formularios nuevamente
Además de los principios de diseño de formularios, también debe considerar dónde comienza y termina su aplicación. Existen algunas técnicas para decidir cómo se verá su aplicación cuando se inicie. También es importante estar familiarizado con algunos de los procesos que ocurren cuando se desinstala una aplicación.
Establecer formulario de inicio
De forma predeterminada, el primer formulario de la aplicación se designa como formulario de inicio. Este formulario se muestra cuando la aplicación comienza a ejecutarse (por lo que el primer código que se ejecuta es el código en el evento Form_Initialize del formulario). Si desea mostrar otro formulario cuando se inicia la aplicación, debe cambiar el formulario de inicio.
Para cambiar el formulario de inicio, siga estos pasos:
1. En el menú Proyecto, seleccione Propiedades del proyecto.
2. Seleccione "General".
3. En el cuadro de lista "Objeto de inicio", seleccione el formulario que será el nuevo formulario de inicio.
4. Seleccione Aceptar.
Empezar sin formulario de inicio
A veces es posible que desee iniciar la aplicación sin cargar ningún formulario. Por ejemplo, es posible que desee ejecutar código que cargue un archivo de datos y luego decidir cuál de varios formularios diferentes mostrar en función del contenido del archivo de datos. Para hacer esto, cree un subproceso llamado Main en el módulo estándar, como se muestra en el siguiente ejemplo.
Subprincipal()
DimintStatusAsInteger
'Llame a un procedimiento de función para verificar el estado del usuario.
intStatus=ObtenerEstadoUsuario
'Mostrar un formulario de inicio basado en el estado.
IfintStatus=1Entonces
frmMain.Show
Demás
frmPassWord.Show
Fin si
Este procedimiento debe ser un subprocedimiento y no puede estar dentro de un módulo de formulario. Para configurar el proceso SubMain como objeto de inicio, seleccione "Propiedades del proyecto" en el menú "Proyecto", luego seleccione "General" y luego seleccione "SubMain" en el cuadro "Objeto de inicio".
Mostrar visualización rápida al inicio
Si hay un proceso de ejecución largo al inicio, como cargar una gran cantidad de datos de una base de datos o cargar algunos mapas de bits grandes, es posible que desee mostrar una visualización rápida al inicio. Una visualización rápida es un formulario que normalmente muestra contenido como el nombre de la aplicación, información de derechos de autor y un mapa de bits simple. La pantalla que aparece al iniciar Visual Basic es una visualización rápida.
Para mostrar una visualización rápida, debe utilizar el proceso SubMain como objeto de inicio y utilizar el método Show para mostrar el formulario:
PRIvadoSubPrincipal()
'Mostrar visualización rápida.
frmSplash.Mostrar
'Agregue el proceso de inicio aquí.
...
'Muestra el formulario principal y descarga la visualización rápida.
frmMain.Show
DescargarfrmSplash
FinSub
Una visualización rápida puede atraer la atención del usuario cuando se está ejecutando alguna rutina de inicio, dando la ilusión de que la aplicación se está cargando rápidamente. Cuando se completan estas rutinas de inicio, el primer formulario se puede cargar y mostrar y descargar rápidamente.
Para diseños de visualización rápida, manténgalo lo más simple posible. Si utiliza una gran cantidad de mapas de bits o una gran cantidad de controles, la pantalla rápida se cargará lentamente.
Finalizar solicitud
Las aplicaciones controladas por eventos dejan de ejecutarse cuando se cierran todos los formularios y no se ejecuta ningún código. Si todavía hay formularios ocultos cuando se cierra el último formulario visible, la aplicación parece haber finalizado (porque no hay formularios visibles), pero en realidad la aplicación continúa ejecutándose hasta que se cierran todos los formularios ocultos. Esto ocurre porque cualquier acceso a las propiedades o controles de un formulario descargado hará que ese formulario se cargue de forma implícita y silenciosa.
La mejor forma de evitar este tipo de problemas al cerrar una aplicación es asegurarse de que todos los formularios estén descargados. Si hay más de un formulario, puede utilizar la colección Formularios y la declaración Descargar. Por ejemplo, se puede utilizar un botón de comando llamado cmdQuit en el formulario principal para salir del programa. Si la aplicación tiene un solo formulario, el procedimiento del evento Click puede ser simplemente:
PrivadoSubcmdQuit_Click()
Descargarme
FinSub
Si su aplicación utiliza varios formularios, puede descargarlos colocando código en el procedimiento de evento de descarga del formulario principal. Puede utilizar la colección Formularios para asegurarse de que se encuentren y cierren todos los formularios. El siguiente código utiliza la colección de formularios para descargar todos los formularios:
PrivateSubForm_Unload(CancelarAsInteger)
dimiasinteger
'Recorra la colección de formularios y descargue cada formulario.
Fori=Formas.Count-1to0Step-1
Descargar formularios (i)
Próximo
FinSub
Hay algunas situaciones en las que es necesario finalizar la aplicación independientemente del estado de los formularios u objetos existentes. Para ello, Visual Basic proporciona la instrucción End.
La declaración End hace que la aplicación finalice inmediatamente: el código después de la declaración End no se ejecutará y no se producirán más eventos. En particular, Visual Basic no ejecutará ninguno de los procedimientos de evento QueryUnload, Unload o Terminate del formulario. Cada referencia al objeto se publicará, pero si define sus propias clases, Visual Basic no ejecutará el evento Terminar de los objetos creados por estas clases.
Además de la instrucción End, la instrucción Stop puede pausar una aplicación. Sin embargo, la instrucción Stop sólo se puede utilizar durante la depuración porque no libera la referencia al objeto.
Para obtener más información sobre la instrucción Stop, consulte "Uso del modo de interrupción" en el Capítulo 13, "Depuración de código y manejo de errores" y "Instrucción Stop" en la Referencia del lenguaje. Para obtener información sobre colecciones de formularios o publicar referencias de objetos, consulte el Capítulo 9, "Programación con objetos".
Usar menús en aplicaciones
Muchas aplicaciones simples constan sólo de un formulario y unos pocos controles, pero la funcionalidad de una aplicación de Visual Basic se puede mejorar agregando menús. Esta sección explica cómo crear y utilizar menús en su aplicación.
Crear menús con el editor de menús
Utilice el Editor de menús para crear nuevos menús y barras de menús, agregar nuevos comandos a menús existentes, reemplazar comandos de menús existentes con sus propios comandos y modificar y eliminar menús y barras de menús existentes.
Para mostrar el editor de menú:
En el menú Herramientas, elija Editor de menús.
-o-
Haga clic en el botón Editor de menú en la barra de herramientas. Esto abrirá el editor de menú, como se muestra en la Figura 6.7.
Aunque la mayoría de las propiedades de control de menú se pueden configurar con el Editor de menús, todas las propiedades del menú también están disponibles en la ventana Propiedades. Las dos propiedades más importantes del control de menú son:
Nombre: este es el nombre utilizado para referirse al control del menú en el código.
Título: este es el texto que aparece en el control.
Otras propiedades del editor de menús, incluidas Index, Checked y NegotiatePosition, se describen más adelante en este capítulo.
Usando el cuadro de lista en el editor de menú
El cuadro Lista de controles de menú (ubicado en la parte inferior del Editor de menús) enumera todos los controles de menú para el formulario actual. Cuando escribe un elemento de menú en el cuadro de texto del título, el elemento también aparece en el cuadro de lista de control del menú. Seleccione un control de menú existente en el cuadro de lista para editar las propiedades del control.
Por ejemplo, la Figura 6.7 muestra los diversos controles de menú para el menú Archivo en una aplicación típica. La posición de un control de menú en el cuadro de lista de controles de menú determina si el control es un título de menú, un elemento de menú, un título de submenú o un elemento de submenú:
Un control de menú ubicado a la izquierda de un cuadro de lista aparece en la barra de menú como título del menú.
Un control de menú con sangría en un cuadro de lista solo aparecerá en el menú cuando se haga clic en el título del menú principal.
Un control de menú con sangría, si va seguido de algunos controles de menú con sangría nuevamente, se convierte en el título de un submenú. Cada control de menú sangrado debajo del título del submenú se convierte en el elemento de menú de ese submenú.
Un control de menú con un guión (-) como propiedad Título aparece como una barra separadora. Las barras separadoras dividen los elementos del menú en grupos lógicos. Tenga en cuenta que un control de menú no se puede utilizar como barra separadora si es un título de menú, tiene elementos de submenú, está marcado o deshabilitado o tiene una tecla de acceso directo.
Para crear un control de menú en el Editor de menús, siga estos pasos:
1.Seleccione el formulario
2. En el menú Herramientas, elija Editor de menús. -o- Haga clic en el botón Editor de menús en la barra de herramientas.
3. En el cuadro de texto Título, escriba el texto que desea que aparezca en la barra de menú para el primer título del menú. Si desea que un determinado carácter se convierta en la clave de acceso al elemento del menú, también puede agregar un carácter (&) delante del carácter. En los menús, este carácter se subraya automáticamente.
El texto del título del menú aparece en el cuadro de lista de control del menú.
4. En el cuadro de texto Nombre, escriba un nombre que se utilizará para hacer referencia al control de menú en el código. Consulte "Títulos de menú y pautas de nomenclatura" más adelante en este capítulo.
5. Haga clic en el botón de flecha izquierda o derecha para cambiar el nivel de sangría del control.
6. Si es necesario, también puede configurar otras propiedades del control. Este trabajo se puede realizar en el editor de menú o posteriormente en la ventana "Propiedades".
7. Seleccione "Siguiente" para crear otro control de menú. -o- Haga clic en Insertar para agregar un control de menú entre los controles existentes. También puede hacer clic en los botones de flecha hacia arriba y hacia abajo para mover controles entre los controles de menú existentes.
8. Si se han creado todos los controles de menú del formulario, seleccione "Aceptar" para cerrar el editor de menú. El título del menú creado se mostrará en el formulario. En tiempo de diseño, haga clic en el título de un menú para desplegar su elemento de menú correspondiente.
elementos de menú separados
Una barra separadora aparece en un menú como una línea horizontal entre los elementos del menú. En un menú con muchos elementos, puede utilizar barras separadoras para dividir los elementos en grupos lógicos. Por ejemplo, el menú "Ayuda" de Visual Basic utiliza barras separadoras para dividir los elementos del menú en tres grupos, como se muestra en la Figura 6.8.
Para crear una barra separadora en el editor de menú, siga estos pasos:
1. Si desea agregar una barra separadora a un menú existente, seleccione "Insertar" e inserte un control de menú entre los elementos del menú que desea separar.
2. Si es necesario, haga clic en el botón de flecha derecha para sangrar el nuevo elemento del menú al mismo nivel que el elemento del menú del que está separado.
3. Escriba un guión (-) en el cuadro de texto Título.
4.Establezca el atributo "nombre".
5. Seleccione Aceptar para cerrar el editor de menú.
Tenga en cuenta que, aunque las barras separadoras se crean como controles de menú, no responden a eventos de clic y no se pueden seleccionar.
Asignar claves de acceso y teclas de acceso directo
Mejore el acceso del teclado a los comandos del menú definiendo teclas de acceso y teclas de acceso directo.
clave de acceso
Las teclas de acceso permiten presionar la tecla ALT y escribir un carácter específico para abrir un menú. Una vez abierto el menú, se puede seleccionar el control presionando el carácter asignado (tecla de acceso). Por ejemplo, presione la tecla ALT E para abrir el menú "Editar" y luego presione la tecla P para seleccionar el elemento del menú "Pegar". En el título del control del menú, una clave de acceso especificada aparece como una letra subrayada, como se muestra en la Figura 6.9.
Para asignar claves de acceso a los controles del menú en el Editor de menús, siga estos pasos:
1. Seleccione el elemento del menú al que se le asignará la clave de acceso.
2. En su cuadro Título, escriba un carácter (&) directamente delante del carácter que desea utilizar como clave de acceso.
Por ejemplo, si el menú Editar que se muestra en la Figura 6.9 está abierto, el siguiente valor de configuración de la propiedad Título responde a la clave correspondiente.
Tenga en cuenta que no se pueden utilizar claves de acceso duplicadas en los menús. Si varios elementos del menú utilizan la misma clave de acceso, la clave no tendrá ningún efecto. Por ejemplo, si C es la clave de acceso tanto para "Cortar" como para "Copiar", cuando seleccione el menú "Editar" y escriba C, se seleccionará el comando "Copiar", pero solo después de presionar la tecla ENTER, el aplicación Este comando será ejecutado. Y el comando "cortar" no se ejecutará en absoluto.
tecla de acceso directo
Una tecla de acceso directo ejecutará inmediatamente un elemento del menú cuando se presione. Puede asignar una tecla de método abreviado a los elementos del menú utilizados con frecuencia, lo que proporciona un método de acceso al teclado de un solo paso, en lugar del método de tres pasos que consiste en mantener presionada la tecla ALT, presionar el título del menú para acceder al carácter y luego presionar el menú. elemento para acceder al personaje. La asignación de teclas de método abreviado incluye una combinación de teclas de función y teclas de control, como la tecla CTRL F1 o la tecla CTRL A. Aparecen a la derecha del elemento de menú correspondiente en el menú, como se muestra en la Figura 6.10.
Para asignar una tecla de acceso directo a un elemento del menú, siga estos pasos:
1. Abra el "Editor de menús".
2. Seleccione este elemento del menú.
3. Seleccione una tecla de función o una combinación de teclas en el cuadro combinado "Tecla de acceso directo".
Para eliminar una asignación de tecla de acceso directo, seleccione "(ninguno)" en la parte superior de la lista.
Tenga en cuenta que la tecla de acceso directo aparecerá automáticamente en el menú, por lo tanto, no es necesario escribir la tecla CTRL en el cuadro Título del editor de menú;
Títulos de menú y pautas de nomenclatura
Para mantener la coherencia con otras aplicaciones, es una buena idea seguir las pautas de nomenclatura establecidas al crear menús.
Establecer propiedad de título
Al asignar valores de título a elementos del menú, debe intentar seguir las siguientes pautas:
1. Los nombres de los elementos del menú deben ser únicos, pero los elementos de acción similares en diferentes menús pueden tener el mismo nombre.
2. El nombre del proyecto puede ser una palabra, una palabra compuesta o varias palabras.
3. Cada nombre de proyecto debe tener un carácter de acceso a memoria único para seleccionar comandos con el teclado. El carácter de acceso debe ser la primera letra del título del menú, a menos que otro carácter sea más fácil de recordar; dos títulos de menú no pueden usar el mismo carácter de acceso. Para obtener más información sobre la asignación de teclas de acceso y teclas de acceso directo, consulte la sección "Creación de menús con el Editor de menús" anteriormente en este capítulo.
4. Si un comando requiere información adicional antes de completarse, debe haber puntos suspensivos (...) después de su nombre, como un comando que muestra un cuadro de diálogo ("Guardar como...", "Preferencias...") .
5. Mantenga el nombre del proyecto lo más breve posible. Si la aplicación fuera traducida, la longitud de las palabras aumentaría en casi un 30 por ciento en la versión en idioma extranjero, lo que podría no dejar suficiente espacio para enumerar los elementos individuales del menú. Para obtener más detalles sobre la localización de aplicaciones, consulte el Capítulo 16, "Distribución internacional".
Convención de nomenclatura de menús
Para que su código sea más legible y fácil de mantener, es una buena idea seguir una convención de nomenclatura establecida al configurar la propiedad Nombre en el editor de menú. La mayoría de las reglas de convención de nomenclatura recomiendan identificar el objeto con un prefijo (es decir, mnu para un control de menú), seguido del nombre del menú de nivel superior (como Archivo). Para los submenús, va seguido del título del submenú (como mnuFileOpen).
Para obtener más información , consulte el Apéndice B, "Convenciones de codificación de Visual Basic" para ver ejemplos de convenciones de nomenclatura recomendadas. Consulte "Convenciones de codificación de VisualBasic" para ver ejemplos de convenciones de nomenclatura recomendadas.
->