PROGRAMACIÓ D'APLICACIONS EDUCATIVES AMB VISUAL BASICMÒDUL 1ENRERA
PRÀCTICA 1 2 3 4
 
Executar el programa m1p3.exe per conèixer el seu comportament. Cliqueu si no funciona correctament

Veure el llistat del codi del programa, m1p3.

Executar Visual Basic per editar el projecte (acabat): m1p3.vbp. Cliqueu si no funciona correctament


Una petita aplicació per sumar

En aquest projecte, que té un disseny com el de la figura, l'usuari entra dos números i, en clicar un botó, es presenta la suma d'ells. També hi ha dos botons de comandament nous, per esborrar els valors entrats i per acabar el programa.

Creeu un directori nou: C:\VBCurs\VBActivi\m1\p3 i un nou projecte, en aquest directori, que anomenareu m1p3. En ell, desareu tots els fitxers d'aquesta activitat.





Fase de disseny de la interfície d’usuari

Fixeu-vos que hi ha dos objectes Etiqueta (Label) que es diferencien de les caixes de text (TextBox) perquè mostren un text que l'usuari no pot canviar directament. Hi ha també tres caixes de text per contenir els valors dels sumands i del total de la suma.

Els tres botons de comandament serveixen per: presentar la suma, esborrar els valors entrats i finalitzar l'execució del programa.

Establiu els objectes i les seves propietats:

Objecte

Propietat

Valor

Formulari principal

Caption

Sumar

 

(Nombre)

frmSumar

Etiqueta d'introduir nº (1)

Caption

Introdueix un número:

 

(Nombre)

lblIntrodueixNúmero1

 

Alignment

1-Right justify

Etiqueta d'introduir nº (2)

Caption

Introdueix altre número:

 

(Nombre)

lblIntrodueixNúmero2

 

Alignment

1-Right justify

Etiqueta de resultat suma

Caption

SUMA

 

(Nombre)

lblSumar

 

Alignment

1-Right justify

 

Font, Tamaño

18

 

ForeColor

&H00008000& (verd: el podeu escollir directament) si cliqueu la icona )

Quadre de text (1r sumand)

(Nombre)

txtNúmero1

 

Text

Res (cap text)

Quadre de text (2n sumand)

(Nombre)

txtNúmero2

 

Text

Res (cap text)

Quadre de text (Suma)

(Nombre)

txtSuma

 

Text

Res, cap text.

 

Enabled

False

Botó Suma

(Nombre)

cmdSumar

 

Caption

&Sumar

Botó Esborrar

(Nombre)

cmdEsborrar

 

Caption

&Esborrar

Botó Tancar

(Nombre)

cmdTancar

 

Caption

&Tancar



Mostrem la finestra properties de l'etiqueta, lblSumar, indicant-hi quines són les que canvien.



En els objectes anteriors hi apareixen unes propietats noves comentades tot seguit:

La propietat Alignment és utilitzada per determinar el tipus de justificació de text que es vol aplicar en l'objecte en què s'ha definit.

La propietat Font, fa obrir un quadre de diàleg que permet escollir el tipus de font (Fuente), l'estil (Estilo de fuente), la grandària (Tamaño) y si es tracta d'una font taxada o subratllada (Efectos), de la font de text utilitzada en l'objecte en què s'ha definit.


La propietat ForeColor estableix el color de la font de text utilitzada en l'objecte en què s'ha definit.



Fase de programació de respostes a events

Tal com es pot preveure segons la fase de disseny anterior, hi haurà d'haver resposta als clics del ratolí sobre els botons. Per tant, cal escriure els procediments d'event Click per a cada un dels botons. Recordeu que això es fa, en mode de disseny, clicant dues vegades el botó al qual se li vol associar el codi de programa depenent d'un event i, en sortir la finestra de definició de codi, escollir l'event desitjat. En aquest cas, els procediments seran:

Recordeu que per obrir la finestra d'edició de codi podeu fer-ho fent un doble-clic en el botó corresponent.


Botó Sumar
    Sub cmdSumar_Click () Dim n1 As Single Dim n2 As Single Dim Suma As Single n1 = Val(txtNúmero1.Text) n2 = Val(txtNúmero2.Text) Suma = n1 + n2 txtSuma.Text = Str$(Suma) End Sub

Botó Esborrar
    Sub cmdEsborrar_Click () txtNúmero1.Text = "" txtNúmero2.Text = "" txtSuma.Text = "" End Sub

Botó Tancar
    Sub cmdTancar_Click () End End Sub

Observeu que un concepte nou en aquesta activitat és el de variable:

Tema: Dim Subtema: Dim Statement

Tema: Constants Subtema: Const Statement

Variables

Les variables són dades (numèriques o alfanumèriques) que es fan servir en un programa i amb la característica que no es puguin variar (Constants) o que sí es puguin modificar (Variables). Així, en el primer procediment s'hi defineixen tres variables (n1, n2 i Suma) internes a ell (locals) que serveixen per a convertir els números entrats com a text en numèrics, mitjançant la funció estàndard del Visual Basic Val() i assignar la seva suma a la variable Suma, també local a aquest procediment. Finalment, es canvia el text que hi ha a la caixa de text txtSuma de forma que el seu valor, en forma textual, correspongui a la suma anterior. Per això, es fa servir una altra funció estàndard del Visual Basic: Str$()

Tema: Val Subtema: Val Function

Tema: Str Subtema: Str, Str$ Functions

    Nota: Fins ara només haviem utilitzat les caracteristiques del Visual Basic i la seva capacitat per manipular objectes, aquí hem introduït la seva capacitat de fer servir les sentències del BASIC tradicional. Qui conegués el BASIC, i/o la programació en MSDOS, a partir d'aquí es trobarà amb algunes coses familiars.

    Fins ara, si algú coneixia BASIC és possible que pensés què tenia a veure Visual Basic amb el Basic normal, doncs és el fet de poder escriure "la majoria" de les sentències i utilitzar la seva sintaxi.

El segon procediment inicialitza els tres valors de les tres caixes de text a la cadena de caràcters buida, que és equivalent a deixar-les en blanc. Per tant, es modifica la propietat Text de les tres caixes de text i se'ls hi assigna com a valor la cadena de caràcters buida:""

El tercer procediment utilitza la instrucció End, que finalitza l'execució del programa.

Molt important: si voleu assegurar que totes les variables s'hagin de definir expressament, heu d'afegir la instrucció Option Explicit en la zona de declaracions, tal com es va comentar a l'activitat 1. Això provocarà que, en intentar executar el programa, aparegui un missatge indicant les variables que no han estat definides explícitament.

Tema: Variables

Tema: Option Explicit

Cal que tingueu present:

Consell: en tots els programes que feu poseu-hi aquesta instrucció. Basic va ésser un llenguatge molt desprestigiat en la comunitat de programadors. Una de les raons era que es pogués utilitzar en qualsevol moment una variable sense definir-la prèviament la qual cosa ocasionava multitud de problemes quan calia depurar el programa. Aquesta instrucció arregla aquest problema, en el cas que es faci servir.

  • Per definir una variable i el tipus de dades que representarà, la sintaxi és:
  • Dim nomvariable As Tipus delaVariable.

    Tema: Data Subtema: Visual Basic Data Types

  • Les variables tenen un àmbit d'actuació:
    • Variables locals a un procediment o funció, quan es declaren en un procediment. Només són reconegudes dins del procediment o funció. Es declaren mitjançant la sentència Dim.
    • Variables locals a un formulari o mòdul, quan es declaren en el formulari o mòdul. Són reconegudes per tots els procediments i funcions definits en el formulari o mòdul. Es declaren mitjançant la sentència Dim a la zona "(general)" de codi del formulari.
    • Variables globals, quan es declaren en un mòdul. Són reconegudes per tots els procediments i funcions de tots els formularis del projecte. La declaració és:

    • Global nomvariable As tipusdevariable.
    Cal afegir que un mòdul és un conjunt de definicions de constants, variables, funcions i procediments que no estan lligats explícitament a un formulari, tot i que poden ser utilitzats per aquest. Els mòduls són fitxers amb l'extensió *.BAS

    Nota: No oblideu desar el projecte i veure el subdirectori amb tots els fitxers que heu creat.


    Exercicis

    Per enviar al professor tutor. (Directori C:\VBCurs\VBExerci\m1\p3 )

    E1. Afegeix un nou botó al formulari anterior per tal de fer el producte de dos nombres. Heu de tenir cura que en l'etiqueta que mostra l'operació que s'efectua hi aparegui SUMA quan premeu el botó Sumar i PRODUCTE quan premeu el botó Multiplicar.

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





    Per no haver de començar de nou tot el projecte:
    • Copieu els fitxers del directori C:\VBCurs\VBHtml\vibam1\m1p3, m1p3.vbp i m1p3.frm en el directori on feu l'exercici: C:\VBCurs\VBExerci\m1\p3.

    • Cliqueu damunt el fitxer m1p3.vbp perquè es carregui Visual Basic amb aquest projecte.

    • Deseu el fitxer m1p3.frm amb el nom m1p3e1.frm (Guardar archivo como...).

    • Deseu el projecte m1p3.vbp amb el nom m1p3e1.vbp (Guardar proyecto como...).

    • Després podeu esborrar el fitxers , m1p3.vbp i m1p3.frm del directori on feu l'exercici: C:\VBCurs\VBExerci\m1\p3.

    • A continuació podeu fer les modificacions necessàries.

    • Al final no vos oblideu de desar els fitxers. Si no ho feu quan marxeu de Visual Basic aquest vos informa de que hi ha modificacions. Recomanació, compte !! quan deseu.

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


    Per a qui no en tingui prou

    Exercici optatiu. E2. Afegeix l'operació resta i l'operació quocient al formulari de l'exercici anterior. Cal anar en compte en el quocient que no es pot dividir per 0 i si el divisor ho és, el programa es penjarà. Per solucionar aquest problema mireu la instrucció if en les pràctiques posteriors. m1p3e2.

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





    Per no haver de començar de nou tot el projecte:
    • Deseu el fitxer m1p3e1.frm amb el nom m1p3e2.frm (Guardar archivo como...).

    • Deseu el projecte m1p3e1.vbp amb el nom m1p3e2.vbp (Guardar proyecto como...).

    • A continuació podeu fer les modificacions necessàries.

    • Al final no vos oblideu de desar els fitxers. Si no ho feu quan marxeu de Visual Basic aquest vos informa de que hi ha modificacions. Recomanació, compte !! quan deseu.

    Si feu aquest exercici i voleu que vos el corretgeixin, cal enviar els següents fitxers:
      Fitxer projecte m1p3e2.vbp
      Fitxer formulari m1p3e2.frm
      Fitxer executable m1p3e2.exe