Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Intro VB6
Intro VB6
1
Por amigable se entiende un lenguaje cuya interfaz de comunicación con el usuario es clara y sencilla de
entender.
CARLOS ARMANDO CUEVAS VALLEJO
2
INTRODUCCION A VISUAL BASIC 6.0
3
CARLOS ARMANDO CUEVAS VALLEJO
4
INTRODUCCION A VISUAL BASIC 6.0
5
CARLOS ARMANDO CUEVAS VALLEJO
6
INTRODUCCION A VISUAL BASIC 6.0
Observación
7
CARLOS ARMANDO CUEVAS VALLEJO
Nota
A veces para obtener la ventana deseada para trabajar es
necesario ajustarla mediante las barras al lado izquierdo y
debajo de la ventana de forma (véase figura 3.9).
8
INTRODUCCION A VISUAL BASIC 6.0
9
CARLOS ARMANDO CUEVAS VALLEJO
Figura 3.13.
Ventana para definir tipo, tamaño
y cualidad del texto.
Figura 3.12.
Propiedades del objeto
etiqueta.
10
INTRODUCCION A VISUAL BASIC 6.0
11
CARLOS ARMANDO CUEVAS VALLEJO
(transparente).
BorderStyle (Estilo del borde). Al hacer clic a la derecha,
aparece una punta de flecha que al oprimirla permite elegir
entre dos opciones 1-Fixed Single (arreglo único) o 0-none
(ninguno).
Enabled (Habilitado). Esta propiedad habilita o deshabilita un
objeto. De nuevo esta propiedad queda definida como variable
lógica y por ende tiene el valor False (Falso) para
deshabilitar o True (verdadero) para habilitar. En este caso
será True.
ForeColor (Color de texto). Como su nombre lo indica define el
color del texto y se opera en forma semejante a BackColor.
Height (altura o ancho). Define la altura de la etiqueta de un
objeto en twips.
El twip es una unidad independiente de la pantalla utilizada
para asegurar que la colocación y la proporción de los
elementos de la pantalla de la aplicación son los mismos en
todos los sistemas de pantallas. Un twip es una unidad de
medida de la pantalla igual a 1/20 de un punto de impresora.
Existen aproximadamente 1440 twips en una pulgada lógica o
567 twips en un centímetro lógico (la longitud de un elemento
de pantalla que mide una pulgada o un centímetro al
imprimirse).
Width (largo). Define el largo de la etiqueta u objeto y
también se mide en twips.
Index (índice). Cuando se definen varios objetos de etiqueta
con el mismo nombre, para distinguirlos a cada uno de ellos
12
INTRODUCCION A VISUAL BASIC 6.0
13
CARLOS ARMANDO CUEVAS VALLEJO
14
INTRODUCCION A VISUAL BASIC 6.0
Tip
Cuando se desea ajustar un marco (frame) o cualquier otro
objeto, puede ajustarlo en la misma forma haciendo uso de los
cuadritos de ajuste de cualquier control. Una vez que llegue
15
CARLOS ARMANDO CUEVAS VALLEJO
16
INTRODUCCION A VISUAL BASIC 6.0
17
CARLOS ARMANDO CUEVAS VALLEJO
18
INTRODUCCION A VISUAL BASIC 6.0
19
CARLOS ARMANDO CUEVAS VALLEJO
que ver con la memoria que ocupa una variable de este tipo.
Sin embargo, si se desea un mayor rango puede optar por Long.
Long. Las variables Long (enteros largos) se almacenan como
números con signo de 32 bits (4 bytes) con un valor
comprendido entre -2,147,483,648 y 2147,483,647. El carácter
de declaración de tipo para Long es el signo &.
Observe que Long ocupa el doble de memoria que Integer.
La otra variable numérica usual es Double.
20
INTRODUCCION A VISUAL BASIC 6.0
21
CARLOS ARMANDO CUEVAS VALLEJO
Por ejemplo
N=rnd*4 Esta operación devuelve en N, un número de tipo
single mayor o igual a 0 y menor a 4.
Observe que el valor de una función debe asignarse a una
variable. De no ser así el programa marcaría un error por que
no sabría que hacer con el valor que la función devuelve.
Es conveniente anotar que esta función no genera números
aleatorios en sentido estricto, sino que los genera en un
cierto orden. Es por eso que suele llamarse a esta función
SEUDOALEATORIA. Si uno quisiera simular una generación de
números aleatorios es conveniente utilizar la función
22
INTRODUCCION A VISUAL BASIC 6.0
Randomize.
Randomize [número]: El argumento opcional número es un tipo
Variant o cualquier expresión numérica válida.
La instrucción Randomize utiliza número para inicializar el
generador de números aleatorios de la función Rnd y le asigna
un nuevo valor de semilla. Si omite número, el valor devuelto
por el reloj del sistema se usa como el nuevo valor de
semilla.
Si no utiliza la instrucción Randomize, la función Rnd (sin
argumentos) utiliza el mismo número como valor de semilla la
primera vez que se la invoca, usando después como valor de
semilla el último número generado.
Otra función que utilizaremos es la función Int.
Int(número). Esta función entrega o devuelve la parte entera de
un número double o single. Si el número es mayor que uno
devuelve la parte entera si es menor a uno entrega cero.
Finalmente también utilizaremos una instrucción de ciclo
numérico el cual tiene la siguiente estructura:
For i = k to n
Instrucción 1
Instrucción 2
……
Next i
Esta instrucción ejecuta las instrucciones dentro del cuerpo
For-next tantas veces como lo indique el contador desde k
hasta n aumentando de uno en uno.
La sintaxis se describe a continuación
For contador = principio To fin [Step incremento]
23
CARLOS ARMANDO CUEVAS VALLEJO
[instrucciones]
[Exit For]
[instrucciones]
Next [contador]
La sintaxis consta de las siguientes partes:
Parte Descripción
Comentarios
El incremento puede ser positivo o negativo. El valor del
argumento incremento determina la manera en que se procesa el
bucle, como se muestra a continuación:
24
INTRODUCCION A VISUAL BASIC 6.0
25
CARLOS ARMANDO CUEVAS VALLEJO
If condición Then
[instrucciones]
[Else
[instrucciones_else]]
End If
O bien
If condición Then
[instrucciones]
[instrucciones_elseif] ...
[Else
[instrucciones_else]]
End If
26
INTRODUCCION A VISUAL BASIC 6.0
Parte Descripción
Observación
Aunque puede utilizar If-then-else-end if en la forma de una
sola línea para pruebas cortas y sencillas. El formato de
bloque proporciona más estructura y flexibilidad que la forma
de línea simple y, generalmente, es más fácil de leer, de
mantener y de depurar.
27
CARLOS ARMANDO CUEVAS VALLEJO
Tips
-El bloque If debe terminar con una instrucción End If. En
caso contrario se marca error.
-Para determinar si una instrucción If es un bloque, examine
lo que sigue a la palabra Then. Si lo que aparece detrás de
Then en la misma línea no es un comentario, la instrucción se
considera como una instrucción If de una sola línea.
-Las cláusulas Else y ElseIf son opcionales. Puede tener en
un bloque ElseIf, tantas cláusulas If como desee, pero
ninguna puede aparecer después de una cláusula Else.
-Las instrucciones de bloque If se pueden anidar; es decir,
unas pueden contener a otras.
Ejemplo
If n > 3 then ‘Si el valor de n > que 3 entonces
lblMelate.Caption= “Ya jugaste tres partidas” ‘asigna
un rotulo
else ‘En caso contrario (si n<=3)
lblmelate.Caption=”Sigue jugando, puedes ganar” ‘Asigna
otro rotulo
end if ‘Fin de bloque if
Observación
Note que tanto en un bloque de tipo if-then-else-end if; como
en for-next. Las instrucciones del bloque se escriben con una
cierta sangría para de esta forma tener a simple vista la
longitud del bloque y las instrucciones que contiene.
28
INTRODUCCION A VISUAL BASIC 6.0
Dim j As Integer ‘Declara j como variable entera para tener otro contador
Dim propu As Integer ‘Declara propu como variable entera para tener un valor
Dim num(5) As Integer ‘Declara 6 variables enteras para almacenar los números
‘Contamos con 6 lugares o memorias para poner en ellas los números que se irán
‘generando en forma aleatoria para la combinación. ‘El primer lugar lo ocupa un número que
‘num(0)
‘1 hasta 5
29
CARLOS ARMANDO CUEVAS VALLEJO
If num(j) = propu Then ‘instrucción de tipo lógico si propu es igual al valor que
End Sub ‘Fin del bloque de la subrutina del evento click asociado al botón
Ejercicios y preguntas:
¿Qué sucede si eliminamos del programa la instrucción if con
todo y bloque?
¿Por qué el bloque For con contador j decrece? ¿No sería
posible cambiarlo por uno con contador creciente?
¿Por qué se ocupan exactamente las seis etiquetas? ¿Es la
única manera de realizar este programa?
¿Qué pasa si melate cambia y ahora son 68 números posibles,
sirve el programa? Prueba tu respuesta
¿Qué sucede si ahora se tiene que elegir 8 números entre 82?
¿Puedes adaptar el programa?
30
INTRODUCCION A VISUAL BASIC 6.0
Nota
Cuando se comete un error de sintaxis el programa al compilar
(traducirlo a lenguaje de máquina) marca exactamente (hasta
donde se pueda) el error. Así que no se preocupe empiece a
programar puesto que la única forma de tener cierta destreza
en programación es mediante ensayo y error.
Segundo proyecto
Programa para ayudar a sumar dos números enteros
Este segundo proyecto es un programa para ayudar a sumar dos
números enteros. Como todos los proyectos de programación, se
propondrá una forma de hacerlo y queda en libertad el autor
31
CARLOS ARMANDO CUEVAS VALLEJO
32
INTRODUCCION A VISUAL BASIC 6.0
33
CARLOS ARMANDO CUEVAS VALLEJO
34
INTRODUCCION A VISUAL BASIC 6.0
35
CARLOS ARMANDO CUEVAS VALLEJO
36
INTRODUCCION A VISUAL BASIC 6.0
37
CARLOS ARMANDO CUEVAS VALLEJO
38
INTRODUCCION A VISUAL BASIC 6.0
39
CARLOS ARMANDO CUEVAS VALLEJO
40
INTRODUCCION A VISUAL BASIC 6.0
Width: 2000
Enseguida podemos definir el segundo botón para lo cual
sugiero para ello copiar el anterior y darle otro nombre.
Tip
Modo alternativo para copiar un objeto o control
Se señala el objeto (botón, caja, etiqueta, etc.) haciendo
clic sobre el mismo (aparecen los cuadritos en el borde para
reajustar el tamaño). Enseguida, con el ratón sobre el objeto
a copiar, se oprime el botón derecho y aparece un menú de
persiana (véase figura 3.25). Se elige Copiar. Enseguida se
hace clic con el botón derecho del ratón en la forma o
contenedor. De inmediato aparece el menú persiana de donde se
elige Pegar (véase figura 3.26) En ese momento se abre una
ventana que nos anuncia si se desea crear una matriz de
controles (botones, etiquetas, etc.) si se oprime el botón de
no inmediatamente aparece otro objeto (botón, etiqueta, etc.)
con las propiedades del que se copió y definidas con
anterioridad salvo el nombre (véase figura 3.16) y posición.
En caso de optar por si aparece otro objeto con el mismo
nombre y propiedades salvo que la propiedad Index (índice)
aumenta en uno.
41
CARLOS ARMANDO CUEVAS VALLEJO
(Nombre) cmdCancelar.
Apearance: 1-3D
BackColor: El que guste de la paleta
Font; tipo=Snap ITC; tamaño=12, cualidad=normal (O el que
guste)
Caption: Cancelar
Height: 600
Style: 1-Graphical
Width: 2000
Vayamos ahora a definir los letreros que aparecerán cuando el
estudiante-usuario cometa un error o un acierto.
La idea será que cuando el estudiante cometa un error
aparezca un letrero con una figura. Para ello se definirá un
frame (véase pág. 15) con las siguientes características
(Nombre) fraSuma1.
Las iniciales fra son las que anteceden o parte del nombre
para cualquier frame o marco.
Apearance: 1-3D
BackColor: El que guste de la paleta
42
INTRODUCCION A VISUAL BASIC 6.0
43
CARLOS ARMANDO CUEVAS VALLEJO
44
INTRODUCCION A VISUAL BASIC 6.0
45
CARLOS ARMANDO CUEVAS VALLEJO
Nota
Esta interfase es muy criticable desde el punto de vista de
diseño y posiblemente desde el pedagógico. Con respecto al
diseño hemos utilizado demasiado colores y muy vivos, los
cuales molestarán eventualmente al usuario y también hemos
abusado del tipo y tamaño de las letras. Desde el pedagógico
los botones como revísame serán difícil de leer por un niño
por el tipo de letra. Sin embargo, deseamos mostrar diversos
tipos de letra y como programador es cómodo utilizar muchos
colores para distinguir un objeto del otro.
Option Explicit
46
INTRODUCCION A VISUAL BASIC 6.0
Height = 9000
lblNumEnt(0).Caption = Int(Rnd * 99) ‘Genera un número
aleatorio entre 0 y 98 y se lo asigna a la etiqueta
lblNumEnt(1).Caption = Int(Rnd * 99) ‘Genera un número
aleatorio entre 0 y 98 y se lo asigna a la etiqueta
fraSuma1.Visible = False ‘Oculta el Frame para el mensaje
‘de error
fraSuma2.Visible = False ‘Oculta el Frame para el mensaje
‘de error
End Sub
Pasemos ahora al botón que lleva la responsabilidad del
programa. El botón “Revisame”.
Private Sub cmdSumaEnt_Click() ‘Inicio de subrutina evento
‘click
If (Val(lblNumEnt(0).Caption) + Val(lblNumEnt(1).Caption))
= Val(txtSumaEnt.Text) Then
‘Este If Revisa si la suma de los contenidos en las dos
etiquetas (sumandos) es igual al contenido de lo que escribió
en la caja de texto.
Aquí estamos usando la función Val. Esta función regresa el
valor numérico de una variable de tipo alfanumérica.
Abundemos en esta parte. Dentro de las variables también
tenemos una variable de tipo “cadena” esto es de tipo
caracteres alfanuméricos que pueden no tener ningún sentido
v. gr. A = Y7u5; B = texto, C = lk670#$5, etc. Observe que
para este tipo de variable la expresión “3456” no es un
número, sino sólo caracteres concatenados. Para darle a esta
expresión el carácter numérico es necesario la función Val.
47
CARLOS ARMANDO CUEVAS VALLEJO
48
INTRODUCCION A VISUAL BASIC 6.0
49
CARLOS ARMANDO CUEVAS VALLEJO
50