Formulario de preparación al examem
Proyecto
nº 1
9_2000
Utilización del entorno de Visual Basic a través de la creación de un programa de presentación de la clase de 1º de bachillerato del collège Bon Soleil.
Herramientas :
· FORM
· COMMAND
· LABEL
· TEXT
· MENU
· MCI
· PICTURE, IMAGE
Estructuras y códigos
· IF .... THEN
· FOR ....NEXT
· UNLOAD
· SHOW
· MATRICES (VECTORES)
· DIM, STATIC, PRIVATE, GLOBAL
· INTEGER, STRING, VARIANT
Funciones
· SUB
END SUB
· PROCEDURE
· MODULE
Contenido:
· una
imagen de fondo, un command que permite cambiar de página.
1.0.1
Propiedades
Form1 :
· Name
: form1
· Caption :
1º de bachillerato
· Name : CmdCambiar
· Caption : Cambiar
1.0.2
Codificación
Código de la opción Command_clic
Form2.show 1 ........................................................................
Unload form1 ........................................................................
Verifica si el PassWord permite el acceso a la página siguiente. La página contiene 2 label, 2 textbox y 2 command.
Tras teclear el nombre de usuario en el textbox 1 , si el nombre es correcto se activa (aparece en pantalla) el TextBox2.
· En caso de error , aparece un mensaje y se borra el contenido de TextBox1 .
Si el código escrito en Textbox2 es válido el command de acceso a la pégina 3 se activa.
· En caso de error , aparece un mensaje y se borra el contenido de TextBox1
Al pulsar command2 (página siguiente) se accede al Form3.
1.1.1 Propiedades
Form2 :
· Name
: form2
· Caption :
PassWord
· Sizable :
non
· Position :
centrée
· BackColor :
· ForeColor :
· Name
: CmdCerrar
· Caption : Cerrar
· Name
: CmdSiguiente
· Caption :
Acceso
· Enabled :
False
· Visible :
False
· Name : LblUsuario
· Caption : Usuario
· Name : LblCódigo
· Caption : Código
· Name : TxtUsuario
· Text :
· Name : TxtCódigo
· Text :
· Enabled :
False
· Visible :
False
1.1.2 Codificación
Código de la opción CmdCerrar_clic
Unload Me ........................................................................
Código de la opción CmdSiguiente_clic
Form3.show 1
Unload Me ........................................................................
Código de la opción TxTUsuario_Keypress
If KeyAscii = 13 Then
........................................................................
If TxtUsuario.text = Lorenzo then
TxtCódigo.Visible =1
TxtCódigo.enabled = 1
........................................................................
End If
End If
Código de la opción TxTCódigo_Keypress
If KeyAscii = 13 Then
........................................................................
If TxtCódigo.text = 4321 then
CmdSiguiente.Visible =1
CmdSiguiente.Enabled = 1
........................................................................
End If
End If
Contiene una barra de MENU a partir de la cual se lanzan las diversas opciones, un Frame en el cual aparecerán los datos, un picture con la foto del (de la) alumno (a), un play que reproducirá la música preferida.

1.2.1 Propiedades
Form3 :
· Name
: form3
· Caption :
1º de bachillerato
· Sizable :
non
· Position :
maximisé
HERRAMIENTAS
CREADOR DE MENUS
En un principio podemos prever 7 opciones
1. Archivo
Abrir
Guardar
Salir
2. Alumnos
Alvaro, Robert
Basave, Andrea
......
3. Profes
Antón, German
Bosch, Jordi
..
4. Informática
Ofimática
Programación
5. Viajes
La Mouleyrette
Organya
Roma
El Camino de Santiago
6. Herramientas
Este apartado se completará a lo largo del curso...
7. Ayuda
¿Cómo funciona el programa ?
· Name : Frame1
· Name : Frame2
· Caption : Datos
· Name : LblApellido
· Caption : Apellido
· Name
: LblNombre
· Caption :
Nombre
· Name : LblSueño
· Caption : Un sueño
Nota : Dibujad
Text1, luego copiar y pegar para crear los Text siguientes.
· Name
: TxtApellido
· Text
:
· Name
: TxtNombre
· Text
:
...........
· Name
: TxtSueño
· Text
:
Image1
· Image1
· Picture =none
1.2.2 Rutina de funcionamiemto del Form3
Cuando arranca el form (Form_load) el Frame2 tiene que estar inhabilitado (Enabled=False). Por lo tanto la ficha contenida en el Frame2 aparece en blanco.
De forma provisional vamos a cargar en este apartado la base de datos que contendrá toda la información sobre los alumnos y profes. De momento recogeremos los datos en unas tablas :
· Al(6,32) tabla alumno
· Pr(3,10) tabla profes
¿Qué indica el 6 ? 6 apartados numerados de 0 a 5
¿Qué indica 32 ? 32 alumnos numerados del 0 al 31 (se contabiliza a Gilbert a pesar de ser Expediente XDDD)
Private Sub Form_load
Frame2.enabled=false
..
base de datos
Al(0,0)=Robert
Al(1,0)= Alvaro
.....
A(5,0)= vivir sin trabajar
.....
A(5;32) =ser una chica yeye
fin de la base de datos Alumnos, repetis lo mismo con los profes pero unicamente con 3 campos (no el Angel campos): Apellido, nombre. Asignatura
P(0,0)=Germán
P(1,0=Antón
P(2,0)= Matemáticas y física.
.........
End sub
1.2.3 ¿Cómo activar
Frame2 ?
Al pulsar el menu ALUMNOS elegis uno de ellos y pulsais para abrir la subrutina.
¿Qué rutina tiene que
seguir el programa?
Private Sub rupy_Click()
n = 0 N=0 indica que Rupy es el número 0
de la tabla.
Frame2.Enabled = True indica
que la zona queda activada.
Call Borrar llama al Procedure Borrar es
decir un subprograma que borra todos los datos que están en el Frame2.
Call datos (n) Datos llama al
Procedure Datos es decir un subprograma
que va a gestionar la aparición de los datos en pantalla.
Call Foto (n) Foto edita en pantalla la foto del
Alumno
End Sub
Tenéis que repetir lo mismo
en cada alumno incrementando el número n .....
Alicia es el número 32.
1.2.4¿Porqué utilizar el Procedure Borrar, el Procedure Datos?
Deseamos borrar de la pantalla los datos existentes anteriormente, cada vez que pulsamos sobre el nombre de un alumno.
Para evitar de repetir 32 veces las mismas instrucciones ( 1 por alumno) creo un procedimiento que contiene dichas instrucciones. Bastará con llamarlo para que él realice dicha operación.
Por la misma razón creamos los procedimiento Datos , y Foto que pondrá en pantalla los datos y la foto del alumno.
1.2.5 Las variables
Cuando pulsais Rober Alvaro n toma como valor 0, cuando pulsais Andrea Basave n toma como valor 1.... cuando pulsais Alicia Viñals n toma el valor 32.
N cambia de valor en función del alumno pulsado, por lo tanto su contenido es variable. Las variables son valores dinámicos que pueden cambiar.
Para que el programa sea capaz de interpretar las variables hay que definir su tipo. Tenemos que declarar si es una variable numérica (INTEGER : 1,2,3,4,5,6 ...), una variable alfanumérica (STRING : a,b,c...,1,2,...?,#), Variant (capaz de convertirse en INTEGER o STRING según sea necesario).
1.2.6 ¿Dónde se
definen las variables?
Las variables compartidas por todo el proyecto se definen en un MODULO. Para crear un MODULE id a la barra de menu, pulsad el segundo icono.
Una vez abierta la ventana de MODULE1 copiad :
Global n As Variant n es un número por
lo tanto tendría que ser INTEGER pero de cara a otras
aplicaciones que haremos los defino como VARIANT es decir que podrá ser utilizado como
número o como símbolo ASCII.
Las dos tablas contienen datos alfanunéricos
por lo tanto son de tipo STRING.
GLOBAL indica que las variables se pueden utilizar en
cualquier Form del proyecto.
1.2.6 ¿Dónde se
escriben los procedimientos?
En el MODULO (a continuación de las variables) tenéis que copiar los códigos de los procedimientos :
1.2.7 Procedimiento
borrar
Función : borrar el contenido de los TEXTBOX
Si habéis seguido los pasos que os dije para crear los TEXTBOXES (COPIAR, PEGAR) los TEXTBOX van numerados y el name correspondiente a cada una es :
TEXT1(0)
TEXT1(1)
TEXT1(2)
TEXT1(3)
TEXT1(4)
TEXT1(5)
Para evitar de escribir en cada TEXTBOX ( lo cual indica que no hay texto), o sea se :
TEXT1.TEXTE=
TEXT2.TEXTE=
TEXT3.TEXTE=
TEXT4.TEXTE=
TEXT5.TEXTE=
TEXT6.TEXTE=
Utilizaremos la estructura FOR NEXT que permite repetir un mismo comando varias veces.
For I = 0 To 5
Form3.Text1(I).Text = ""
Next
La estructura comprendida entre For y Next se repite 6 veces (0 ..5).
Cada vez que llega a NEXT la variable I se incremento en 1.
¿Qué ocurrirá?
Si I=0 .... Form3.Text1(0).Text = borra el campo Nombre
Si I=1 .... Form3.Text1(1).Text = borra el campo Apellido
Si I=2 .... Form3.Text1(2).Text = borra el campo Fecha de nacimiento
.....
I es un valor variable, por lo tanto tenemos que definirlo.
DIM indica que su utilización está restringida al prodedimiento BORRAR , INTEGER especifica que los datos serán numéricos.
Sub borrar()
Dim I As Integer
For I = 0 To 5
Form3.Text1(I).Text = ""
1.2.8 Procedimiento
DATOS(n)
Función : escribir en pantalla los datos del alumno.
Utilizaremos la estructura FOR NEXT que permite repetir un mismo comando varias veces.
For I = 0 To 5
Form3.Text1(I).Text = Al(I,N)
Next
La estructura comprendida entre For y Next se repite 6 veces (0 ..5).
Cada vez que llega a NEXT la variable I se incremento en 1.
¿Qué ocurrirá si
pulsamos sobre Andrea (N=1)?
DATOS(N) indica
que llamamos al procedimiento DATOS enviándole el valor N como referencia.
Al leer el bucle FOR
... NEXT realiza la tarea siguiente :
Si I=0 ....
Form3.Text1(0).Text = Al(0,1) escribe el contenido Al(0,1) en la casilla Text1(0) :
Andrea.
Si I=1 ....
Form3.Text1(1).Text = Al(1,1) escribe el contenido Al(1,1) en la casilla Text1(1) :
Basave.
Si I=2 ....
Form3.Text1(2).Text = Al(2,1) escribe el contenido Al(2,1) en la casilla Text1(2) :
1/1/1984.
Etc .... hasta realizar el sexto bucle (I=5)
I es un valor variable, por lo tanto tenemos que definirlo.
DIM indica que su utilización esta restringida al prodedimiento DATOS , INTEGER especifica que los datos serán numéricos.
Sub DATOS(n)
Dim I As Integer
For I = 0 To 5
Form3.Text1(I).Text = Al(I, n)
Next
End Sub
1.2.9 Procedimiento
FOTO(n)
Función : mostrar en pantalla la foto del alumno.
A cada alumno le corresponde una foto. Estas fotos no llevan un nombre aleatorio sino que van numeradas, tendréis que tomarlo en cuenta cuando a partir de la imagen de la clase creais las 32 imágenes.
Rupy :
foto0.jpg
Andrea :
foto1.jpg
(.Jpg es la extensión , define el tipo de imagen)
Para crear la clave, a la palabra foto hay que añadirle el número correspondiente al alumno y .jpg;
Para crear el nombre del fichero utilizaremos las variables F y F1 de tipo STRING (alfanumérica).
F= foto + n + .jpg
Si n=3 ---- > F= foto + 3 + .jpg = foto3.jpg
Sub Foto(n)
Dim F As String define F como alfanumérica
Dim F1 As String define F como alfanumérica
F1=n F1 toma el valor de n
F = "foto+ F1 + .jpg" F=foto1.jpg
Form3.Image1 = LoadPicture(F)
image1 carga la imagen foto1.jpg
End Sub
ZUI : el objeto que contiene la imagen tiene que ser un IMAGE y
no un PICTURE, por la simple razón que IMAGE admite la propiedad STRETCH
to WINDOW es decir que modifica el tamaño de la foto según el recuadro que hayas
dibujado ( si tu imagen es pequeña la amplía , si es grande la reduce).
(ZUI) Kiere decir Atención.