Post on 08-Apr-2016
description
Lenguaje BASIC
1
FACULTAD DE CIENCIAS HUMANAS
Y DE LA EDUCACIÓN
TEMA:
Manejo de Formularios, Tipos De Datos,
Constantes y Variables en Visual Basic 6.0
INTEGRANTES: Liliana Calapiña
Verónica Oña
Mayra Saquinga
SEMESTRE
QUINTO “U”
AMBATO - ECUADOR
2011
Lenguaje BASIC
2
Manejo de Formularios, Tipos De Datos, Constantes y
Variables
CONTENIDO
1.1. Creación de formularios
1.2. Generación Cuadros de Mensaje
1.3. Generación Cuadros de entrada de datos
1.4. Declaración de variables locales y globales
1.5. Utilización de operadores aritméticos de comparación y lógicos.
Lenguaje BASIC
3
Manejo de Formularios, Tipos De Datos, Constantes y
Variables
1.1. Creación de formularios
FORMULARIO
El primer objeto Visual Basic con que nos encontramos es el FORMULARIO. De hecho,
cada vez que iniciamos Visual Basic (VB) nos presenta en pantalla un nuevo
formulario, que tiene por defecto el nombre de Form1
El Formulario es un objeto, que sirve de soporte de otros objetos. El nombre de
FORMULARIO lo toma precisamente porque, al igual que un formulario de papel
contiene textos escritos, lugares donde podemos escribir, figuras, cajas donde
podemos elegir una u otra opción, etc., en este cuadro gráfico que llamamos
formulario, podemos introducir textos escritos, lugares donde podemos escribir,
figuras, cajas donde podemos elegir una u otra opción .
En realidad un formulario es lo que normalmente conocemos por VENTANA. El
nombre de formulario le viene muy bien cuando ese formulario es una ventana
donde vamos a introducir datos alfanuméricos. Cuando en vez de introducir datos, lo
que tenemos es, por ejemplo, una ventana donde se reproducen exactamente los
controles de operación de una máquina, parece en principio que sería más correcto
el nombre de "ventana". De alguna forma lo hay que llamar, y esa forma es
FORMULARIO. Posiblemente a lo largo de estos apuntes nos referiremos al formulario
con el nombre de ventana, o incluso, pantalla. Procuraremos usar el nombre
apropiado: FORMULARIO.
Forma inicial del formulario.
Lenguaje BASIC
4
PROPIEDADES
Name Nombre
Define al objeto durante la ejecución del programa. Se introduce en tiempo de
diseño y no se puede variar durante la ejecución. Nombre por defecto: Form1
(Form2 y sucesivos) Este nombre por defecto debe cambiarse, (debería cambiarse
por norma en el momento de introducir el formulario), ya que de no hacerlo
corremos el riesgo de borrar el código existente de otro formulario del mismo nombre
en el momento de guardar la aplicación.
Caption Título
Es el texto que aparecerá en la barra de Título cada vez que aparezca en pantalla
este formulario. No tiene otra función dentro del programa. El programa no accede
a este formulario por el título, sino por el nombre. Puede cambiarse en tiempo de
ejecución.
NOTA.- No confundir Nombre (Name) con Título (Caption)
Control Box Control “menos” del Formulario Valor por defecto: True
Propiedad booleana que admite los valores de true (verdadero) o False (Falso). Si
esta propiedad es True, aparecerá en la esquina superior izquierda el "menos" para
desplegar el menú de control de este formulario. Si esta propiedad se pone como
False, no existirá dicho "menos" y por tanto no se puede desplegar dicho menú.
MaxButton Valor por defecto: True
Lenguaje BASIC
5
Botones (flechas) de minimizar y maximizar este formulario. Son igualmente
propiedades booleanas, que admiten el valor True o False. Si están en true,
aparecerá la flecha correspondiente. Si están en False, no aparecerá dicha flecha.
Deben configurarse de una u otra forma, dependiendo si se quiere minimizar /
maximizar este formulario durante la ejecución.
BorderStyle Tipo de borde
Define el tipo de borde que tendrá el formulario durante la ejecución. No se puede
cambiar en tiempo de ejecución,
Admite los siguientes valores:
0 - None El formulario no tiene borde alrededor
1 - Fixed Single
El formulario tendrá un borde fino, y no podrá cambiarse su tamaño durante el
tiempo de ejecución. Con este valor, el formulario puede tener un menú de control,
barra de título y botones de maximizar y minimizar. Solo podrá cambiarse de tamaño
utilizando estos botones.
2-Sizable
El formulario tendrá borde grueso, y se podrá cambiar su tamaño en tiempo de
ejecución mediante los botones de maximizar y minimizar, y mediante el arrastre de
uno de los bordes con el ratón.
3 - Fixed Dialog
El formulario tendrá borde grueso, y no se podrá redimensionar durante la ejecución.
No puede tener los botones de maximizar ni minimizar.
4 - Fixed ToolWindow
En las versiones de 16 bits de Windows y Windows NT 3.51 y anteriores se comporta
como Fixed Single. No puede cambiar de tamaño. En Windows 95 muestra el botón
Cerrar, y el texto de la barra de titulo aparece con un tamaño de fuente reducido. El
formulario no aparece en la barra de tareas de W95.
5 - Sizable ToolWindow
En las versiones de 16 bits se comporta como Sizable. En W95 muestra el botón Cerrar
y el texto de la barra de titulo aparece con un tamaño de fuente reducido. El
formulario no aparece en la barra de tareas de W95.
Valor por defecto: 2. Sizable
Lenguaje BASIC
6
Nota: Al cambiar a determinados valores, las propiedades MaxButton y MinButton se
ponen a False. Pueden cambiarse a True posteriormente.
Appearance Apariencia Valor por defecto: 3D
Admite los valores 0 (=Flat, plano) y 1 (=3D) Si tiene el valor 1 (3D), el formulario
aparecerá con cierto efecto tridimensional, y los controles que le introduzcamos a
este formulario aparecerán como esculpidos dentro de él. Con valor 0 (Flat) en esta
propiedad, el formulario aparecerá durante la ejecución como una superficie plana.
El color de fondo se ve afectado al cambiar esta propiedad. Si se cambia a 3D, el
fondo (Backcolor) toma el color definido en Windows en el Panel de Control. Si se
cambia a Flat, toma el color blanco
Autoredraw Valor por defecto: False
Propiedad booleana. Esta propiedad, estando en True, permite actualizar el
contenido del formulario y de sus controles incluso cuando no están visibles.
Imaginemos que en este formulario existe un texto, una etiqueta (Label) o caja de
texto (Text Box) cuyo texto se haya cambiado, bien por programa, bien por una
entrada, mientras este formulario no estaba visible. Lo mismo podemos decir de las
propiedades de cualquier otro control. Si esta propiedad Autoredraw está en False, al
hacer visible este formulario, aparecerá igual que cuando se ocultó. Si esta
propiedad está en True, aparecerá actualizado.
Backcolor Color del fondo
Establece el color del fondo del formulario. Puede cambiarse en tiempo de
ejecución.
ClipControls Valor por defecto: False
Propiedad Booleana. Establece si un evento Paint vuelve a dibujar el objeto entero
(True) o si solamente dibujan las partes que han sufrido cambios (False)
DrawMode
Establece un valor que determina el aspecto de la salida de un método gráfico o el
aspecto de un control Shape o Line. Verá más adelante los efectos de esta
propiedad.
DrawStile Valor por defecto: 0
Establece el estilo de línea de la salida de métodos gráficos:
Valores: 0 - Línea continua
1 - Rayas
2 - Puntos
Lenguaje BASIC
7
3 - Raya-Punto
4 - Raya - Punto - Punto
5 - Transparente
6 - Continuo interior.
DrawWidth Valor por defecto: 1
Establece el ancho de una línea dibujada. El valor debe expresarse en pixeles.
Enabled Activado Valor por defecto: True
Propiedad booleana. Si está en True, el formulario está activado y se puede
interactuar con él. Si está en False, se desactiva el formulario, impidiendo de esta
forma, que se pueda trabajar con él.
ForeColor Valor por defecto: Negro
Establece el color del primer plano del formulario. Es el color que tendrán las letras si
escribimos en él, o los dibujos, si lo que hacemos es dibujar. En tiempo de diseño,
determina el color de la rejilla,.
FillStyle Tipo de relleno Valor por defecto: 2
Establece el modo de rellenar controles Shape, o figuras (círculos o cuadrados)
creados con los métodos gráficos Circle y Line.
Valores: 0 - Continuo
1 - Transparente
2 - Línea Horizontal
3 - Línea Vertical
4 - Diagonal hacia arriba
5 - Diagonal hacia abajo
6 - Cruzado
7 - Diagonal cruzada
FillColor Color de relleno
Especifica el color del relleno contemplado en FillStyle.
Lenguaje BASIC
8
Font Tipo de letra Valor por defecto: El determinado en la personalización.
Especifica el tipo y tamaño de la letra que se usará en el formulario. Al seleccionar
esta propiedad en la ventana de propiedades, aparece un cuadro de dialogo
donde se eligen ambos parámetros.
Cuando introduzca nuevos controles en el Formulario, la propiedad Font de estos
controles tomará el valor que tenga esta propiedad en el Formulario. Puede servirle
este pequeño truco para utilizar en todos los controles una determinada fuente sin
tener que teclearla para cada control.
FontTranparent Texto Transparente Valor por defecto: True
Establece si el texto o gráfico de fondo del formulario se muestra (True) o no se
muestra entre los caracteres de texto escritos en el propio formulario.
FontSize Tamaño de letra
Establece el tamaño de la letra. Esta propiedad, que puede variarse en tiempo de
ejecución, varía solamente el tamaño, y no el tipo de letra. El tamaño debe
expresarse en puntos. Máximo, 2160 puntos.
FontBold, FontItalic, FontStrikethru, FontUnderline
Permiten, en tiempo de ejecución, cambiar un texto a negrita, cursiva, tachado y
subrayado. Son propiedades booleanas True / False
Height Altura Valor por defecto: No existe
Define la altura del formulario. El valor de esta propiedad no se introduce
normalmente como un dato numérico, sino que toma el valor automáticamente,
dependiendo de las dimensiones del formulario durante el tiempo de diseño. Puede
cambiarse durante el tiempo de ejecución.
HelpContextID Valor por defecto: 0
Establece un número de contexto asociado para este formulario. Este número se
aplica para determinar la ayuda interactiva asociada a este formulario. Vea más
adelante, el tema Ayuda de Windows.
Puede tomar los siguientes valores : 0 - No se especifica número de contexto
>0 Un entero que especifique un contexto válido.
Icon Icono
Lenguaje BASIC
9
Esta propiedad define el icono que va a representar a este formulario cuando esté
minimizado. Si el formulario es el formulario padre o formulario de inicio de una
aplicación, este icono es el que toma el Asistente de Instalación para colocarlo
como icono de apertura del programa en el grupo de programas Windows
correspondiente. Como valor de esta propiedad se le puede asignar directamente el
icono o el nombre de un archivo (con su path correspondiente) que lo contiene,
haciéndolo directamente sobre la caja de propiedades.
KeyPreview Valor por defecto: False
Propiedad Booleana. Cuando un formulario tiene dentro de sí varios controles, uno
de ellos es el que está activo. En estas condiciones, si se pulsa una tecla, esa
pulsación la recibe en primer lugar el control que esté activo, y si éste no la procesa,
pasa esa pulsación al formulario. Para hacer que esa pulsación pase directamente al
formulario, debe ponerse esta propiedad en True.
Left Borde Izquierdo Valor por defecto: No existe
Indica la posición del borde izquierdo del formulario. Normalmente no se introduce
como valor numérico, sino que lo toma automáticamente de la posición que tenga
el formulario en el tiempo de diseño. Puede cambiarse en tiempo de ejecución,
para mover el formulario.
LinkMode Valor por defecto: 0
Permite que una aplicación destino inicie una conversación DDE con el formulario
(origen de datos). Puede tomar los siguientes valores:
0 - No hay interacción DDE
1 - Source. Indica que este Formulario es origen de una comunicación DDE. El dato
que se va a traspasar en esa comunicación DDE estará en un TextBox, en un Label o
en un PictureBox de este Formulario.
LinkTopic
Establece el tema al que este formulario va a responder a una conversación DDE,
cuando funciona como origen. Es por este tema por el que se debe llamar a este
formulario cuando actúa de origen en una conversación DDE
MDIChild Valor por defecto: False
Establece que este formulario es un formulario Hijo dentro de un formulario MDI. No se
puede cambiar en tiempo de ejecución. Es una propiedad booleana
True = es formulario hijo False =No lo es
Lenguaje BASIC
10
MouseIcon Valor por defecto: ninguno
Establece un icono personalizado para el puntero del ratón cuando esté encima de
este Formulario. Este icono puede ser un bit-map de los existentes en el directorio
Icons de Visual Basic o cualquiera que tengamos. Si se pone 99 como valor de la
propiedad MousePointer (siguiente), cada vez que el puntero del ratón pase por este
Formulario, cambiará su forma y adoptará la del icono elegido.
MousePointer Valor por defecto: flecha
Determina la forma del puntero del ratón cuando se coloca encima del formulario.
Puede elegirse uno de los punteros preestablecidos (15 en total) o el personalizado
visto en la propiedad anterior. Para elegir ese icono personalizado, debemos poner
en esta propiedad el valor 99.
Picture Gráfico Valor por defecto: No existe
Mediante esta propiedad podemos poner un gráfico como fondo del formulario. El
gráfico puede ser un bit-map o un fichero .ICO
ScaleHeight, ScaleWidth, ScaleMode,
Indican la unidad de medida de dimensión de altura y anchura del Formulario.
ScaleMode indica en qué unidades de medida se van a medir esas dimensiones.
Acepta Twips (1), Point(2), Pixel (3), Character (4), Pulgadas (Inch) (5), Milímetros (6),
Centímetros (7). Si colocamos la propiedad ScaleMode en cualquiera de estos
valores, las propiedades ScaleHeight y ScaleWidth nos vendrán dadas
automáticamente dependiendo del ancho del Formulario, y no se extrañe si
encuentra para estas propiedades valores tan peregrinos como 4815 y 7423. Al
haber elegido la unidad de medida, los valores de ancho (ScaleWidth) y alto
(ScaleHeight) serán los que tengan que ser, medidos en la unidad que hemos
elegido. Podemos elegir una cifra para el ancho y el alto del Formulario de forma
que podamos controlar mejor las distintas posiciones que van a ocupar en él los
controles, los textos o los dibujos. Podemos poner, por ejemplo, que el Formulario
mida 400 de ancho (ScaleWidth = 400) y 300 de alto (ScaleHeight = 300) forzándole
estas propiedades, bien en tiempo de diseño en la caja de propiedades, o en
tiempo de ejecución mediante código. Entonces sabemos que el formulario,
independientemente de las dimensiones físicas que tenga sobre la pantalla, medirá
400 de ancho y 300 de alto, y si en estas condiciones queremos colocar un control o
un dibujo justo en el medio del Formulario, sabemos que tenemos que colocarle en
las coordenadas 200, 150. ¿Qué unidad de medida estaremos utilizando entonces en
el Formulario ? Unas definidas por el usuario (distintas para el ancho y el alto) que
serán las necesarias para que el Formulario mida de ancho lo que le hayamos puesto
en la propiedad ScaleWidth y de alto lo que le hayamos puesto en la propiedad
ScaleHeight. Observe que la propiedad ScaleMode se ha cambiado
automáticamente a User (0) al introducir las dimensiones de ancho y alto que
nosotros queremos.
Lenguaje BASIC
11
Estas unidades de medida afectarán a los controles que metamos en este
Formulario. Se medirán en su ancho y alto con la unidad de medida definida para el
ancho y alto del Formulario. Lógicamente también afectará a las propiedades Left y
Top de los controles, pero estas propiedades se verán afectadas además por las
propiedades ScaleLeft y ScaleTop del Formulario que se verán a continuación.
ScaleLeft, ScaleTop
Estas propiedades, medidas en la unidad de medida elegida para el ancho y alto
mediante las propiedades ScaleMode, ScaleWidth y ScaleHeight anteriores, expresan
las coordenadas iniciales de la parte izquierda y de la parte superior
respectivamente del Formulario. Estas propiedades no afectan a la posición del
Formulario en la pantalla (Si está maximizado seguirá ocupando toda la pantalla, si
está en “Normal” ocupará el mismo sitio que se dio en tiempo de diseño).
Supongamos que se le asigna a un Formulario, las propiedades ScaleWidth = 400, y
ScaleHeight = 300. Si colocamos un control justamente en el centro del Formulario
tendrá sus propiedades Top =150 y Left=200. Si ponemos ahora las propiedades del
Formulario ScaleLeft a 30 y ScaleTop a 10, ese control, para seguir en el centro del
Formulario deberá tener sus propiedades Top a 160 (150 + 10) y Left a 230 (200 + 30).
Tag Valor por defecto: No existe
Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar al formulario
información adicional para fines externos a la programación. Pero también le puede
servir para almacenar en ella una variable para que la use un código ajeno al
formulario. El autor de estos apuntes tiene por costumbre utilizar la propiedad Tag del
formulario inicial para guardar el parámetro que se le pasa a algunos programas
para acceder a ellos con unos determinados privilegios. Resumiendo, está ahí para
lo que el programador quiere.
Top Posición del borde superior Valor por defecto: No existe
Esta propiedad establece la posición del borde superior del formulario. Normalmente
no se introduce como valor numérico sino que lo toma automáticamente de la
posición que tenga el Formulario durante el tiempo de diseño Este valor puede
cambiarse durante la ejecución para, conjuntamente con Left, variar la posición del
Formulario. Los valores de Top y Left definen la esquina superior izquierda del
Formulario.
Visible Valor por defecto: True
Propiedad Booleana. Asignándole el valor True la pantalla es visible, y asignándole el
valor False, no se ve. Este valor puede cambiarse durante el tiempo de ejecución
para ocultar y hacer visible el formulario.
Width Ancho Valor por defecto: No existe
Lenguaje BASIC
12
Define la anchura del formulario. Normalmente no se introduce como valor numérico
sino que lo toma automáticamente del tamaño que tenga el formulario durante el
tiempo de diseño. Juntamente con Height define el tamaño del formulario. Puede
cambiarse durante el tiempo de ejecución.
WindowState
Establece el estado en el que aparecerá el formulario cuando se activa y presenta
en pantalla. Admite tres opciones:
0 - Normal El formulario recupera la posición y tamaño que tenía en el tiempo de
diseño.
1 - Minimizado El formulario aparece minimizado, representado por su icono.
2 - Maximizado El formulario aparece maximizado, ocupando toda la pantalla.
PROCEDIMIENTOS
Activate Activación Click Click
DblClick Doble click Deactivate Desactivación
DragDrop Arrastrar y soltar DragOver Arrastrar por encima
GotFocus Obtener el foco KeyDown Mantener pulsada una tecla
KeyPress Pulsar una tecla KeyUp Soltar una tecla
LinkError Error de enlace LinkExecute Ejecución de un enlace de datos
LinkOpen Romper el enlace Load Cargar el formulario
LostFocus Perder el foco MouseDown Pulsar una tecla del ratón
MouseMove Mover el ratón (Detecta la posición del ratón sobre el formulario)
MouseUp Soltar una tecla del ratón Paint Pintar
QueryUnload Confirmación de descarga Resize Cambio de tamaño
Unload Descargar el formulario
PARA QUE SIRVE UN FORMULARIO
Lenguaje BASIC
13
Un Formulario sirve, fundamentalmente, de contenedor de controles. Es la ventana
de Windows de nuestra aplicación. Una aplicación puede tener varios Formularios y
dentro de cada uno de ellos, los controles necesarios para cada paso o estado de la
aplicación.
Un Formulario puede servir también como soporte de textos o dibujos.
Para cambiar el tamaño del
formulario arrastra el ratón tirando
de las esquinas. Para poder
introducir código debes insertar un
botón haciendo click en la barra
de controles y arrastrando sobre el
formulario. Para entrar en ventana
de código haz doble click sobre el
botón y escribe Print "hola" entre
las lineas Private Sub
Command1_Click() y End Sub.
Para poner en funcionamiento el
programa pulsa sobre el botón
Iniciar y verás aparecer la ventana
de Windows con el programa.
Pulsa el botón del formulario y
verás ejecutarse el código,
apareciendo en el formulario la
palabra "hola"
Lenguaje BASIC
14
Añade nuevas instrucciones Print
al código del programa
Se ejecutarán al ponerlo en
marcha y pulsar sobre el botón
Command1.
Para cerrar el programa pulsa sobre el
botón Cerrar.
Añade varias órdenes print que
muestren números en formato
exponencial como Print 3E12 o
Print 4E-9 y verás como Visual Basic
los convierte automáticamente.
Tambien puedes usar variables de
texto (terminadas en $) o
numéricas, asi como pedir un valor
mediante la instrucción Inputbox()
que muestra una ventana de
entrada de datos.
Lenguaje BASIC
15
Observa que al escribir el
paréntesis de la instrucción
InputBox, Visual Basic muestra el
formato de la instrucción el cual
puede llevar un mensaje, un título
para la ventana, un valor por
defecto, la posición en pantalla,
etc.
En el ejemplo escribe
simplemente:
Apellido$ = INPUTBOX("DIME TU
APELLIDO")
para guardar la respuesta en una
variable tipo String.
Añade al programa las lineas:
Print "Hola.." + Nombre$+"
"+Apellido$
El espacio entre las dos variables
evita que queden pegados los
textos correspondientes.
Tambien puedes definir el tipo de
las variables con la instrucción DIM
en lugar de utilizar el carácter $
Lenguaje BASIC
16
Dim Nombre, Apellido As Stirling
La orden PRINT envía al formulario
los mensajes o los cálculos
realizados línea a línea. Pero una
forma más práctica es enviarlos a
posiciones fijas del formulario,
insertando objetos tipo Rabel
(etiquetas de texto).
Haz clic sobre el objeto
correspondiente e insértalo en el
formulario. Su nombre será: Label1
y la forma de enviarle un texto es :
Label1.Caption="hola.."+Nombre$
+" "+Apellido$
Este es ahora el contenido del código
correspondiente al botón insertado en el
formulario:
Private Sub Command1_Click()
Print "HOLA"
Print "EL CUBO DE 5 ES.."; 5 * 5 * 5
Print 3000000000000#
Print 0.000000004
Nombre$ = "ANA"
Print "MI NOMBRE ES.."; Nombre$
Apellido$ = InputBox("DIME TU APELLIDO ")
Print "HOLA.."; Nombre$ + " " + Apellido$
Label1.Caption = "hola.." + Nombre$ + " " +
Apellido$
End Sub
Inserta un nuevo botón y haz
doble clic sobre él para introducir
el código siguiente:
Private Sub Adivina_Click()
Dim X, n As Integer
X = CInt(Rnd * 10)
Print "DAME UN NUMERO DEL 0 AL
10 "
n = InputBox("Número:")
If X = n Then Print "ACERTASTE" Else
Print "FALLASTE"
End Sub
En esta subrutina se definen dos
variables numéricas enteras X y N.
Se calcula un valor al azar para X
y se pide otro mediante una
ventana (InputBox). A
continuación se comprueba si son
iguales enviando al formulario el
mensaje correspondiente.
Lenguaje BASIC
17
Crea un nuevo proyecto e inserta una
etiqueta (Label1) y un botón en él. Haz
doble click sobre el botón para introducir
el siguiente código que te permitirá ver
cómo se usa la función Format()
Private Sub Command1_Click()
Dim micadena As String
Label1.Caption = "Muestras de
formatos"
micadena = Format(5459.4,
"##,##0.00")
Print micadena
micadena = Format(334.9,
"###0.0")
Print micadena
micadena = Format(334.9,
"###0.00") ' Devuelve "334,90".
Print micadena
micadena = Format(5, "0.00%") '
Devuelve "500,00%".
Print micadena
micadena = Format("HOLA", "<") '
Devuelve "hola".
Print micadena
micadena = Format("Esto está en
mayúsculas ", ">")
Print micadena
End Sub
Crea un proyecto nuevo y añade dos
cuadros de texto y una etiqueta. Inserta 3
botones de acción y modifica su nombre y
texto. Haz doble clic sobre cada uno de
ellos e inserta estas operaciones:
Private Sub Dividir_Click()
Label1 = Text1 / Text2
End Sub
Private Sub Multiplicar_Click()
Label1 = Text1 * Text2
End Sub
Private Sub Potencias_Click()
Label1 = Text1 ^ Text2
End Sub
Añade un nuevo botón que
calcule el logaritmo en base 10
del número introducido en el
primer cuadro de texto:
Private Sub Logaritmo_Click()
Label1 = Log(Text1) / Log(10#)
End Sub
Lenguaje BASIC
18
Crea una nueva función que
calcule el logaritmo en cualquier
base. Selecciona Agregar
procedimiento y escribe esta
función:
Public Function LogaritmoX(ByVal
x, y As Integer) As Single
LogaritmoX = Log(x) / Log(y)
End Function
Para llamarla hay que pasarle 2
parámetros: X que será el número
cuyo logaritmo queremos calcular
y Y que representa la base.
Introduce un nuevo botón de
acción llamado LogBaseX y llama
desde él a la función:
Label1 = LogaritmoX(Text1, Text2)
Utilización de las funciones
generadoras de números
aleatorios: RND y RANDOMIZE
Sintaxis:
Randomize [número]
El argumento con nombre número
puede ser cualquier expresión
numérica válida.
Rnd devuelve un valor entre 0 y 1.
Por ejemplo, la instrucción :
MiValor = Int((6 * Rnd) + 1)
Genera un valor aleatorio entre 1 y
6 y lo guarda en la variable
MiValor
(Rnd*6 da un número de 0 a 5 y le
sumamos 1)
Abre un proyecto nuevo,
introduce un botón de acción y
una etiqueta de texto con un
tamaño grande de letra y haz
doble click sobre el botón para
introducir el código siguiente:
Lenguaje BASIC
19
Ahora ejecuta el programa y
observa que con cada pulsación
del botón aparece un número
distinto (del 1 al 6) en la etiqueta
de texto. Modifica el programa
para que aparezcan 6 números al
azar (del 1 al 49) en cada
pulsación, para simular el juego de
la primitiva.
En determinados casos necesitaremos usar
números enteros con valores altos.
Entonces necesitamos trabajar con el tipo
Long (entero largo):
Integer 2 bytes -32.768 a 32.767.
Long (entero largo) 4 bytes -
2.147.483.648 a 2.147.483.647.
La función que convierte el dato
de un TextBox a entero largo es
Clng() y es equivalente a CInt()
para enteros.
En este programa podrás
introducir números grandes y el
código del botón comprobará si
es par (si la división entera es igual
a la división con decimales) o
impar (si no lo es)
Lenguaje BASIC
20
En el siguiente proyecto vas a
utilizar la función TIMER
Este ejemplo usa también
DoEvents para dar preferencia a
otros procesos durante la pausa
de cuenta (bucle Do While.. Loop)
Introduce los controles que ves a
la izquierda: una etiqueta de texto
(Label1) un TextBox, y un botón de
acción con el código que ves a
continuación:
- se definen tres variables enteras
(comienzo, final y total)
- se guarda elnúmero actual del
segundero en la variable
comienzo
- se crea un bucle que se realiza
hasta que la variable total supere
el valor establecido en el TextBox.
Durante el bucle se va guardando
el valor de segundos del Timer en
la variable final y se calculan los
segundos transcurridos restando a
este valor el número de segundos
que guardamos, al empezar, en la
variable comienzo.
El bucle termina cuando el
número de segundos es igual al
valor establecido en el TextBox,
apareciendo entonces el aviso.
Lenguaje BASIC
21
1.2. Generación Cuadros de Mensaje
ENTRADA Y SALIDA DE DATOS:
En Visual Basic, una forma común de introducir datos es utilizando la caja de dialogo
provista
InputBox
Su sintaxis es:
Variable = InputBox(“Mensaje”,”Titulo”, Por_omisión, posX, posY)
Donde:
� Mensaje: contiene el mensaje que indica al usuario que tipo de datos debe
ingresar
� Titulo: será visualizada en la barra de titulo de la caja de dialogo
� Por_omisión: indica la cadena de caracteres que aparecen de manera
predeterminada
La función InputBox muestra un mensaje en un cuadro de diálogo, espera que el
usuario escriba un texto o haga clic en un botón y devuelve un tipo String con el contenido del cuadro de texto.
Formato
InputBox( prompt [, title] [, default] [, xpos] [,ypos] [, helpfile, context] )
El formato de la función InpuBox consta de los siguientes argumentos con nombre:
Parte Descripción
Lenguaje BASIC
22
Prompt Requerido. Expresión de cadena que se muestra como mensaje en el cuadro
de diálogo. La longitud máxima de prompt es de aproximadamente de 1024
caracteres, según el ancho de los caracteres utilizados. Si prompt consta de más de
una línea, puede separarlos utilizando un carácter de retorno de carro (Chr(13)), un
carácter de avancede línea (Chr(10)) o una combinación de los caracteres de
retorno de carro – avance de línea (Chr(13) y (Chr(10)) entre cada línea y la siguiente.
Title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si omite title, en la barra de título se coloca el nombre de la aplicación.
Default Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuesta predeterminada. Si omite default, se muestra el cuadro de texto vacío.
Xpos Opcional. Expresión numérica que especifica, la distancia en sentido horizontal
entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro de diálogo se centra horizontalmente.
Ypos Opcional. Expresión numérica que especifica, la distancia en sentido horizontal
entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si
se omite ypos, el cuadro de diálogo se coloca aproximadamente un tercio de la
altura de la pantalla, desde el borde superior de la misma.
Helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se
utilizará para proporcionar ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, también deberá especificar context.
Context Opcional. Expresión numérica que es el número de contexto de Ayuda
asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también deberá especificarse helpfile.
.
Función MsgBox()
Los cuadros de mensaje ofrecen un modo simple y rápido de consultar a los usuarios
por información simple o para permitirles tomar decisiones sobre el camino que su
programa debe tomar. Puede usar esta función para mostrar diferentes tipos de mensaje y botones con los cuales el usuario da una respuesta.
Lenguaje BASIC
23
Formato
MsgBox( prompt [, buttons] [, title ] [, helpfile, context] )
EL formato de la función MsgBox consta de los siguientes argumentos:
Parte Descripción
Prompt Requerido. Expresión de cadena que representa el mensaje en el cuadro de
diálogo. La longitud máxima de prompt es de aproximadamente 1024 de caracteres,
según el ancho de los caracteres utilizados. Si prompt consta de más de una línea,
puede separarlos utilizando un carácter de retorno de carro (Chr(13) ) o un carácter
de avance de línea (Chr(10) ), o una combinación de caracteres de retorno de
carro - avance de línea (Chr(13 y Chr(10) ) entre cada línea y la siguiente.
Buttons Opcional. Expresión numérica que corresponde a la suma de los valores que
especifican el número y el tipo de los botones que se pretenden mostrar, el estilo de
icono que se va a utilizar, la identidad del botón predeterminado y la modalidad del
cuadro de mensajes. Si se omite este argumento, el valor predeterminado para buttons es 0.
Title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro
de diálogo. Si se omite title, en la barra de título se coloca el nombre de la
aplicación.
Helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se
utiliza para proporcionar ayuda interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe especificar context.
Context Opcional. Expresión numérica que es igual al número de contexto de Ayuda
asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también se debe especificar helpfile.
Valores
El argumento buttons puede asumir los siguientes valores:
Lenguaje BASIC
24
El primer grupo de valores (0 a 5) describe el número y el tipo de los botones
mostrados en el cuadro de diálogo; el segundo grupo (16, 32, 48, 64) describe el
estilo del icono, el tercer grupo (0, 256, 512, 768) determina el botón predeterminado
y el cuarto grupo (0, 4096) determina la modalidad del cuadro de mensajes. Cuando
se suman números para obtener el valor final del argumento buttons, se utiliza
solamente un número de cada grupo.
Nota: Estas constantes las especifica Visual Basic. Por tanto, el nombre de las mismas
puede utilizarse en cualquier lugar del código en vez de sus valores reales.
Valores devueltos
Nota: Si desea omitir algún argumento, debe incluir el delimitador de coma
correspondiente o utilizar argumentos con nombre.
Ejemplos
Lenguaje BASIC
25
1.3. Generación Cuadros de entrada de datos
Controles TextBox ofrece una forma natural para los usuarios para introducir un valor
en su programa. Por esta razón, tienden a ser los controles de uso más frecuente en
la mayoría de las aplicaciones de Windows. Controles TextBox, que tienen una gran
cantidad de propiedades y eventos, también se encuentran entre los controles
intrínsecos más complejos. En esta sección te guiará a través de las propiedades más
útiles de los controles TextBox y mostrar la forma de resolver algunos de los problemas
que es probable encontrar.
Configuración de las propiedades de un cuadro de texto
• Se puede introducir texto en el cuadro de texto mediante la asignación de la
cadena necesaria para la propiedad de texto del control
• Si el usuario tiene que mostrar varias líneas de texto en un TextBox, establezca
la propiedad Multiline en True
• Para personalizar la combinación de barra de desplazamiento en un cuadro
de texto, establezca la propiedad ScrollBars.
• Las barras de desplazamiento siempre aparecen en el cuadro de texto
cuando la propiedad Multiline se establece en True y la propiedad ScrollBars está
establecido en nada más que ninguno (0)
• Si se establece la propiedad Multiline en true, se puede establecer la
alineación con la propiedad Alignment. La prueba está justificada a la izquierda por
defecto. Si la propiedad Multiline está a False et, a continuación, establecer la
propiedad de alineación no tiene ningún efecto.
Tiempo de ejecución de propiedades de un control TextBox
La propiedad Text es el que usted referencia más a menudo en el código, y
convenientemente es la propiedad predeterminada del control TextBox. Otras tres
propiedades utilizadas son las siguientes:
• La propiedad SelStart establece o devuelve la posición del cursor
parpadeando (el punto de inserción en el texto que escriba aparecerá). Tenga en
cuenta que el cursor parpadeante dentro de los controles TextBox y otro se llama
símbolo de intercalación, para distinguirla de la del cursor (que es implícitamente el
cursor del ratón). Cuando el cursor está al principio del contenido del control TextBox,
SelStart devuelve 0, cuando está en la final de la cadena tecleada por el usuario,
Lenguaje BASIC
26
SelStart devuelve el valor de Len (Texto). Usted puede modificar la propiedad SelStart
para mover el cursor mediante programación.
• La propiedad SelLength devuelve el número de caracteres en la parte del
texto que ha sido destacada por el usuario, o devuelve 0 si no hay texto resaltado. Se
puede asignar un valor distinto de cero a esta propiedad para seleccionar mediante
programación el texto del código. Curiosamente, se puede asignar a esta propiedad
un valor mayor que la longitud del texto actual sin levantar un error en tiempo de
ejecución.
• La propiedad SelText establece o devuelve la parte del texto que está
seleccionado, o bien devuelve una cadena vacía si no hay texto resaltado. Lo
utilizan para recuperar directamente el texto en negrita, sin tener que texto de la
consulta, SelStart y propiedades SelLength. Lo que es aún más interesante es que se
puede asignar un nuevo valor a esta propiedad, por lo que sustituye la selección
actual con el suyo propio. Si no hay texto seleccionado en ese momento, la cadena
se introduce fácilmente en la posición del cursor actual.
Cuando se desea añadir texto a un control TextBox, debe utilizar el siguiente código
(en lugar de utilizar el operador de concatenación) para reducir el parpadeo y
mejorar el rendimiento:
Text1.SelStart = Len (Text1.Text)
Text1.SelText = StringToBeAdded
Una de las operaciones habituales que podría encontrarse realizando con estas
propiedades es la selección de todo el contenido de un control TextBox. A menudo
lo hacen cuando el cursor entra en el campo para que el usuario pueda cambiar el
valor existente por uno nuevo, o comenzar a editarlo pulsando cualquier tecla de la
flecha:
Privado Text1_GotFocus Sub ()
Text1.SelStart = 0
"Un valor muy alto siempre hace el truco.
Text1.SelLength = 9999
End Sub
Siempre se establece la propiedad SelStart primero y luego el SelLength o SelText.
Cuando se asigna un nuevo valor a la propiedad SelStart, los otros dos se restablece
automáticamente a 0 y una cadena vacía, respectivamente, reemplazando así a su
configuración anterior.
El texto seleccionado puede ser copiado en el portapapeles utilizando SelText:
Clipboard.SelText texto, [formato]
Lenguaje BASIC
27
En la sintaxis anterior, el texto es el texto que tiene que ser colocado en el
portapapeles, y el formato tiene tres valores posibles.
1. VbCFLink - Información conversación
2. VbCFRTF - formato de texto enriquecido
3. VbCFText - Texto
Podemos obtener el texto del portapapeles utilizando el GetText () de la siguiente
manera:
Clipboard.GetText ([formato])
La figura a continuación se resumen las propiedades del control TextBox comunes y
los métodos.
Propiedad /
Método
Descripción
Propiedades
Activado especifica si el usuario puede interactuar con este
control o no
Índice Especifica el índice de la matriz de control
Cerrado Si este control se establece en True el usuario puede
utilizar más si este control se establece en false el control
no puede ser utilizado
MaxLength Especifica el número máximo de caracteres a la
entrada. El valor por defecto es 0 que significa que el
usuario puede introducir cualquier número de
caracteres
MousePointer El uso de este podemos establecer la forma del puntero
del ratón cuando más de un TextBox
Multilínea Al establecer esta propiedad en verdadero usuario
puede tener más de una línea en el cuadro de texto
PasswordChar Consiste en especificar carácter de máscara que se
muestra en el cuadro de texto
ScrollBars Esto para establecer cualquiera de las barras de
desplazamiento vertical u horizontal para hacer barras
de desplazamiento aparecen en el cuadro de texto. El
usuario también puede establecer que tanto vertical
Lenguaje BASIC
28
como horizontal. Esta propiedad se utiliza con la
propiedad Multiline.
Texto Especifica el texto que se mostrará en el cuadro de
texto en tiempo de ejecución
ToolTipIndex Esto se utiliza para mostrar lo que se muestra el texto o
en el control
Visible Mediante el establecimiento de este usuario puede
hacer que el control de cuadro de texto visible o
invisible en tiempo de ejecución
Método
SetFocus Las transferencias se centran en el cuadro de texto
Los
procedimientos
de evento
Cambio Acción se produce cuando el cuadro de texto los
cambios
Clic Acción se produce cuando se hace clic en el cuadro
de texto
GotFocus Acción se produce cuando el cuadro de texto recibe el
foco activo
LostFocus Acción se produce cuando el cuadro de texto pierde el
foco
KeyDown Se le llama cuando se presiona una tecla mientras el
cuadro de texto tiene el foco
KeyUp Se le llama cuando se suelta una tecla mientras el
cuadro de texto tiene el foco
Lenguaje BASIC
29
1.4. Declaración de variables locales y globales
Un tipo de dato determina la naturaleza del dominio de valores que puede
tomar una variable, las operaciones en que puede participar y el
espacio de memoria que necesita. La tabla
Siguiente muestra los tipos de datos, incluyendo el tamaño de almacenamiento y el intervalo
Tipo
Descripción
Carácter de
declaración
Rango
Boolean Binario True o False
Byte Entero corto 0 a 255
Integer Entero (2 bytes) % -32768 a 32767
Long Entero largo (4 bytes) & -2147483648 a
2147483647 Single Real simple precisión (4
bytes )
! -3.40E+38 a 3.40E+38
Double Real doble precisión ( 8
bytes)
# -1.79D+308 a
1.79D+308
Currency Número con punto decimal
fijo (8 bytes)
@ -9.22E+14 a 9.22E+14
String Cadena de
caracteres (4 bytes +
1 byte/car hasta 64 K)
$ 0 a 65500 caracteres.
Date Fecha (8 bytes) 1 de enero de 100 a 31
de diciembre de
9999. Indica también
la hora, desde 0:00:00
a 23:59:59.
Variant Fha/h
ora;
números enteros, reales,
o caracteres (16 bytes +
1 byte/car. en cadenas
de caracteres)
ninguno F/h: como Date
números: mismo
rango que el tipo de
valor almacenado
Lenguaje BASIC
30
Nota: Las matrices de cualquier tipo de datos requieren 20 bytes de memoria más
cuatro bytes para cada dimensión de matriz, más el número de bytes que ocupan
los propios datos. Por ejemplo, los datos de una matriz unidimensional que constan
de cuatro elementos de datos tipo Integer de dos bytes cada uno, ocupan ocho
bytes. Los ocho bytes que requieren los datos más los 24 bytes necesarios para la
matriz suman un requisito total de memoria de 32 bytes para dicha matriz. Un tipo
Variant que contiene una matriz requiere 12 bytes más que la matriz por sí sola.
Convertir tipos de datos
Visual Basic proporciona varias funciones de conversión que puede utilizar para
convertir valores de tipos de datos específicos. Por ejemplo, para convertir un valor a
Currency, utilice la función Ccur:
User-
defined
Cualquier tipo de dato o
estructura de datos. Se
crean utilizando la
sentencia Type (Ver
Apartado 3.10)
ninguno
Lenguaje BASIC
31
Nota: Los valores que se pasan a una función de conversión deben ser válidos para
el tipo de dato de destino o se producirá un error. Por ejemplo, si intenta convertir un
tipo Long en un Integer, el tipo de Long debe de estar en el intervalo válido del tipo
de dato Integer.
Variables
Las variables se utilizan para almacenar valores temporalmente durante la ejecución
de una aplicación. Las variables tienen un nombre (la palabra que utiliza para
referirse al valor que contiene la variable) y un tipo de dato (que determina la clase
de dato que la variable puede almacenar).
Almacenamiento y recuperación de datos en variables
Utilice una sentencia de asignación para realizar cálculos y asignar el resultado a una
variable:
ManzanaVendidas = 10 „ Se pasa el valor 10 a la variable
ManzanasVendidas = ManzanasVendidas + 1
Observe que el signo igual del ejemplo es un operador de asignación, no un
operador de igualdad; el valor 10 se asigna a la variable ManzanasVendidas.
Declaración de Variables
Declarar una variable es decirle al programa algo de antemano. Se declara una
variable mediante la instrucción Dim, proporcionando un nombre a la variable,
según la siguiente sintaxis:
Dim nombre-variable [As tipo]
Las variables que se declaran en un procedimiento mediante la sentencia Dim sólo
existen mientras se ejecuta el procedimiento. Cuando termina el procedimiento,
desaparece el valor de la variable. Además, el valor de una variable de un
procedimiento es local a dicho procedimiento; es decir, no puede tener acceso a
una variable de un procedimiento desde otro procedimiento. Estas características le
permiten utilizar los mismos nombres de variables en distintos procedimientos sin
preocuparse por posibles conflictos o modificaciones accidentales.
El nombre de una variable debe cumplir con los siguientes requisitos:
Debe comenzar con una letra.
No puede incluir un punto o un carácter de declaración de tipo
($,&,!,%,#,@).
No debe exceder de 255 caracteres.
Lenguaje BASIC
32
Debe ser única en el mismo alcance, que es el intervalo desde el que se
puede hacer referencia a la variable: un procedimiento, formulario, etc.
La cláusula opcional As tipo de la sentencia Dim le permite definir el tipo de dato o
de objeto de la variable que va a declarar. Los tipos de datos definen el tipo de
información que almacena la variable. Algunos ejemplos de tipos de datos son
String, Integer y Currency. Las variables también pueden contener objetos de
Visual Basic u otras aplicaciones. Algunos ejemplos de tipos de objeto de Visual
Basic, o clases, son Object, Form1 y TextBox.
Hay otras formas de declarar variables:
Declarar una variable en la sección Declaraciones de un módulo de
formulario, estándar o de clase, en vez de un procedimiento, hace que la
variable esté disponible para todos los procedimientos del módulo.
Declarar una variable mediante la palabra clave Public hace que esté
accesible para toda la aplicación.
Declarar una variable local mediante la palabra clave Static conserva su valor
aunque termine el procedimiento.
Declaración Implícita
No tiene por qué declarar una variable antes de utilizarla. Por ejemplo, podría escribir
una función donde no hiciera falta declarar TempVal antes de utilizarla:
Function Raíz (num)
TempVal = Abs (num) Raíz = Sqr(TempVal)
End Function
Visual Basic crea automáticamente una variable con ese nombre, que puede utilizar
como si la hubiera declarado explícitamente. Aunque es cómodo, puede provocar
errores sutiles en el código si se equivoca de nombre de variable. Por ejemplo,
suponga que ha escrito esta función:
Function Raíz (num)
TempVal = Abs (num) Raíz = Sqr (TemVal)
Lenguaje BASIC
33
End Function
A primera vista, parece igual. Pero como se ha escrito erróneamente la variable
TempVal en la tercera línea, la función devolverá siempre cero. Cuando Visual Basic
encuentra un nombre nuevo, no puede averiguar si realmente desea declarar una
variable nueva o simplemente ha escrito de forma errónea una variable existente,
por lo que crea una variable nueva con ese nombre.
Declaración Explícita
Para evitar problemas al equivocarse de nombre en las variables, puede configurar
Visual Basic para que le avise siempre que encuentre un nombre que no se haya
declarado explícitamente como una variable.
Para declarar variables de forma explícita:
Incluya esta sentencia en la sección Declaraciones Generales del
módulo de clase, de formulario o estándar:
Option Explicit
- o bien -
En el menú Herramientas, elija Opciones, haga clic en la ficha Editor y active la
opción Declaración de variables requerida. Esto inserta automáticamente la
sentencia Option Explicit en los módulos nuevos, pero no en los ya creados, por lo
que tendrá que agregar manualmente Option Explicit a los módulos existentes en el
proyecto.
Si hubiera tenido efecto dicha instrucción en el módulo de formulario o módulo
estándar que contiene la función Raíz, Visual Basic habría reconocido TempVal y
TemVal como variables no declaradas y habría generado errores para ambas.
Debería, por tanto, declara explícitamente TempVal:
Function Raíz (num) Dim TempVal
TempVal = Abs (num)
Raíz = Sqr (TemVal) End Fuction
Alcance de las Variables
El alcance de una variable define en qué partes del código son reconocidas.
Cuando declara una variable en un procedimiento, sólo el código de dicho
procedimiento puede tener acceso o modificar el valor de la variable; tiene un
alcance local al procedimiento. A veces, sin embargo, se necesita utilizar una
variable con un alcance más general, como aquella cuyo valor está disponible para
todos los procedimientos del mismo módulo o incluso para todos los procedimientos
Lenguaje BASIC
34
de toda la aplicación. Visual Basic le permite especificar el alcance de una variable
cuando la declara.
Establecido el alcance de las variables
Dependiendo de cómo se declara, una variable tiene como alcance un
procedimiento (local) o un módulo.
Variables utilizadas en un módulo
De forma predeterminada, una variable al nivel de módulo está disponible para
todos los procedimientos del módulo, pero no para el código de otros módulos. Cree
variables al nivel de módulo declarándolas con la palabra clave Private en la
sección Declaraciones Generales al principio del módulo. Por ejemplo
Private intTemp As Integer
Al nivel de módulo, no hay diferencia entre Private y Dim, pero es preferible usar
Private porque contrasta con Public y hace que el código sea más fácil de
comprender.
Variables utilizadas por todos los módulos
Para hacer que una variable al nivel de módulo esté disponible para otros módulos,
utilice la palabra clave Public para declararlas. Los valores de las variables públicas
están disponibles para todos los procedimientos de la aplicación. Al igual que todas
las variables al nivel del módulo, las variables públicas se declaran en la sección
Declaraciones Generales al principio del módulo. Por ejemplo:
Public intTemp As Integer
Nota: No puede declarar variables públicas en un procedimiento, sólo en la
sección
Declaraciones Generales de un módulo.
Constantes
A menudo verá que el código contiene valores constantes que reaparecen una y
otra vez. O puede que el código dependa de ciertos números que resulten difíciles
de recordar (números que, por sí mismos, no tienen un significado obvio).
En estos casos, puede mejorar mucho la legibilidad del código y facilitar su
mantenimiento si utiliza constantes. Una constante es un nombre significativo que
sustituye a un número o una cadena que no varía. Aunque una constante recuerda
ligeramente a una variable, no puede modificar una constante o asignarle un valor
nuevo como ocurre con una variable. Hay dos orígenes para las constantes:
Lenguaje BASIC
35
Constantes intrínsecas o definidas por el sistema proporcionadas por Visual
Basic.
Las constantes simbólicas o definidas por el usuario se declaran mediante
la instrucción Const.
Creación de sus propias constantes
La sintaxis para declarar una constante es la siguiente:
[Public|Private] Const nombre_constante [As tipo] = expresión
El argumento nombre_constante es un nombre simbólico válido (las reglas son las
mismas que para crear nombres de variable) y expresión está compuesta por
constantes y operadores de cadena o numéricos; sin embargo, no puede utilizar
llamadas a funciones en expresión. Una instrucción Const puede representar una
cantidad matemática o de fecha y hora:
Const conPi = 3.14159265358979
Public Const conMaxPlanetas As Integer = 9
Const conFechaSalida = #1/1/95#
Se puede utilizar también la instrucción Const para definir constantes de cadena
Public Const conVersion = “ 07.10.A” Const conNombreClave =
“Enigma”
Puede colocar más de una declaración de constante en una única línea si las
separa con comas:
Public Const conPi=3.14, conMaxPlanetas=9, conPobMundial=6E+09
A menudo, la expresión del lado derecho del signo igual ( = ) es un número o cadena
literal, pero también puede ser una expresión que dé como resultado un número o
una cadena (aunque la expresión no puede contener llamadas a funciones).
Puede incluso definir constantes en términos de constantes previamente definidas:
Const conPi2 = conPi * 2
Una vez que defina las constantes, puede colocarlas en el código para hacerlo más
legible. Por ejemplo:
Static SistemaSolar (1 To conMaxPlanetas)
If numPersonas > conPopMundial Then Exit Sub
Lenguaje BASIC
36
Alcance de las constantes definidas por el usuario
Una instrucción Const tiene igual alcance que una declaración de variable y se le
aplican las mismas reglas:
Para crear una constante que sólo exista en un procedimiento,
declárela dentro del procedimiento.
Para crear una constante disponible para todos los procedimientos de
un módulo, pero no para el código que está fuera del módulo,
declárela en la sección Declaraciones Generales del módulo.
Para crear una constante disponible en toda la aplicación, declare la
constante en la sección Declaraciones Generales de un módulo
estándar y coloque delante de Const la palabra clave Public. No se
pueden declarar las constantes públicas en un módulo de clase o de
formulario.
Evitar referencias circulares
Como es posible definir constantes en términos de otras constantes, deberá tener
cuidado para no establecer un ciclo o referencia circular entre dos o más
constantes. Se produce un ciclo cuando se tienen dos o más constantes públicas,
cada una de las cuales está definida en función de la otra. Por ejemplo:
'En el Módulo 1:
Public Const conA = conB * 2 ' Disponible en toda la aplicación
'En el Módulo 2:
Public Const conB = conA / 2 ' Disponible en toda la aplicación
Si se produce un ciclo, Visual Basic generará un error cuando intente ejecutar la
aplicación. No puede ejecutar el código hasta que resuelva la referencia circular.
Para evitar la creación de un ciclo, restrinja todas las constantes públicas a un único
módulo o, al menos, al menor número posible de módulos.
Convenciones para Nombres de Constantes y Variables
Las variables se deben definir siempre con el menor alcance posible. Las variables
globales (públicas) pueden hacer lógica de una aplicación muy difícil de entender.
Las variables globales también hacen más difícil mantener y volver a usar el código.
Lenguaje BASIC
37
En Visual Basic las variables pueden tener el alcance siguiente:
Alcance Declaración Visible en
Nivel de procedimiento Dim o Static en el El procedimiento en el
Procedimiento, que está declarada
Subprocedimiento o
Función
Alcance Declaración Visible en
Nivel de módulo Private en la sección
Declaraciones Generales Todos los procedimientos
del módulo de formulario
de un módulo de o de código
formulario o de código
(.frm, .bas)
Global Public en la sección
Declaraciones Generales En toda de aplicación
de un módulo de código
(.bas)
En una aplicación de Visual Basic, las variables globales se deben usar sólo cuando
no exista ninguna otra forma cómoda de compartir datos entre formularios. Cuando
haya que usar variables globales, es conveniente declararlas todas en un único
módulo agrupadas por funciones y dar al módulo un nombre significativo que
indique su finalidad, como Públicas.
Una práctica de codificación correcta es escribir código modular siempre que sea
posible. Por ejemplo, si la aplicación muestra un cuadro de diálogo, coloque todos
los controles y el código necesario para ejecutar la tarea del diálogo en un único
formulario. Esto ayuda a tener código de la aplicación organizado en componentes
útiles y minimiza la sobrecarga en tiempo de ejecución.
Lenguaje BASIC
38
A excepción de las variables globales ( que no se deberían pasar), los
procedimientos y funciones deben operar sólo sobre los objetos que se les pasan.
Prefijos de alcance de variables
A medida que aumenta el tamaño del proyecto, también aumenta la utilidad de
reconocer rápidamente el alcance de las variables. Esto se consigue escribiendo un
prefijo de alcance de una letra delante del prefijo de tipo, sin aumentar demasiado
la longitud del nombre de las variables.
Alcance Prefijo Ejemplo
Global g gstrNombreUsuario
Nivel de módulo m mblnProgresoDelCálculo
Local del Procedimiento Ninguno dblVelocidad
Una variable tiene alcance global si se declara como Public en un módulo estándar
o en un módulo de formulario. Una variable tiene alcance de nivel de módulo si se
declara como Private en un módulo estándar o en un módulo de formulario,
respectivamente.
Nota: La coherencia es crucial para usar esta técnica de forma productiva; el
corrector de sintaxis de Visual Basic no interceptará las variables de nivel de módulo
que comience con “p”.
Constantes
El nombre de las constantes se debe escribir en mayúsculas y minúsculas, con la letra
inicial de cada palabra en mayúsculas. Aunque las constantes estándar de Visual
Basic no incluyen información de tipo de datos y el alcance de una constante. Para
los nombres de constantes, se deben seguir las mismas normas que para las variables.
Por ejemplo:
mintMáxListaUsuario „ Límite de entradas máximas para la
„ lista de usuarios
„ (valor entero, local del módulo)
gstrNuevaLínea „ Carácter de nueva línea
„ (cadena, global de la aplicación)
Lenguaje BASIC
39
Variables
Declarar todas las variables ahorra tiempo de programación porque reduce el
número de errores debidos a nombres de variables errados (por ejemplo,
aNombreUsuarioTmp frente a sNombreUsuarioTmp frente a
sNombreUsuarioTemp). En la ficha Editor del cuadro de diálogo Opciones,
active la opción Declaración de variables requerida. La instrucción Option Explicit
requiere que declare todas las variables del programa de Visual Basic.
Las variables deben llevar un prefijo para indicar su tipo de datos. Opcionalmente, y
en especial para programas largos, el prefijo se puede ampliar para indicar el
alcance de la variable.
Lenguaje BASIC
40
1.5. Utilización de operadores aritméticos de
comparación y lógicos.
OPERADORES
Tipo
Operación Operador en
BASIC
Aritmético Exponenciación ^
Cambio de signo (operador unario) -
Multiplicación, división *, /
División entera \
Resto de una división entera Modo
Suma y resta +, -
Concatenación Concatenar o enlazar & +
Relacional Igual a =
Distinto <>
Menor que / menor o igual que < <=
Mayor que / mayor o igual que > >=
Otros Comparar dos expresiones de
caracteres
Like
Comparar dos referencias a objetos Is
Lógico Negación Not
And And
Or inclusivo Or
Or exclusivo Xor
Equivalencia (opuesto a Xor) Eqv
Implicación (False si el primer
operando es True
y el segundo operando es False)
Imp
Lenguaje BASIC
41
Cuando en una expresión aritmética intervienen operandos de diferentes
tipos, el resultado se expresa, generalmente, en la misma precisión que la del
operando que la tiene más alta. El orden, de menor a mayor, según la
precisión es Integer, Long, Single, Double y Currency. Los operadores relacionales, también conocidos como operadores de
comparación, comparan dos expresiones dando un resultado True
(verdadero), False (falso) o Null (no válido). El operador & realiza la concatenación de dos operandos. Para el caso
particular de que ambos operandos sean cadenas de caracteres, puede
utilizarse también el operador +. No obstante, para evitar ambigüedades
(sobre todo con variables de tipo Variant) es mejor utilizar &. El operador Like sirve para comparar dos cadenas de caracteres. La sintaxis
para este operador es la siguiente: Respuesta = Cadena1 Like Cadena2 donde la variable Respuesta será True si la Cadena1 coincide con la
Cadena2, False si no coinciden y Null si Cadena1 y/o Cadena2 son Null. Para obtener más información se puede consultar el Help de Visual Basic.En
Visual Basic existen 6 operadores para realizar comparaciones entre valores:
Operador Descripción
< Menor que
<= Menor o igual a
> Mayor que
>= Mayor o igual a
= Igual
<> No Igual o Diferente
Operadores Lógicos
Cuando Visual Basic compara 2 expresiones, regresa uno de dos valores
posibles: True o False, pero Visual Basic no entiende True o False por lo que
utiliza valores numéricos para representarlos, True o False son valores booleanos
donde 0 es False y 1 es True.
En Visual Basic existen 6 operadores lógicos:
Operador Descripción
And Cuando ambas expresiones son verdaderas
Or Evalua una de dos expresiones
Not Niega una expresión
Xor La expresión completa se considera verdadera, si las 2
expresiones evaluadas no son verdaderas o ambas son
falsas
Lenguaje BASIC
42
Eqv Ambas expresiones debe ser verdaderas o falsas para
evaluar la expresión completa como verdadera
Imp La expresión completa es verdadera excepto cuando la
primer expresión es verdadera y la segunda expresión es
falsa
Operadores aritméticos
Estos operadores nos permiten trabajar con cálculos matemáticos como la
suma (+), resta (-), división (/) y multiplicación (*).
Ejemplos:
a = 5
b = 15
c = a + b ' en este caso la variable c contendría el valor 20
Ganancia = 500
perdida = 200
total = ganancia - perdida 'la variable total pasaría a valer 300
x = 100
y = 20
z = x / y ' La Variable z vale 5
x = 100
y = 20
z = x * y ' La Variable z vale 2000
Operadores lógicos
Se utilizan en expresiones para devolver resultados del tipo True o False, es
decir Verdadero o falso. Los más comunes son el operador And y el operador
Or
Ejemplos:
If (x = 10) And (nombre = "maría") Then
'solo se ejecutará el código dentro de este bloque IF si la variable
'x vale 10 y la variable nombre es igual a maría
End If
Lenguaje BASIC
43
If (m = 10) Or (nombre = "pedro") Then
'el código se ejecutará si por lo menos una variable es correcta
'es decir si por lo menos se cumple una condición
End If
Operadores de comparación
Los operadores de comparación se utilizan para comparar expresiones de
cualquier tipo. Los más importantes son: El operador de igualdad (=), menor
que (<), mayor que (>), distinto a(<>)
Ejemplos:
If label1.Caption = "06/08/1978" Then
'si el control label1 en su caption contiene esa fecha
'se ejecutará el código que este aquí
End If
if x > 6 then
'si la variable x es mayor que 6 se ejecutará el código que este aquí
end if
If país <> "Estados unidos" Then
'si la variable país es distinta a "Estados unidos" se ejecutará el código
End If
While c <= 87
'mientras la variable c sea menor o igual a 87 se ejecutará
'el bucle While
Wend
Por último quedaría por ver el operador de concatenación (&) que se utiliza
para unir cadenas de caracteres.
Por ejemplo:
nombre = "José"
apellido = "Peralta"
nombrecompleto = nombre & apellido
'La variable nombrecompleto pasaría a contener la unión de las otras dos
Lenguaje BASIC
44
variables
'es decir José Peralta