Aplicaţie
Să introducem raza unui cerc, şi să calculăm aria şi perimetrul.
|
Form:
|
CAPTION: kor
|
3 darab Cmdbutton:
|
Name. Command1 ...
Caption: kerulet ...
FONT: regular 14
|
3 darab Textbox
|
text: -
FONT: regular 14
|
1 drb label
|
Caption: sugár
|
|
Coduri
Dim r As Integer
Dim kor As Single
|
Private Sub Command1_Click()
r = Val(Text1.Text)
kor = 2 * r * 3.14
Text2.Text = kor
End Sub
|
Private Sub Command2_Click()
r = Val(Text1.Text)
kor = r * r * 3.14
Text3.Text = kor
End Sub
|
Operatii de intrare /iesire realizate cu functiile InputBox ( ) si MsgBox ( )
Limbajul Visual Basic dispune de functiile InputBox ( ) si MsgBox ( ) pentru realizarea de operatii simple de intrare/iesire prin utilizarea unor casete de dialog predefinite. În cadrul unui program utilizatorul trebuie sa poata introduce date si sa poata afisa sau extrage rezultate.
Functia InputBox ( ) - afiseaza o caseta de dialog si asteapta ca utilizatorul sa introduca text, apoi returneaza continutul casetei de text. Valoarea returnata este fie de tip variant fie de tip String în functie de varianta utilizata:
Valret = InputBox (prompt, title, default, xpos, ypos, helpfile, context)
- întoarce Variant
Valret$ = InputBox$ (prompt, title, default. xpos, ypos, helpfile, context)
- întoarce String
Functia MsgBox ( ), procedura MsgBox
Functia MsgBox( ) si procedura MsgBox afiseaza un mesaj într-o caseta de dialog si asteapta ca utilizatorul sa selecteze un buton. Functia MsgBox ( ) returneaza o valoare întreaga care indica numarul butonului selectat. Procedura MsgBox nu returneaza nici o valoare ( se utilizeaza atunci când nu intereseaza cum este închisa caseta de dialog corespunzatoare).
Sintaxa functiei MsgBox ( ) este:
Valret % = MsgBox(msg, type, title, helpfile, context)
Sintaxa procedurii MsgBox este:
MsgBox msg, type, title, helpfile, context
-msg = expresie sir afisata ca mesaj în caseta de dialog
-type = expresie numerica ce precizeaza numarul si tipul butoanelor si a altor elemente ce vor fi afisate în caseta de dialog corespunzator tabelului de mai jos.
În tabelul de mai jos sunt date grupele de valori care descriu:
1. numarul si tipul butoanelor casetei de dialog
2. tipul pictogramei
3. butonul prestabilit
4. modalitatea casetei de dialog.
Valoare
|
Semnificatie
|
Constanta simbolica recomandata
|
0
|
Afiseaza numai butonul OK
|
vbOKOnly
|
1
|
Afiseaza butoanele OK si Cancel
|
vbOKCancel
|
2
|
Afiseaza butoanele Abort,Retry,Ignore
|
vbAbortRetryIgnore
|
3
|
Afiseaza butoanele Yes, No, Cancel
|
vbYesNoCancel
|
4
|
Afiseaza butoanele Yes, No
|
vbYesNo
|
5
|
Afiseaza butoanele Retry, Cancel
|
vbRetryCancel
|
16
|
Afiseaza pictograma Critical
|
vbCritical
|
32
|
Afiseaza un semn de întrebare
|
vbQuestion
|
48
|
Afiseaza un semn de exclamare
|
vbExclamation
|
64
|
Afiseaza pictograma Information
|
vbInformation
|
0
|
Primul buton este prestabilit
|
vbDefaultButton1
|
256
|
Al doilea buton este prestabilit
|
vbDefaultButton2
|
512
|
Al treilea buton este prestabilit
|
vbDefaultButton3
|
0
|
Caseta modala aplicatiei
|
vbApplicationModal
|
4096
|
Caseta modala sistemului
|
vbSystemModal
|
Pentru a obtine valoarea argumentului type se va însuma câte un numar din fiecare grup. Daca argumentul type este omis se considera implicit valoarea 0.
Atât pentru functia MsgBox( ) cât si pentru procedura MsgBox argumentul msg este obligatoriu, celelalte fiind facultative. Valoarea returnata de functia MsgBox( ) indica butonul care a fost selectat, conform tabelului de mai jos:
Valoare
|
Semnificatie
|
Constanta simbolica recomandata
|
1
|
Butonul OK selectat
|
vbOK
|
2
|
Butonul Cancel selectat
|
vbCancel
|
3
|
Butonul Abort selectat
|
vbAbort
|
4
|
Butonul Retry selectat
|
vbRetry
|
5
|
Butonul Ignore selectat
|
vbIgnore
|
6
|
Butonul Yes selectat
|
vbYes
|
7
|
Butonul No selectat
|
vbNo
|
Este indicat a se utiliza constante simbolice în locul numerelor deoarece în acest fel creste claritatea programului (semnificatia constantei vbAbort este evidenta, pe când nr. 3 nu spune nimic).
Aplicaţii -
Să completăm aleator o matrice, să afişăm şi să realizăm rotirea lui.
|
Form:
|
CAPTION: Mátrix Forgatas
BackColor, Font, ForeColor
|
5 darab Cmdbutton:
|
Caption:
FONT
|
|
Coduri
Dim a(1 To 5, 1 To 5) As Integer
Dim i, j, n As Integer
|
Public Sub Matrix()
Dim uzenet As String
uzenet = "Add meg a mátrix dimenzióját." + vbCrLf + "az érték 3 és 5 között legyen"
n = InputBox(uzenet, "Matrix dimenziója", 3)
Randomize
For i = 1 To n
For j = 1 To n
a(i, j) = Int(10 * Rnd(1))
Next j
Next i
End Sub
|
Public Sub ir()
Dim szo As String
For i = 1 To n
szo = " "
For j = 1 To n
szo = szo + Str(a(i, j)) + " "
Next j
Print szo
Next i
Print
End Sub
|
Public Sub forgat()
Dim b(1 To 5, 1 To 5) As Integer
For i = 1 To n
For j = 1 To n
b(i, j) = a(n - j + 1, i)
Next j
Next i
For i = 1 To n
For j = 1 To n
a(i, j) = b(i, j)
Next j
Next i
End Sub
|
Private Sub Command1_Click()
Call Matrix
Call ir
Command1.Enabled = False
End Sub
|
2. Ştiind data de naştere a unei persoane să determinăm vârsta. Ziua de naştere câte zile a trăit ce horoscop are.
|
Form:
|
CAPTION: Horoszkóp
BackColor
|
1 darab Cmdbutton:
|
Caption:
FONT
|
9 Label
|
Caption
Font, ForeColor
|
8 Textbox
|
Name, Font, BackColor, ForeColor
|
|
Coduri
Public Sub szamol()
Dim datum As Date
Dim nr As Double
Dim ev, ho, nap As Variant
ev = Val(txtev.Text)
ho = Val(txthonap.Text)
nap = Val(txtnap.Text)
If (ev > 0) And (ho > 0) And (ho < 13) And (nap > 0) And (nap < 32) Then
datum = DateSerial(ev, ho, nap)
txtkor = Year(Now) - Year(datum)
nr = DateValue(Now) - DateValue(datum)
txthany.Text = nr
Select Case Weekday(datum)
Case 1
txtsznap.Text = "vasarnap"
...
End Select
Select Case ho
Case 1
If nap < 20 Then
txthoroszkop.Text = "Bak"
Else
txthoroszkop.Text = "Vízöntõ"
End If
...
End Select
Select Case ev Mod 12
Case 0
txtkinai.Text = "Majom"
...
End Select
End If
End Sub
|
Elemente de grafică în Visual Basic
Pentru alegerea unei colori se va folosi controlul ColorDialog. Acest control permite afişarea de ferestrei de dialog standard pentru alegerea unei culori. Metoda acestui control asociată deschiderii ferestrei dialog pentru alegerea unei culori este ShowDialog.
Desenarea de puncte
Utilizatorul va putea să deseneze puncte atunci când va apăsa butonul stânga al mouse-ului deasupra suprafeţei de desenare. În consecinţă, se va identifica evenimentul corespunzător acestei operaţii. Acesta este MouseDown.
Desenarea de linii
Utilizatorul va putea desena segmente de dreaptă definind prima pereche de coordonate (x,y) la apăsarea butonului stânga a mouse-ului, iar a doua pereche la eliberarea butonului. Între apăsarea şi eliberarea butonului de mouse, utilizatorul va deplasa cursorul de mouse între cele două puncte care vor defini segmentul de dreaptă dorit. Metoda grafică ce permite desenare de linii este DrawLine.
Desenarea de dreptunghiuri
Desenarea de dreptunghiuri se va efectua precizand coordonatele coltului din stanga sus a dreptunghiului si a latimii si inaltimii lui. Metoda grafică ce permite desenare de dreptunghiuri este DrawRectangle.
Desenarea de elipse
Desenarea unei elipse se va putea efectua prin precizarea colţului stânga-sus (apăsarea butonului stânga al mouse-ului) şi a lăţimii şi înălţimii dreptunghiului circumscris elipsei. Metoda grafică ce permite desenarea de elipse este DrawEllipse.
Desenarea liberă
Desenarea liberă va consta din desenarea cu ajutorul cursorului de mouse într-un mod similar celui în care se desenează pe o hârtie cu ajutorul creionului. Desenarea liberă va începe odată cu apăsarea butonului stânga al mouse-ului şi se va sfârşi odată cu eliberarea acestuia. Între aceste două evenimente utilizatorul poate mişca cursorul de mouse, traiectoria descrisă de acesta fiind afişată pe suprafaţa de desenare ca o dâră continuă. În acest caz apare necesitatea folosirii evenimentului MouseMove (acesta apare atunci când deplasăm cursorul de mouse deasupra unui control).
Aplicaţia calculatorul
Problema:
Să se realizeze un calculator de buzunar, aşa cum este cel din mediile Windows, care să permite realizarea de calculi aritmetice simple (adunări, scăderi, înmulţiri şi împărţiri) cu numere reale.
Proiectare
Interfaţa
Pentru aceste patru operaţii vom avea patru butoane distincte.
Pentru a putea lucra cu numere reale, avem nevoie de un buton pentru virgula zecimală.
Pentru a şterge ecranul vom folosi butonul C, iar pentru memorare butonul CE.
Pentru afişarea rezultatului folosim butonul egal.
Vom folosi 10 butoane pentru cifre, care le grupăm într-un tablou.
Vom folosi un TextBox pentru introducerea valorilor, şi afişarea rezultatelor.
Vom folosi o bară de meniuri, pentru a comuta între cele două opţiuni oferite de calculator. Cel standard, şi cel matematic, care determină soluţiile ecuaţiilor de gradul I. respectiv gradul al doilea.
Construcţia formului:
Programul
Fiecare buton vom accesa prin evenimentul Click.
Semnul |
|
|
| Virgula zecimală |
|
|
| Ştergerea ultimei cifre |
|
| |
|
|
| Ştergere totală |
|
|
|
Cele patru butoane pentru operaţii acţionează realizând următoarele trei lucruri:
-
Determină rezultatele calculelor
-
Stabileşte noua valoare al operatorului
-
Modifică şirul de caractere
Cea mai important subrutină aprogramului este cea care se asociază evenimentului Clic asupra butonului “egal”. Valoarea rezultatului current este păstrată ăn variabilă, se evaluează şirul de caractere, şi seactualizează cu valoarea reultatului.
La Rezolvarea ecuaţiei ax2+bx+c=0 am folosit următoarele butoane
-
semnul
-
Ştergerea ultimei cifre
-
Revenire la ecuaţie
Programul în mod continu afişează datele ecuaţiei. Acest lucru am rezolvat prin afişarea şi ascunderea labelurilor.
Conţinut
Obiecte entităţea si colecţii 3
Proprietăţi 3
Clase si proprietăţi 3
Evenimente 4
Fereastra principală 5
Proprietati si metode 5
Aplicaţie 12
Constante, variabile, expresii 14
Expresii 15
Tablouri 16
Structuri de control 16
Proceduri functii 17
Aplicaţie 19
Aplicaţii 22
Proiectare 27
Programul 28
Dostları ilə paylaş: |