Ejemplos de programación.
Antes de empezar creamos en el servidor, dentro de la
carpeta “ 4AVbasic
”, una carpeta con nuestro-os números.
Ejemplo
1: Sencillo programa de colores y posiciones
En
|
Control |
Propiedad |
Valor |
Control |
Propiedad |
Valor |
|
frmColores0 |
Nombre |
frmColores0 |
optVerde |
Nombre |
optVerde |
|
|
Caption |
Colores |
|
Caption |
Verde |
|
fraColores |
Nombre |
fraColor |
fraPosicion |
Nombre |
fraPosicion |
|
|
Caption |
Colores |
|
Caption |
Posición |
|
optAzul |
Nombre |
optAzul |
optArriba |
Nombre |
optArriba |
|
|
Caption |
Azul |
|
Caption |
Arriba |
|
optRojo |
Nombre |
optRojo |
optAbajo |
Nombre |
optAbajo |
|
|
Caption |
Rojo |
|
Caption |
Abajo |
|
optAmarillo |
Nombre |
optAmarillo |
txtCaja |
Nombre |
txtCaja |
|
|
Caption |
Amarillo |
|
Text |
“” |
A continuación se muestra el código
correspondiente a los procedimientos de este ejemplo.
Option Explicit
Private Sub Form_Load()
txtCaja.Top = 0
End Sub
Private Sub optArriba_Click()
txtCaja.Top = 0
End Sub
Private Sub optAbajo_Click()
txtCaja.Top = frmColores0.ScaleHeight -
txtCaja.Height
End Sub
Private Sub optAzul_Click()
txtCaja.BackColor = vbBlue
End Sub
Private Sub optRojo_Click()
txtCaja.BackColor = vbRed
End Sub
Private Sub optVerde_Click()
txtCaja.BackColor = vbGreen
End Sub
Private Sub optAmarillo_Click()
txtCaja.BackColor = vbYellow
End Sub
Sobre este primer programa en Visual
Basic 6.0 se pueden hacer algunos comentarios:
1. El comando Option Explicit sirve
para obligar a declarar todas las variables que se utilicen. Esto
impide el cometer errores en los nombres de las variables (confundir masa con
mesa, por ejemplo). En este ejemplo, y en casi todo lo que hagamos este
curso, esto no tiene ninguna importancia, pero es conveniente acostumbrarse a
incluir esta opción. Declarar una variable es crearla con un
nombre y de un tipo determinado antes de utilizarla.
2. Cada una de las partes de código que
empieza con un Private Sub y termina con un End Sub es
un procedimiento, esto es, una parte de código independiente y
reutilizable. El nombre de uno de estos procedimientos, por ejemplo optAzul_Click(),
es típico de Visual Basic. La primera parte es el nombre de un
objeto (control); después va un separador que es el carácter de subrayado (_);
a continuación el nombre de un evento -click, en este caso-, y
finalmente unos paréntesis entre los que irían los argumentos, en caso de que
los hubiera. . Es también interesante ver cómo se accede desde programa a la
propiedad backColor de lacaja de texto que se llama txtCaja:
se hace utilizando el punto en la forma
txtCaja.BackColor. Los colores se podrían también
introducir con notación hexadecimal (comenzando con &H, seguidos por dos
dígitos entre 00 y FF (es decir, entre 0 y 255 en base 10) para los tres
colores fundamentales, es decir para el Red, Green y
Blue (RGB), de derecha a izquierda. Aquí se han utilizado las
constantes simbólicas predefinidas en Visual Basic 6.0: vbRed,
vbGreen y vbBlue .
Recuérdese que si se desea que el código
de todos los eventos aparezca en una misma ventana hay que activar la opción Default
to Full Module View en la solapa Editor del comando Tools/Options.
También puede hacerse directamente en la ventana de código con uno de los
botones que aparecen en la parte inferior izquierda ( ).
3. Las propiedades ScaleHeight y Height
fijan la altura de un objeto.
4. Es muy importante crear
primero el control frame y después, estando seleccionado, colocar
los botones de opción en su interior. No sirve hacerlo a la
inversa. Visual Basic supone que todos los botones de opción que
están dentro del mismo frame forman parte del mismo grupo y sólo
permite que uno esté seleccionado.
Puedes
crear un ejecutable : desplegando
Archivo en la barra de herramientas , y haciendo clic en “ generar colores0.exe”
Ejemplo
2: Minicalculadora elemental
En este ejemplo se muestra una
calculadora elementalque permite hacer las cuatro operaciones aritméticas. Los
ficheros de este proyecto se pueden llamar minicalc.vbp y minicalc.frm. y el ejecutable correspondiente. El usuario
introduce los datos y clica sobre el botón correspondiente a la operación que
desea realizar, apareciendo inmediatamente el resultado en la caja de texto de
la derecha.
|
Control |
Propiedad |
Valor |
Control |
Propiedad |
Valor |
|
frmMinicalc |
Nombre |
frmMinicalc |
lblEqual |
Nombre |
lblEqual |
|
|
Caption |
Minicalculadora
|
|
Caption |
= |
|
txtOper1 |
Nombre |
txtOper1 |
cmdSuma |
Nombre |
cmdSuma |
|
|
Text |
|
|
Caption |
+ |
|
txtOper2 |
Nombre |
txtOper2 |
cmdResta |
Nombre |
cmdResta |
|
|
Text |
|
|
Caption |
- |
|
txtResult |
Nombre |
txtResult |
cmdMulti |
Nombre |
cmdProd |
|
|
Text |
|
|
Caption |
* |
|
lblOp |
Nombre |
lblOp |
cmdDivi |
Nombre |
cmdDiv |
|
|
Caption |
|
|
Caption |
/ |
A continuación se muestra el código
correspondiente a los procedimientos que gestionan los eventos de este ejemplo.
Option Explicit
Private Sub cmdDiv_Click()
txtResult.Text = Val(txtOper1.Text) /
Val(txtOper2.Text)
lblOp.Caption = "/"
End Sub
Private Sub cmdProd_Click()
txtResult.Text = Val(txtOper1.Text) *
Val(txtOper2.Text)
lblOp.Caption = "*"
End Sub
Private Sub cmdResta_Click()
txtResult.Text = Val(txtOper1.Text) -
Val(txtOper2.Text)
lblOp.Caption = "-"
End Sub
Private Sub cmdSuma_Click()
txtResult.Text = Val(txtOper1.Text) +
Val(txtOper2.Text)
lblOp.Caption = "+"
End Sub
En este ejemplo se ha utilizado
repetidamente la función Val() de Visual Basic.
Esta función convierte una serie de caracteres numéricos (un texto formado por
cifras) en el número entero o de punto flotante correspondiente. Sin la llamada
a la función Val() el operador + aplicado a cadenas
de caracteres las concatena (une), y como resultado, por ejemplo, “3+
Ahora añade al código anterior lo
siguiente y prueba a ver lo que pasa:
Private Sub Txtoper1_Change()
If lblop.Caption = "+" Then
Txtresult.Text = Val(Txtoper1.Text) +
Val(Txtoper2.Text)
End If
If lblop.Caption = "-" Then
Txtresult.Text = Val(Txtoper1.Text) -
Val(Txtoper2.Text)
End If
If lblop.Caption = "*" Then
Txtresult.Text = Val(Txtoper1.Text) *
Val(Txtoper2.Text)
End If
If lblop.Caption = "/" Then
Txtresult.Text = Val(Txtoper1.Text) /
Val(Txtoper2.Text)
End If
End Sub
Private Sub Txtoper2_Change()
If lblop.Caption = "+" Then
Txtresult.Text = Val(Txtoper1.Text) +
Val(Txtoper2.Text)
End If
If lblop.Caption = "-" Then
Txtresult.Text = Val(Txtoper1.Text) -
Val(Txtoper2.Text)
End If
If lblop.Caption = "*" Then
Txtresult.Text = Val(Txtoper1.Text) *
Val(Txtoper2.Text)
End If
If lblop.Caption = "/" Then
Txtresult.Text = Val(Txtoper1.Text) /
Val(Txtoper2.Text)
End If
End Sub
Intenta entender cómo funciona una de la
instrucciones más utilizadas en Basic (y prácticamente en todos los lenguajes
de programación). “ if…..then”. La hemos utilizado
recurrentemente “a propósito” pero ya os adelanto que más adelante veremos cómo
podemos simplificar, y mucho, esta situación.
¿Cómo funciona change()?
Ejemplo
3.- Una bromilla.
Este es un ejemplo en el que utilizando
las propiedades top y left podemos gastar una pequeña broma.
Vamos a crear los archivos broma.vbp y broma.frm. Posteriormente
crearemos el ejecutable broma.exe que puedes llevarte en un
disquete o mandártelo por correo, y así enseñar en casa todo lo que aprendes en
clase de Informática. En la tabla tienes
los objetos y las propiedades correspondientes.
|
Control |
Propiedad |
Valor |
Control |
Propiedad |
Valor |
|
Form1 |
Nombre |
Form1 |
cmdno |
Nombre |
cmdno |
|
|
Caption |
Una preguntilla |
|
Caption |
No |
|
|
controlbox |
False |
cmdexit |
Nombre |
cmdexit |
|
|
ShowinTaskbar |
False |
|
Caption |
Ahora puedes
salir |
|
Lbl2 |
Nombre |
Lbl2 |
|
Visible |
False |
|
|
Caption |
Así me gusta… |
|
|
|
|
|
Visible |
False |
|
|
|
|
cmdsi |
Nombre |
cmdsi |
|
|
|
|
|
Caption |
Si |
|
|
|
|
|
|
|
|
|
|
Y aquí tienes
el código:
Private Sub
Cmdsi_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Lbl2.Visible =
False
cmdexit.Visible
= False
Form1.Top = Int(4500
* Rnd)
Form1.Left =
Int(5000 * Rnd)
End Sub
Private Sub
Cmdno_Click()
Lbl2.Visible =
True
cmdexit.Visible
= True
End Sub
Private Sub
Cmdexit_Click()
End
End Sub
1.- Al
establecer las propiedades de
controlbox y showintaskbar
como False, el formulario no tiene los botones minimizar, maximizar y cerrar,
ni aparece en la barra de herramientas, con lo cual dificultamos el cierre del
programa.
2.- El botón salir tampoco está visible hasta que tecleemos “No”
3.- Rnd es un número aleatorio que toma valores reales en el intervalo cerrado [0, 1]( suponemos que con los maravillosos profesores q