Formulario de preparación al examem

 

Visual Basic

Proyecto nº 1

9_2000

 

  1. Proyecto WB01704_.gif (383 bytes)

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.

 

 

  1. Herramientas, estructuras y funciones estudiadas

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

 

  1. Estructura del programa

 


1.0 Form1WB01704_.gif (383 bytes)

Contenido:

·       una imagen de fondo, un command que permite cambiar de página.

      1.0.1 Propiedades

                  Form1 :

·       Name        : form1

·       Caption     : 1º de bachillerato

                    Command 1

·       Name        : CmdCambiar

·       Caption     : Cambiar

 

      1.0.2 Codificación

                  Código de la opción Command_clic

                  Form2.show 1 ........................................................................

                  Unload form1  ........................................................................


1.1 Form2

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 :

Command 1

·       Name        : CmdCerrar

·       Caption     : Cerrar

Command 2

·       Name        : CmdSiguiente

·       Caption     : Acceso

·       Enabled    : False

·       Visible     : False

 

Label1

·       Name        : LblUsuario

·       Caption     : Usuario

Label2

·       Name        : LblCódigo

·       Caption     : Código

Text1

·       Name        : TxtUsuario

·       Text          :

 

Text2

·       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

 

1.2 Form 3 WB01704_.gif (383 bytes)

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é

 

 

La barra de MENU se crea a partir de la opción :

                                   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 ?

 

Otros objetos

Frame1

·       Name : Frame1

Frame2

·       Name              : Frame2

·       Caption           : Datos

Nota : Label1.... Label6   y, Text1(0) ..... Text2(6) son objetos pertenecientes al Frame2.

Label1

·       Name        : LblApellido

·       Caption     : Apellido

Label2

·       Name        : LblNombre

·       Caption     : Nombre

……

Label6

·       Name        : LblSueño

·       Caption     : Un sueño

Nota : Dibujad Text1, luego copiar y pegar para crear los Text siguientes.

Text1(0)

·       Name        : TxtApellido

·       Text          :

Text1(1)

·       Name        : TxtNombre

·       Text          :

...........

Text1(5)

·       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 = Trueindica que la zona queda activada.

Call Borrarllama 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.

 

Global T(6, 32) As String

Global P(3,10) As String

 

‘ 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 = ""

Next

End Sub

 


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.

 

  SY01265_.wmf (3286 bytes)