PROGRAMACIÓ D'APLICACIONS EDUCATIVES AMB VISUAL BASICMÒDUL 3ENRERA
PRÀCTICA 1 2 3 4 5
 
Executar el programa m3p4.exe per conèixer el seu comportament.

Veure el llistat del codi del programa, m3p4.

Executar Visual Basic per editar el projecte (acabat): m3p4.vbp.


Un dau

Heu de crear les sis cares del dau. Cadascuna d'aquestes serà un quadre de dibuix. Totes les cares portaran el mateix nom picDau, però portaran un índex del 0 al 5 que servirà per diferenciar-les. Així la cara que tindrà el número 1 serà picDau(0), la que tindrà el 2 serà picDau(1) i successivament. Esteu fent un vector d'objectes del tipus quadre de dibuix. El formulari que heu de crear, un cop acabat, serà semblant al mostrat aquí.




Fase de disseny de la interfície d’usuari

Aquest projecte el desareu al directori C:\VBCurs\VBActivi\m3\p4 i li haureu de donar el nom m3p4.

Dins el formulari principal heu de fer el dau amb sis cares. Feu la primera amb un quadre de dibuix i una forma que serà el puntet del número u i establiu les propietats:

Objecte

Propietat

Valor

Formulari

Caption

Dau

 

(Nombre)

frmDau

Quadre de dibuix

(Nombre)

picDau

 

Autoredraw

True

Forma (Shape)

(Nombre)

shpPunt

 

Shape

3 - Circle

 

BackColor

Negre

 

BackStyle

1 - Opaque



Tema: Shape Subtema: Shape Control

La forma que heu creat és el punt que heu de situar en el centre del quadre de dibuix. Ara falta crear les altres cinc cares del dau. La propietat AutoRedraw, nova en aquest projecte, s'utilitza per redibuixar el quadre de dibuix cada vegada que canvia la cara. Observeu què succeeix si aquesta propietat té el valor False.



Per fer-les, agafeu la primera cara amb el seu punt i copieu-la a la carpeta. Després enganxeu-la al formulari. En aquest moment el Visual Basic informa que ja hi ha un control anomenat picDau i us demana la confirmació de que voleu crear un vector de controls. Respongueu afirmativament. Com que també teniu el puntet (shpPunt) se us demana si voleu fer un vector de formes. Respongueu, com abans, afirmativament.

Ara tindreu les cares anomenades picDau(0) i picDau(1). A la cara picDau(1) li heu d'afegir el segon puntet. Copieu-lo a la carpeta i, estant activada la cara picDau(1), enganxeu-lo dins.

Seguiu el mateix procés per tal de crear les altres quatre cares. Així disposareu d'un vector amb sis elements (del 0 al 5) amb les sis cares (de l'1 al 6).

Finalment, poseu totes les cares una amunt de les altres: assigneu el valor False a la propietat Visible de totes menys en una. Ja teniu el dau preparat i el formulari quedarà tal com es veu a la primera figura d'aquesta activitat.

Us queda afegir els objectes:

Objecte

Propietat

Valor

Rellotge (Timer)

(Nombre)

tmrDau

 

Interval

10

 

Enabled

False

Botó Llançar

(Nombre)

cmdLlançarDau

 

Caption

Llançar el dau




Fase de programació de respostes a events

Declaracions d'àmbit el formulari

Declareu una variable global NúmeroSortitDau per tenir l'estat inicial del dau. El procediment d'event Form_Load inicialitza l'estat del dau i prepara la funció aleatòria que simula el llançament d'un dau. En el moment d'inicialitzar la variable NúmeroSortitDau li assignareu el valor de l'índex corresponent a la cara que mostreu a l'usuari. En aquest cas serà el número 1.
    Dim NúmeroSortitDau As Integer

Procediments associats a l'event Load

Per al formulari principal:
    Sub Form_Load () Randomize NúmeroSortitDau = 1 End Sub

Aquest procediment inicialitza el dau de forma que presenta la cara corresponent al dígit 1.

Procediments associats a l'event Click

Per al botó Llançar dau:
    Sub cmdLLlançarDau_Click () tmrDau.Enabled = True End Sub

En llançar un dau observeu que dóna voltes, mostrant-nos un cert número de vegades la cara d'amunt i el seu número. El procediment anterior simula aquesta situació fent ús del Timer incorporat al formulari ja que el procediment cmdLlançarElDau_Click posa la propietat Enabled del rellotge a True, de manera que el rellotge respongui a l'event Timer, i cada vegada que s'esdevingui l'event, és a dir, cada 10 milisegons, faci una volta del dau. Aquest procediment es presenta tot seguit.

Procediments associats a l'objecte Timer
    Sub tmrDau_Timer () Static Vegades As Integer picDau(NúmeroSortitDau).Visible = False NúmeroSortitDau = Int(6 * Rnd) Beep picDau(NúmeroSortitDau).Visible = True Vegades = Vegades + 1 If Vegades = 10 Then tmrDau.Enabled = False Vegades = 0 End If End Sub

Aquest procediment tmrDau_Timer és el que simula el llançament del dau. Observeu que es tracta de que cada vegada que s'esdevé l'event timer feu invisible la cara actual, simuleu un sorteig i feu visible la cara corresponent al número sortit. Aquestes accions han de repetir-se 10 vegades (simula que el dau dóna 10 voltes). Per tant, heu de tenir una variable que faci de comptador. Aquesta variable ha de ser declarada com Static ja que cada vegada que s'executi el procediment tmrDau_Timer ha de trobar-se aquesta variable amb el número de vegades que ha estat executat. Finalment, el mètode Refresh s'utilitza per redibuixar la cara.

Tema: Static Subtema: Static Statement


Exercicis

Per enviar al professor tutor. (Directori C:\VBCurs\VBExerci\m3\p4 )

E1. Simuleu un semàfor. Hi haurà un vector de tres objectes del tipus Picture Box i un objecte Timer. Cada 1 segon s'encén una part del semàfor i s'esborra l'anterior. Inicialment el semàfor està verd.

La finestra principal del programa en mode edició ha de quedar més o menys així:




La finestra principal del programa executant-se i ensenyant un color del semàfor ha de quedar més o menys així:





Cal enviar els següents fitxers:
    Fitxer projecte m3p4e1.vbp
    Fitxer formulari m3p4e1.frm
    Fitxer executable m3p4e1.exe