Antes de comenzar a codificar
La parte más importante (y a menudo pasada por alto) de la creación de una aplicación en Visual Basic es la fase de diseño. La necesidad de diseñar una interfaz de usuario para la aplicación es obvia; la necesidad de estructurar el código es menos obvia. Los diferentes métodos de construcción de aplicaciones pueden dar como resultado diferencias en el rendimiento de la aplicación y en la capacidad de mantenimiento y usabilidad del código. El código de la aplicación Visual Basic está organizado de forma jerárquica. Una aplicación típica consta de varios módulos: un módulo de formulario para cada formulario de la aplicación, módulos estándar opcionales que comparten código y módulos de clase opcionales. Cada módulo contiene varios procesos que contienen código: proceso de evento, subproceso secundario o proceso de función y proceso de propiedad. Determinar qué proceso pertenece a qué módulo tiene cierta relación con el tipo de aplicación que se está creando. Como Visual Basic está basado en objetos, resulta útil pensar en las aplicaciones en términos de los objetos que representan. En este capítulo, la aplicación de ejemplo Vcr.vbp está diseñada basándose en los objetos que consisten en una grabadora de video y un televisor. La aplicación VCR contiene dos módulos de formulario, un módulo estándar y dos módulos de clase. El "Explorador de objetos" se puede utilizar para examinar la estructura del proyecto (Figura 5.2).
La forma principal de la aplicación VCR (frmVCR) es la imagen visual de la combinación del VCR y la pantalla del televisor (Figura 5.3). Consta de varios objetos modelados a partir de escenas del mundo real. Un conjunto de botones de comando (cmdPlay, cmdRecord, etc.) imitan los botones que operan una videograbadora. El software VCR también incluye reloj (lblTime), indicador de canal (lblChannel), indicador de función (shpPlay, shpRecord, etc.) y tubo de imagen (picTV). El módulo de formulario Vcr.frm incluye procedimientos de eventos para todos estos objetos.
En muchos casos hay procesos repetidos compartidos por múltiples objetos. Por ejemplo, "presionar" el botón "reproducir", "rebobinar" o "grabar" requiere que los botones "pausa" y "parar" sean válidos. Es mejor crear una subrutina compartida a la que todos los botones puedan llamar en lugar de repetir este código en el procedimiento de evento Click de cada botón. Si estas subrutinas se modifican en el futuro, todas las modificaciones se pueden realizar modificándolas en un solo lugar. El módulo estándar Vcr.bas contiene varios procedimientos compartidos.
Algunas partes del VCR son invisibles, como el mecanismo de transporte de la cinta o la lógica detrás de la grabación de programas de televisión. Asimismo, algunas funciones de los VCR de software no tienen imágenes visuales. Estas partes y funciones se implementan como dos módulos de clase Recorder.cls y Tape.cls. El módulo clsRecorder contiene el código para iniciar el proceso de "grabación" y el módulo clsTape contiene el código para controlar la dirección y velocidad de la "cinta". Las clases definidas en estos módulos no están directamente relacionadas con ningún objeto del formulario. Debido a que son módulos de código independientes, un programa de grabación se puede reconstruir fácilmente sin modificaciones.
Además de diseñar la estructura de su código, también es importante establecer una convención de nomenclatura. De forma predeterminada, Visual Basic nombra el primer formulario del proyecto Form1, el segundo formulario Form2, etc. Si tiene varios formularios en su aplicación, es una buena idea darles nombres significativos para evitar confusiones al escribir o editar código. Algunas convenciones de nomenclatura recomendadas por Visual Basic se enumeran en el Apéndice B, "Convenciones de codificación de VisualBasic".
A medida que aprenda más sobre objetos y aprenda a escribir código, consulte la aplicación de muestra de VCR para encontrar ejemplos de diversas técnicas de codificación.
Mecanismo de escritura de código
Antes de comenzar a escribir código, es importante comprender la mecánica de escribir código en Visual Basic. Como cualquier lenguaje de programación, Visual Basic tiene sus propias reglas para organizar, editar y formatear código.
módulo de código
El código de Visual Basic se almacena en módulos. Hay tres tipos de módulos: formularios, estándares y clases. Una aplicación simple puede tener un solo formulario y todo el código de la aplicación reside en el módulo de formulario. Cuando la solicitud es grande y compleja, se deben agregar formularios adicionales. Puede terminar descubriendo que existe un código común que se ejecuta en varias formas. Como no desea duplicar código en ambos formularios, cree un módulo separado que contenga los procedimientos para implementar el código común. Los módulos independientes serán módulos estándar. Luego puede crear una biblioteca de módulos que contengan procedimientos compartidos.
Cada módulo estándar, módulo de clase y módulo de formulario puede contener:
declaración. Puede colocar declaraciones de constantes, tipos, variables y procedimientos de biblioteca de vínculos dinámicos (DLL) a nivel de módulo en formularios, clases o módulos estándar.
proceso. Un procedimiento Sub, Función o Propiedad contiene fragmentos de código que se pueden ejecutar como una unidad. Estos se analizan en la sección "Descripción general del proceso" más adelante en este capítulo.
módulo de formulario
Los módulos de formulario (extensión de archivo .FRM) son la base de la mayoría de las aplicaciones de Visual Basic. Un módulo de formulario puede contener procedimientos para manejar eventos, procedimientos generales y declaraciones a nivel de formulario de variables, constantes, tipos y procedimientos externos. Si viera el módulo de formulario en un editor de texto, también vería una descripción del formulario y sus controles, incluida su configuración de propiedades. El código escrito en un módulo de formulario es específico de la aplicación específica a la que pertenece el formulario; también puede hacer referencia a otros formularios u objetos dentro de la aplicación.
Módulo estándar
Los módulos estándar (extensión de archivo .BAS) son contenedores de procedimientos y declaraciones a los que acceden otros módulos dentro de una aplicación. Pueden contener declaraciones globales (para toda la aplicación) o a nivel de módulo de variables, constantes, tipos, procedimientos externos y procedimientos globales. El código escrito en módulos estándar no tiene que estar vinculado a una aplicación específica; si se tiene cuidado de hacer referencia a los formularios y controles no por su nombre, los módulos estándar se pueden reutilizar en muchas aplicaciones diferentes.
módulo de clase
En Visual Basic, los módulos de clase (extensión de archivo .CLS) son la base de la programación orientada a objetos. Se puede escribir código en módulos de clase para crear nuevos objetos. Estos nuevos objetos pueden contener propiedades y métodos personalizados. De hecho, un formulario es simplemente un módulo de clase en el que se pueden colocar controles y se pueden mostrar ventanas de formulario.
Detalles Para obtener información más detallada sobre cómo escribir código en módulos de clase, consulte el Capítulo 9, "Programación con objetos".
Tenga en cuenta que las ediciones Professional y Enterprise de Visual Basic también incluyen documentos ActiveX, diseñadores ActiveX y controles de usuario. Introducen nuevos tipos de módulos con diferentes extensiones de archivo. Desde una perspectiva de codificación, estos módulos deben tratarse como módulos de formulario.
Utilice el editor de código
El Editor de código de Visual Basic es la ventana en la que se escribe la mayor parte del código. Es como un software de procesamiento de textos altamente especializado con muchas funciones que facilitan la escritura de código en Visual Basic. La Figura 5.4 muestra la ventana "Editor de código".
Debido a que necesita operar el código de Visual Basic en el módulo, debe abrir una ventana independiente del "Editor de código" para cada módulo seleccionado en el "Explorador de proyectos". En cada módulo, para cada objeto contenido en el módulo, el código del módulo se subdivide en partes independientes correspondientes al objeto. Utilice el "Cuadro de lista de objetos" para cambiar entre piezas. En un módulo de formulario, la lista contiene una sección general, una sección para el formulario en sí y una sección para cada control que contiene el formulario. Para los módulos de clase, la lista incluye una sección general y una sección de clase; para los módulos estándar, solo se muestra una sección general.
Cada fragmento de código puede contener varios procedimientos diferentes a los que se accede mediante el cuadro de lista de procedimientos. La lista de procedimientos del módulo de formulario contiene una sección separada para cada procedimiento de evento de un formulario o control. Por ejemplo, la lista de procesos del control Etiqueta incluye el segmento de evento Cambiar, el segmento de evento Click, el segmento de evento DblClick, etc. Los módulos de clase solo enumeran los procedimientos de eventos de la clase misma: inicialización y terminación. El módulo estándar no enumera ningún procedimiento de evento porque no admite eventos.
La lista de procedimientos de la sección general del módulo solo contiene la única sección: la sección de declaración, donde se colocan las variables, constantes y declaraciones DLL a nivel de módulo. Cuando agrega subprocedimientos o procedimientos de función a un módulo, esos procedimientos se agregan al cuadro de lista de procedimientos debajo de la sección de declaración.
Hay dos vistas diferentes de código disponibles en la ventana del Editor de código. Puede ver un proceso a la vez, o puede ver todos los procesos en un módulo, separados entre sí por líneas (como se muestra en la Figura 5.4). Para cambiar entre las dos vistas, utilice el botón "Ver selección" en la esquina inferior izquierda de la ventana del editor.
codificación de autocompletar
Visual Basic puede completar automáticamente declaraciones, propiedades y parámetros, lo que hace que escribir código sea más conveniente. A medida que ingresa el código, el editor enumera opciones, declaraciones o prototipos o valores de funciones apropiados. A las que se accede a través del comando Opciones en el menú Herramientas, las opciones están disponibles en la pestaña Editor del cuadro de diálogo Opciones que determinan si se permiten o deshabilitan los valores de configuración para códigos individuales.
Cuando ingresa un nombre de control en el código, las "Propiedades de miembros de la lista automática" resaltarán la hoja de propiedades desplegable del control (Figura 5.5). Al escribir las primeras letras del nombre del atributo se seleccionará el nombre de la tabla y al presionar la tecla Tab se completará la entrada. Esta opción es muy útil cuando no está seguro de qué propiedades tiene un control determinado. Incluso si elige desactivar la función de miembros de la lista automática, aún puede usar la combinación de teclas CTRL J para obtener esta funcionalidad.
La función "Información rápida automática" muestra la sintaxis de declaraciones y funciones (Figura 5.6). Después de ingresar una declaración legal de Visual Basic o un nombre de función, la sintaxis se muestra inmediatamente debajo de la línea actual y su primer parámetro se muestra en negrita. Después de ingresar el valor del primer parámetro, aparece nuevamente el segundo parámetro, también en negrita. La "información rápida automática" también se puede obtener utilizando la combinación de teclas CTRL I.
marcador
Los marcadores se pueden utilizar en el editor de código para marcar ciertas líneas de código para que puedas volver a ellas fácilmente más tarde. La activación y desactivación de marcadores y los comandos para navegar a marcadores existentes se pueden obtener desde Editar, elementos del menú Marcadores o la barra de herramientas Editar.
Más información Para obtener información más detallada sobre cómo utilizar combinaciones de teclas para utilizar diversas funciones de la ventana del Editor de código, consulte "Teclas de acceso directo de la ventana de código".
conceptos básicos de codificación
Esta sección presenta la mecánica de escribir código, incluido cómo dividir y fusionar líneas de código, cómo agregar comentarios, cómo usar números y las convenciones de nomenclatura de Visual Basic.
Dividir una declaración de una sola línea en varias líneas
Puede utilizar caracteres de continuación de línea (un espacio seguido de un guión bajo) en la ventana Código para dividir declaraciones largas en varias líneas. Debido al uso de caracteres de continuación de línea, el código se vuelve más legible tanto en la computadora como en forma impresa. A continuación se utiliza el carácter de continuación de línea (_) para dividir el código en varias líneas:
Datos1.RecordSource=_
SELECCIONAR*DESDETítulos,Editores_
&WHEREPublishers.PubId=Títulos.PubID_
&ANDPublishers.Estado='CA'
En la misma línea no se pueden agregar comentarios después del carácter de continuación de línea. Existen algunas restricciones sobre dónde se pueden utilizar los caracteres de continuación de línea.
Combina varias declaraciones en la misma línea
Normalmente, hay una instrucción de Visual Basic en una línea sin un terminador de instrucción, pero puede colocar dos o más instrucciones en la misma línea separándolas con dos puntos (:).
Text1.Text=Hola:Rojo=255:Text1.BackColor=
Rojo
Sin embargo, para facilitar la lectura del código, es mejor poner una declaración por línea.
Para obtener más información, consulte el Apéndice A, "Especificaciones, limitaciones y formato de archivo de Visual Basic".
Añade comentarios a tu código
A menudo encontrará el carácter de comentario (') al leer los ejemplos de este manual. Este símbolo le indica a Visual Basic que ignore lo que sigue al símbolo. Estos son comentarios en el fragmento de código, tanto para conveniencia del desarrollador como para conveniencia de otros programadores que luego puedan examinar el código fuente. Por ejemplo:
'Esto es desde el lado izquierdo de la pantalla.
'Iniciar comentario.
Text1.Text=¡Hola! 'Ponlo en el cuadro de texto
'Bienvenido.
Los comentarios pueden estar en la misma línea que la declaración, escritos después de la declaración o pueden ocupar una línea completa. El código anterior demuestra ambas situaciones. Recuerde que un comentario no puede seguir a un carácter de continuación de línea en la misma línea.
Nota Puede agregar o eliminar símbolos de comentarios de un bloque de código seleccionando dos o más líneas de código y seleccionando el botón Bloque de comentarios o Eliminar bloque de comentarios en la barra de herramientas Editar.
Comprender los sistemas numéricos.
La mayoría de los valores de este documento están en decimal (base 10). Pero a veces es más conveniente utilizar números hexadecimales (base 16) o números octales (base 8). Visual Basic usa el prefijo &H para representar números hexadecimales y &O para representar números octales. La siguiente tabla ilustra la representación decimal, octal y hexadecimal del mismo número.
Por lo general, no es necesario conocer el sistema numérico hexadecimal u octal porque las computadoras pueden trabajar con números en cualquiera de los sistemas. Sin embargo, algunos sistemas numéricos son más adecuados que otros para determinadas tareas, como utilizar números hexadecimales para configurar el color de pantallas y controles.
Convenciones de nomenclatura de VisualBasic
Al escribir código de Visual Basic, declara y nombra muchos elementos (procedimientos secundarios y de función, variables, constantes, etc.). Los nombres de procedimientos, variables y constantes declarados en código de Visual Basic deben seguir estas reglas:
1. Deben comenzar con una letra.
2. No podrán contener puntos incrustados ni caracteres de declaración de tipo (caracteres especiales que especifican tipos de datos).
3. No podrán exceder los 255 caracteres. Los nombres de controles, formularios, clases y módulos no pueden exceder los 40 caracteres.
4. No pueden tener el mismo nombre que las palabras clave restringidas.
Las palabras clave restringidas son palabras utilizadas por Visual Basic y forman parte del lenguaje. Estos incluyen declaraciones predefinidas (como If y Loop), funciones (como Len y Abs) y operadores (como Or y Mod).
Información detallada Para obtener información más detallada sobre la tabla de palabras clave, consulte el "Manual de referencia del lenguaje Visual Basic 6.0".
Los formularios y controles pueden tener el mismo nombre que las palabras clave restringidas. Por ejemplo, puedes nombrar un bucle de control. Pero no se puede hacer referencia al control de la forma habitual en el código, porque Visual Basic pensará que Loop significa la palabra clave. Por ejemplo, el siguiente código generará un error.
Loop.Visible=True 'Error.
Para hacer referencia a formularios o controles que tienen el mismo nombre que una palabra clave restringida, debe calificarlos o encerrarlos entre corchetes []. Por ejemplo, el siguiente código no generará errores.
MyForm.Loop.Visible=True 'Usar nombre del formulario
'Califícalo.
[Bucle].Visible=True 'corchetes
'Funcionó.
Los corchetes se pueden usar de esta manera al hacer referencia a formularios y controles, pero no durante la declaración de variables o la definición de procedimiento cuando el nombre de la variable o del procedimiento es el mismo que la palabra clave restringida. Los corchetes también se pueden utilizar para obligar a Visual Basic a aceptar nombres proporcionados por otras bibliotecas de tipos que entran en conflicto con palabras clave restringidas.
Tenga en cuenta que escribir corchetes es agotador, por lo que es deseable utilizar palabras clave menos restringidas para los nombres de formularios o controles. Sin embargo, si una nueva versión de Visual Basic define nuevas palabras clave que entran en conflicto con formularios o controles existentes, puede utilizar esta técnica al actualizar su código para usar la nueva versión. _
->