|
|
|
|
|
Executar el programa m2p2.exe per conèixer el seu comportament. Veure el llistat del codi del programa, m2p2. Executar Visual Basic per editar el projecte (acabat): m2p2.vbp. Càlcul d'una mitjanaAquesta activitat consisteix a introduir una llista numèrica (alçades de persones) de forma que, una vegada introduïda, el programa dóna la mitjana dels valors introduïts. Un aspecte nou que apareix a l'activitat és la sentència While... que s'utilitza quan cal fer un número d'iteracions que depèn d'una condició que s'avalua. Aquest número d'iteracions no és fix. El formulari que heu de crear conté objectes ja tractats anteriorment i, a més, un objecte quadre de llista. Se semblarà finalment a:![]() Fase de disseny de la interfície d’usuariCreeu un directori nou: C:\VBCurs\VBActivi\m2\p2 i un nou projecte, en aquest directori, que anomenareu m2p2. En ell, desareu tots els fitxers d'aquesta activitat. Establiu les propietats dels objectes que hi intervenen:
L'objecte nou utilitzat en aquest projecte és el quadre de llista. Aquest objecte serveix per a emplenar-lo amb una llista de valors mitjançant els mètodes específics d'aquest objecte i que s'especifiquen més avall. En aquest programa la llista s'emplenarà amb els valors d'alçades de persones. Fase de programació de respostes a eventsLes propietats i mètodes que es modifiquen en la fase de programació són els següents:Per a les propietats:
També heu de fer ús de tres dels mètodes dels quals disposen els quadres de llista:
Procediments associats a l'event Click Botó AfegirElement Sub cmdAfegeix_Click ()
If txtValorIntroduït <> "" Then
lstAlçades.AddItem txtValorIntroduït
txtValorIntroduït.Text = ""
End If
End Sub
BotóEsborrarElement Sub cmdEsborraElement_Click ()
If lstAlçades.ListIndex >= 0 Then
lstAlçades.RemoveItem lstAlçades.ListIndex
End If
End Sub
BotóEsborraLlista Sub cmdEsborraLlista _Click () Dim Contestació, RegDef As Integer Dim Missatge, Títol As String Missatge = "Voleu esborrar tots els elements de la llista?" RegDef = MB_ICONEXCLAMATION + MB_YESNO Títol = "Atenció" Contestació = MsgBox(Missatge, RegDef, Títol) If Contestació = IDYES Then lstAlçades.Clear End Sub 'Mes curt Private Sub cmdEsborraLlista_Click()
Dim Contestació As Integer
Contestació = MsgBox("Voleu esborrar tots els elements de la llista?", vbExclamation + vbYesNo, "Atenció")
If Contestació = IDYES Then lstAlçades.Clear
End Sub
BotóFi Sub cmdFi_Click () End End Sub En aquests tres procediments d'event Click podeu observar que: Per al botó AfegirElement, es fa servir el mètode AddItem. Anàlogament, per al botó EsborrarElement heu d'utilitzar el mètode RemoveItem. El botó de comandament que esborra un element de la llista comprova també si n'hi ha algun element seleccionat en aquest moment comprovant que la propietat ListIndex és diferent de zero. El codi associat al botó EsborrarLlista fa servir la funció MsgBox per demanar a l'usuari si realment vol esborrar tots els elements de la llista. En general, la funció MsgBox s'utilitza per presentar un missatge i demanar a l'usuari el seu acord, que realitza prement un botó. Sub cmdMitjana_Click ()
Dim Total As Single
Dim Actual As Integer
total = 0
Actual = 0
Do While Actual < lstAlçades.ListCount
total = total + Val(lstAlçades.List(Actual))
Actual = Actual + 1
Loop
If lstAlçades.ListCount > 0 Then
txtMitjana = Format(total / lstAlçades.ListCount, "0.00")
End If
End Sub
Aquest procediment incorpora la instrucció iterativa Do While que permet executar un nombre d'instruccions mentre es compleix una condició, especificada en el codi, o fins que es compleixi aquesta condició. Sub txtValorIntroduït_KeyPress (KeyAscii As Integer) If keyAscii = 13 Then cmdAfegeix_Click End Sub Tema: KeyPress Subtema: KeyPress Event Observeu la crida al procediment cmdAfegeix_Click Procediments associats a l'event Change Aquest event succeeix quan hi ha un canvi en el valor de l'objecte. Cada vegada que canvieu el valor de l'objecte txtLloc s'executarà el procediment següent: Caixa txtLloc Sub txtLloc_Change ()
Dim Index As Integer
Index = Val(txtLloc)
If lstAlçades.ListCount > Index Then
txtNúmero = lstAlçades.List(Val(txtLloc))
End If
End Sub
Declaracions, procediments i funcions d'àmbit formulariEn aquest projecte només cal declarar, finalment, el valor de les constants MB_ICONEXCLAMATION, MB_YESNO, IDYES. Per això, cal que escriviu en la part general del formulari la instrucció: const MB_ICONEXCLAMATION=48,MB_YESNO=4, IDYES=6 Tema: MsgBox Subtema: MsgBox Function, MsgBox Statement El Visual Basic incorpora el fitxer CONSTANTS.TXT que conté els noms i els valors de moltes de les constants que es poden utilitzar en els programes. Un exemple d'aquestes constants és el que heu observat en l'ajuda anterior. ExercicisPer enviar al professor tutor. (Directori C:\VBCurs\VBExerci\m2\p2 )E1. En un formulari heu de crear un objecte del tipus quadre combinat i una caixa de text. El quadre
combinat és una llista com la de l'activitat anterior però només es mostra un sol element de la llista.
Afegeix "AddItem" a la llista els noms de vuit colors. Aquesta llista la inicialitzareu en obrir el formulari
principal (event Load). Cada vegada que l'usuari tria un color ha d'aparèixer el nom a la caixa de text.
Coneixerem el color triat a partir de la propietat text de l'objecte ComboBox.La finestra principal del programa ha de quedar més o menys així: ![]() Cal enviar els següents fitxers:
Fitxer formulari m2p2e1.frm Fitxer executable m2p2e1.exe |