Documente Academic
Documente Profesional
Documente Cultură
Vom prezenta acum n detaliu, principalele proprieti, evenimente i metode ale unui control
Form sau Formular:
Tabel 1 Proprietile formei
Proprietate
Descriere
BackColor
FormBorderStyle
Text
ControlBox
Enabled
(Activat)
Fontul Bold
Fontul Italic
Font Name
(Nume Font)
FontSize
(Mrime font)
Font Strikethrough
FontUnderline
ForeColor
Height
(nlimea)
Icon
(Iconia)
minimizeaz forma.
KeyPreview
MaximizeBox
MinimizeBox
Cursor
Name
(Numele)
BackgroundImage
(Imagine)
Tag
Visible
(Vizibil)
Width
(Limea)
WindowState
Recapitulare: Putei personaliza forma n multe feluri. O putei maximiza sau minimiza.
Putei folosi culori i stiluri diferite. De cele mai multe ori, vei dori o form simpl cu un text
n titlu care s identifice aplicaia; n acest caz, singurele valori ale proprietii pe care va
trebui s le modificai sunt cele ale textului din Text.
Tabelul 2. Evenimentele formei.
Eveniment
Descriere
Click
DoubleClick
Deactivate
(Dezactivare)
DragDrop
KeyPress
KeyUp
Load
DragOver
KeyDown
MouseDown
MouseMove
MouseUp
Paint
Resize
Descriere
BackColor
(Culoarea de fundal)
Text
DragIcon
Enabled
(Activat)
FontSize
(Mrime font)
Font Strikethrough
Font Underline
Height
(nlimea)
Cursor
(Cursorul de Mouse)
Name
(Numele)
TabIndex
TabStop
Tag
Top
Visible
(Vizibil)
Width
(Limea)
Eveniment
Descriere
Click
DragDrop
DragOver
KeyDown
KeyPress
KeyUp
Descriere
AutoSize
BackColor
(Culoarea de
fundal)
BorderStyle
Text
Enabled
(Activat)
Fontul Bold
Fontul Italic
Font Name
(Nume Font)
FontSize
(Mrime Font)
Font
Strikethrough
Font Underline
ForeColor
Height
(nlime)
Cursor
(Cursorul de
Mouse)
Name
(Numele)
TabIndex
Tag
Visible
(Vizibil)
Width
(Limea)
Eveniment
Descriere
Click
Double Click
DragDrop
DragOver
MouseDown
MouseMove
MouseUp
Vom proiecta o form pe care vom specifica funciile aplicaiei i vom pune la dispoziia
utilizatorului dou casete de tip Text (Text Box) pentru a specifica cele dou iruri i o a treia
caset pentru a afia rezultatul.
Vom mai pune la dispoziia utilizatorului un buton de comand pentru a determina procedura
de calcul, un buton pentru ieirea din aplicaie i unul pentru a terge coninutul casetelor n
vederea relurii calculului (un fel de Reset).
Vom terge textul scris iniial la proprietatea Text a celor trei casete de text (Text1, Text2 i
respectiv Text3) i vom lsa deci spaiu.
Vom scrie la proprietatea Text a fiecrui buton de comand textul dorit, respectiv:
Concatenare, Reset, EXIT.
La lansarea n execuie (cu DEBUG Start Debugging sau apsnd tasta F5) aplicaia se
prezint astfel:
Utilizatorul va introduce cele dou iruri i, dac va aciona butonul Concatenare aplicaia va
afia rezultatul obinut, astfel:
Acionnd butonul Reset aplicaia iniializeaz cu spaiu coninutul celor trei casete de text i
este gata s accepte alte valori ale celor 2 iruri. Prin urmare, procedura de cod asociat
acestui buton de comand va trebui s realizeze aceste funciuni.
Exerciiul 2:
Adgai pe forma de mai sus un buton nou, la apsarea cruia s se calculeze suma a dou
numere introduse de la tastatur prin intermediul celor dou casete de text.
Rezolvare:
Vom modifica mai nti textul afiat n partea de sus pentru a preciza corect funciile
aplicaiei.
Din analiza problemei, reiese c se poate cere fie concatenarea (alipirea) valorilor introduse n
cele dou casete de text, fie suma acestora, dac au fost introduse valori numerice.
n acest caz, procedura de calcul asociat butonului nou introdus introduce funcii de
conversie: Val(ir) - pentru a transforma irul de caractere din variabila Text n valoare
numeric i a se putea efectua astfel calculul aritmetic (adunarea).
Procedura va fi n acest caz:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
End Sub
Descriere
BackColor
(Culoarea de
fundal)
BorderStyle
Enabled
(Activat)
Dac este setat True (default) acel text box poate rspunde la
evenimente. Altfel, Visual Basic oprete procesarea
evenimentelor pentru controlul respectiv.
Font Bold
Font Italic
Font Name
(Numele Fontului)
FontSize
(Mrime Font)
ForeColor
Height
(nlimea)
MaxLength
Cursor
(Cursorul de
mouse)
MultiLine
Dac este True, respectivul text box poate afia mai mult de o
linie de text. Dac este Fals (default), acel text box conine o
singur linie de text, adesea lung. Textul poate conine un
carriage return.
Name
(Numele)
PasswordChar
ScrollBars
TabIndex
TabStop
Tag
Text
rulrii. .
Visible
(Vizibil)
Width
(Lime)
Descriere
DragDrop
DragOver
KeyDown
KeyPress
KeyUp
Se definesc dou controale tip etichet: unul Label1 cu textul Starea casetei la
proprietatea Text, i altul Label2 avnd iniial spaiu la proprietatea Text. Aceasta i va
modifica proprietatea Text n timpul execuiei i va afia un mesaj corespunztor strii casetei.
Pentru aceasta se scrie procedura (cod) ataat evenimentului Click al casetei de validare
cu numele Verific.
Executnd aplicaia noastr, se obine:
Procedura ataat evenimentului click al casetei Verifica este:
Private
Sub
Verifica_CheckedChanged(ByVal sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
Verifica.CheckedChanged
If Verifica.Checked = True
Then
Label2.Text = "Caseta
este bifata"
ElseIf Verifica.Checked =
False Then
Label2.Text = "Caseta nu
este bifata"
End If
End Sub
Descriere
BackColor
(Culoarea de fundal)
Text
Textul care apare asociat unui check box. Dac precedai orice
caracter din text cu un &, acel caracter se va comporta ca tasta
Font Bold
Font Italic
Font Name
(Nume font)
Font Size
(Mrime font)
Font Strikethrough
Font Underline
ForeColor
Height
(nlime)
Cursor
(Cursorul de Mouse)
Name
(Numele)
TabIndex
TabStop
Tag
Checked
Arat starea respectivului check box. Poate lua valorile: Falseneselectat (default) sau True-selectat.
Visible
(Vizibil)
Width
(Limea)
Tabelul urmtor prezint evenimentele disponibile pentru controalele check box. La fel ca n
cazul butoanelor de opiuni, Click este procedura cea mai des folosit.
Tabelul 2. Evenimentele controlului Ceck Box
Eveniment
Descriere
Click
DragDrop
DragOver
KeyDown
KeyPress
KeyUp
Rezolvare:
End If
Observaie:
Pentru a fi mai riguroi ar trebui ca n procedura asociat butonului Reset
(Button2_Click()) s iniializm i butoanele de opiune, deci s adugm comenzile:
RadioButton1.Checked=False
RadioButton2.Checked=False
Prezentm n continuare principalele proprieti i evenimente ale controlului Option Button:
Tabelul 1 Proprietile controlului Option Button
Proprietaze
Descriere
BackColor
(Culoarea de fundal)
Text
Enabled
(Activat)
Font Bold
Font Italic
FontName
FontSize
(Mrime font)
Font Strikethrough
Altel, Fals.
Font Underline
ForeColor
Height
Cursor
(Cursorul de Mouse)
Name
(Numele)
TabIndex
TabStop
Tag
Checked
(Valoarea)
Visible
(Vizibil)
Width
(Limea)
Tabelul 2 conine o list de evenimente ale butonului de opiuni care determin proceduri pe
care le putei scrie. n general, procedura Click este cel mai des folosit pentru ca aplicaia s
execute o anumit aciune atunci cnd utilizatorul selecteaz un anumit buton de opiuni.
Tabelul 2. Evenimentele controlului Option Button
Eveniment
Descriere
Click
DragDrop
DragOver
KeyDown
KeyPress
KeyUp
index precizeaz poziia din list unde va fi inserat noul articol. Dac lipsete,
articolul va fi adugat la sfrit. Dac index = 0, articolul va fi adugat la nceputul
listei. Dac are o anumit valoare, articolul se va aduga la poziia respectiv.
Metoda Items.Add permite adugarea de articole n list fie n timpul proiectrii, prin
atribuirea de valori proprietii Items, fie n timpul execuiei aplicaiei, prin intermediul
procedurilor apelate ca rspuns la aciunile utilizatorului.
Astfel, la nceput articolele se vor nscrie la proprietatea Items, n lista pus la dispoziie.
Pentru a trece la un nou articol se apas tastele CTRL/ENTER.
Elementele din list pot fi apoi ordonate, sortate, caz n care proprietatea Sorted trebuie
s ia valoarea True. n acest caz ns nu mai avem voie s folosim metoda Items.Add cu
index, pentru a controla noi poziia n care se adaug articolul n list.
Accesul la un articol din list se face prin proprietatea Items, al crei format este:
Nume caset.Items (index) unde:
Nume caset este numele casetei (implicit este List1, List2, etc).
Index reprezint poziia articolului n list (primul are numrul de ordine 0).
Items.Remove este metoda care permite tergerea unui articol din list, avnd formatul
general:
Nume caset.Items.RemoveAt( index)
Pentru tergerea tuturor articolelor din list se utilizeaz metoda Items.Clear, cu formatul:
Nume caset.Items.Clear
Exerciiul 1:
S se realizeze o aplicaie care s conin o caset cu list (denumit automat List1). S se
afieze (ntr-un control tip etichet marcat n cadrul formei noastre) numrul articolului
selectat de utilizator.
Rezolvare:
Proiectm forma Form1, pe care definim:
- un control etichet, care s precizeze mesajul adresat utilizatorului, de a selecta
produsul dorit din list;
- un control tip list, n care nscriem iniial la proprietatea List cteva articole;
- un alt control etichet, care s afieze poziia articolului selectat
Exerciiul 2:
Completai aplicaia anterioar astfel nct s permit adugarea de noi articole n list,
precum i tergerea unora dintre ele.
Not: Ori de cte ori se va executa, aplicaia noastr va aduga n list numai articolul
mere, ceea ce nu este normal .
Exerciiul 3:
Modificai aplicaia de mai sus astfel nct de data aceasta procedura de adugare a unui
produs nou n list s se fac prin introducerea datelor de la tastatur. Procedura va fi acum :
Descriere
BackColor
(Culoarea de
fundal)
MultiColumn
(Coloanele)
Poate lua valoarea False - caseta de tip list are o singur coloan,
cu derulare pe vertical sau True caset de tip list multicoloan
cu derulare pe orizontal.
Enabled
(Activat)
Font Bold
Font Italic
Font Name
Font Strikethrough Adevrat (default), dac valorile din list sunt afiate n caractere
sttrikethrough (caracterele au o linie peste ele). Altel, Fals.
Font Underline
ForeColor
Height
(nlimea)
Items
Cursor
(Cursorul de
Mouse)
SelectionMode
(MultiSelecia)
Name
(Numele)
Sorted
(Sortare)
TabIndex
TabStop
Dac are valoarea True utilizatorul poate apsa Tab pentru a muta
cursorul pe acest list box. Dac este fals, acest list box nu poate fi
activat cu Tab.
Tag
Visible
(Vizibil)
Adevarat sau fals, arat dac utilizatorul poate vedea sau nu (i deci
folosi) controlul list box.
Width
(Limea)
Observaie:
Cnd plasm un control ListBox pe o form, decidem ct de nalt dorim s fie acel list box
prin redimensionarea controlului la mrimea care se potrivete cel mai bine. Este important s
ne reamintim c dac nu toate valorile ncap n ListBox, Visual Basic adaug bare de scroll la
caseta tip list, pe care utilizatorul le poate folosi pentru a vedea toate valorile.
Tabelul 2 prezint cele mai multe evenimente pe care le accept controlul ListBox i pe care
le putem utiliza n programe.
Tabelul 2 Evenimentele controlului List Box
Element
Descriere
Click
Double Click
DragDrop
Drag Over
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp
Tabelul 3 conine o serie de metode ale controlului listbox necesare pentru a iniializa, analiza
i elimina elementele unui control list box, deci pentru a le prelucra. Metodele funcioneaz ca
programe (proceduri) care opereaz pe controale.
Tabelul 11.3 Metodele controlului List Box
Numele Metodei
Descriere
Items.Add
(Adaug element)
Items.Clear
(terge)
SelectedIndex
Items.Count
(Numr elemente
list)
Items.Remove
(terge element)
SelectedItem
(Selectat)
Forma proiectat
Execuia aplicaiei
Descriere
Back Color
(Culoarea de
fundal)
Enabled
(Activat)
Font Bold
Font Italic
Font Name
Numele stilului de text folosit n caseta combo. n mod normal, vei
(Numele fontului) folosi numele unui font TrueType din Windows.
Font Size
(Mrime font)
(Font Subliniat)
ForeColor
Height
(nlimea)
Cursor
(Cursorul de
mouse)
Name
(Numele)
Sorted
(Sortare)
Dac este Fals (default), valorile din list apar n aceeai ordine n
care programul le-a adugat. Dac este True Visual Basic afieaz
valorile din caseta combo ordonate numeric sau alfabetic.
TabIndex
TabStop
Tag
Text
Visible
(Vizibil)
Adevarat sau fals, arat dac utilizatorul poate vedea sau nu (i deci
poate folosi sau nu) controlul respectiv.
Width
(Limea)
Not:
Observai c nu exist proprietatea Selecie Multipl la caseta combo, ca n cazul controlului
List box. Utilizatorul poate selecta doar un singur element din list la un moment dat.
Tabelul 2 conine o serie de evenimente ale casetei combinate pentru care putei scrie
proceduri echivalente atunci cnd programul trebuie s reacioneze la manipularea unei casete
combo de ctre utilizator.
Tabelul 2. Evenimentele controlului caset combinat (ComboBox)
Eveniment
Descriere
Click
DragDrop
DragOver
KeyDown
KeyPress
KeyUp
Observaie:
Controalele casetei combo susin aceleai metode ca i controalele list box. Prin urmare,
putei aduga, elimina, numra i selecta elementele din caseta combo, dac aplicai metodele
din tabelul prezentat la controlul ListBox.
Acionnd butonul ncarc alta se ncarc n caseta cu poze cealalt imagine. Dac se mai
acioneaz odat, se va ncrca din nou prima imagine.
Prin urmare, acest buton funcioneaz ca un comutator.
End If
Am
proiectat
formularul
apoi
am
lansat
execuie
aplicaia:
Acionnd butonul ADAUGA apare caseta de dialog care permite introducerea datelor, sub
forma:
Datele introduse de la tastatur se vor atribui, pe rnd, elementelor din list. Pentru
aceasta e necesar un contor (i, de tip ntreg) care va fi incrementat (crescut) cu 1 pentru
fiecare
nou citire de la
tastatur. Contorul va
controla
astfel
poziia
articolului adugat n
list
(List1.list(i)).
Ca efect
se
list,
numele
persoanelor
introduse de la tastatur
regsesc n caseta tip
astfel:
Valoare CONSTANT.TXT
Descriere
MB_OK
MB_OKCANCEL
MB_ABORTRETRYIGNORE
MB_YESNOCANCEL
MB_YESNO
MB_RETRYCANCEL
16
MB_ICONSTOP
32
MB_ICONQUESTION
48
MB_ICONEXCLAMATION
64
MB_ICONINFORMATION
MB_DEFBUTTON1
256
MB_DEFBUTTON2
512
MB_DEFBUTTON3
4096
MB_SYSTEMMODAL
Aplicaia utilizatorului es
ceea ce nseamn c ferea
trebuie rezolvat nainte
alt program Windows
Valoare CONSTANT.TXT
Descriere
IDOK
IDCANCEL
IDABORT
IDRETRY
IDIGNORE
IDYES
IDNO
Apelarea editorului se face folosind Toolbox-ul i de acolo opiunea Menus & Toolbars i se
selecteaz obiectul Menu Strip.
Exerciiu:
S se proiecteze un meniu care s pun la dispoziia utilizatorului opiuni pentru toate
problemele rezolvate de noi pn acum.
Rezolvare:
S presupunem c acestea pot fi grupate n 4 grupe mari de funciuni i anume:
Calcule (aritmetice sau pentru expresii), Imagini (una sau mai multe), iruri (concatenare sau
cutare) i Ieire.
Formular proiectat
Formular executat
expresie este o construcie prin care se reprezint o formul pentru calculul valorii unui obiect
oarecare. O expresie const dintr-o secven format din operanzi (variabile, constante, etc.) i
operatori (simboluri operaionale).
Instruciunea de apel procedur specific activarea (apelul) procedurii al crui nume apare
n instruciune i are forma:
nume_de_procedur list_parametri_actuali
sau
Call nume_de_procedur(list_parametri_actuali)
Structura alternativ
Structura alternativ este descris cu ajutorul instruciunilor If Then, If Then Else i
Select Case.
Visual Basic ofer o alternativ la instruciunea If ThenElse ce permite executarea
unui bloc de instruciuni dintre mai multe n cazul n care este ndeplinit o anumit condiie
i anume instruciunea Select Case.
Structura repetitiv
Aceast structur permite repetarea n anumite condiii a unei instruciuni sau a unei
secvene de instruciuni. Visual Basic suport dou tipuri de structuri repetitive: structuri
repetitive cu contor descrise de instruciunile For Next i ForEachNext care execut
acelai lucru de un numr stabilit de ori i structuri repetitive cu condiie descrise de diferitele
variante ale instruciunii DoLoop ce ndeplinesc aceeai sarcin atta timp ct o condiie
exist sau pn cnd nu mai exist o condiie.
Exemplu:
Do While i<=9
MsgBox Este repetarea numrului: + str(i)
Loop
n casetele de tip Text de sub cele dou liste dorim s afim, atunci cnd se face un clic
mouse n interiorul unei liste, numrul de elemente din lista respectiv.
Codul aferent procedurilor scrise se prezint astfel:
Public Class Form1
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button6.Click
End
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
' Dim b As Integer
If ListBox1.Items.Count > 0 Then
'b = ListBox1.SelectedIndex
For i = 0 To ListBox1.Items.Count - 1
If ListBox1.GetSelected(i) = True Then
Me.ListBox2.Items.Add(Me.ListBox1.Items.Item(i))
End If
Next i
'Me.ListBox1.Items.RemoveAt(b)
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
If ListBox1.Items.Count > 0 Then
ListBox2.Items.Clear()
For i = 0 To ListBox1.Items.Count - 1
Me.ListBox2.Items.Add(Me.ListBox1.Items.Item(i))
Next i
End If
End Sub
Formatul
cerut
Rezolvare:
Se observ c la mprire se verific mai nti dac mpritorul este diferit de 0 i, dac nu
este, se afieaz un mesaj de eroare.
Procedurile asociate butoanelor de comand se prezint astfel:
3. S se realizeze un alt calculator simplu, n care operaiile de calcul s corespund unor butoane de
opiuni (butoane radio).
Rezolvare:
Sugestie:
Toate cifrele de la 0 la 9, precum i operatorii aritmetici vor avea cte un buton de comand
corespunztor. Pentru afiarea cifrelor tastate prin apsarea butoanelor calculatorului, vom
ine seama de faptul c irul din caseta de tip text se termin la apsarea unei taste de operaie.
Pentru fiecare tast de cifr n procedura asociat vom avea o instruciune de forma:
Text1.text= Text1.text+1 pentru cifra 1, etc.
Pentru adugarea n list vom realiza o concatenare a operanzilor cu operatorii i cu rezultatul,
vom depune irul astfel obinut ntr-o variabil de tip ir de caractere i apoi vom aduga n
list coninutul acestei variabile.
5. S se proiecteze i s se realizeze o aplicaie care s permit analiza unui text introdus de la
tastatur, afiarea primului cuvnt i apoi la cerere a urmtoarelor cuvinte din text. S se afieze
deasemenea numrul de caractere din text.
Rezolvare:
6. S se realizeze un editor de texte, care s permit introducerea unui text de la tastatur i apoi
salvarea lui pe disc prin intermediul unei ferestre de dialog. Editorul trebuie s permit i deschiderea
unui fiier existent n vederea editrii.
Rezolvare:
Am proiectat 3 forme astfel:
Imports System
Imports System.IO
Public Class Form2
Private Sub DriveListBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
DriveListBox1.SelectedIndexChanged
Try
DirListBox1.Path = DriveListBox1.Drive
Catch
End Try
TextBox1.Text = DirListBox1.Text
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form1.Show()
Me.Hide()
End Sub
Private Sub DirListBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
DirListBox1.SelectedIndexChanged
Try
FileListBox1.Path = DirListBox1.Path
Catch
End Try
TextBox2.Text = Me.TextBox2.Text & Me.DirListBox1.SelectedItem &
"\"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.TextBox1.Text = Me.TextBox1.Text & Me.TextBox2.Text &
Me.FileListBox1.SelectedItem
Try
Using fisier As StreamReader = New
StreamReader(Me.TextBox1.Text)
Dim linie As String
Do
linie = fisier.ReadLine()
Form1.TextBox1.Text = Form1.TextBox1.Text & linie
Loop Until linie Is Nothing
fisier.Close()
End Using
Catch
End Try
Form1.Show()
Me.Hide()
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
TextBox2.Text = ""
TextBox1.Text = ""
Me.DirListBox1.Refresh()
Me.FileListBox1.Refresh()
Me.DriveListBox1.Refresh()
End Sub
Rezolvare:
Am proiectat dou formulare, astfel:
Form1 este formularul n care este afiat ora sistemului i conine 2 butoane Alarm i Exit,
un label (care afieaz ora exact) i un textbox ascuns.
Form2 este activat la actionarea butonului Alarm i conine 2 textboxuri n care se introduc
ora, respectiv minutele la care alarma este activat, trei label-uri i un buton de Ok.
Form1.Timer2.Enabled = True
Form1.Timer2.Interval = 1000
If TextBox1.Text > 24 Or TextBox1.Text < 0 Then
MsgBox("Introduceti o valoare intre 0 si 24", vbExclamation,
"Ora Incorecta !!!")
TextBox1.Text = ""
ElseIf TextBox2.Text > 59 Or TextBox2.Text < 0 Then
MsgBox("Introduceti o valoare intre 0 si 59", vbExclamation,
"Minute Incorecte !!!")
TextBox2.Text = ""
End If
Me.Hide()
End Sub
End Class
Toate opiunile bifate pentru salariat vor genera mai nti un dialog cu utilizatorul pentru
a cere datele respective (exemplu: sporul de vechime, funcia,etc) i apoi calculele necesare
prin intermediul procedurilor asociate acestor casete de validare.
CheckBox3.Checked
CheckBox4.Checked
CheckBox5.Checked
CheckBox6.Checked
CheckBox7.Checked
FUNCTIA = 0
VEC = 0
SPORV = 0
SPORT = 0
SPORN = 0
PRIME = 0
CHIRII = 0
SALB = 0
IMPOZIT = 0
PEN = 0
RESTP = 0
End Sub
=
=
=
=
=
0
0
0
0
0
Else
SPORV = 0
End If
CALCUL()
End Sub
Private Sub CheckBox3_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles CheckBox3.Click
If CheckBox3.Checked Then
SPORT = 350000 'CONSTANT
Else
SPORT = 0
End If
CALCUL()
End Sub
Private Sub CheckBox4_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles CheckBox4.Click
If CheckBox4.Checked Then
SPORN = 300000 'CONSTANT
Else
SPORN = 0
End If
CALCUL()
End Sub
Private Sub CheckBox5_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles CheckBox5.Click
If CheckBox5.Checked Then
PEN = 15000 'SUMA CONSTANTA PENTRU ORICE ABATERE
Else
PEN = 0
End If
CALCUL()
End Sub
Private Sub CheckBox6_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles CheckBox6.Click
If CheckBox6.Checked Then
SALB = SALARIU + SPORV + SPORT + SPORN + PRIME
If SALB < 606000 Then
IMPOZIT = SALB * 19 / 100
ElseIf SALB < 1300000 Then
IMPOZIT = 127000 + (SALB - 606000) * 21 / 100
Else
IMPOZIT = 320000 + (SALB - 130000) * 25 / 100
End If
Else
IMPOZIT = 0
End If
CALCUL()
End Sub
Private Sub CheckBox7_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles CheckBox7.Click
If CheckBox7.Checked Then
CHIRII = InputBox("CHIRII")
Else
CHIRII = 0
End If
CALCUL()
End Sub
End Class
9. S se realizeze un program care s calculeze maximul i minimul pentru liniile i coloanele unei
matrici ce se va introduce de la tastatur.
Next j
Label3.Text = Label3.Text & pauza
For i = 1 To n
Label3.Text = Label3.Text & "Minimul de pe Linia " & i & " este
" & minL(i) & pauza
Next i
Label3.Text = Label3.Text & pauza
For j = 1 To m
Label3.Text = Label3.Text & "Minimul de pe Coloana " & j & "
este " & minC(j) & pauza
Next j
End Sub
End Class
10. S se realizeze o mic aplicaie care s analizeze, ntr-un text dat, tipul caracterelor: majuscule sau
caractere mici.
Rezolvare:
Textul se va introduce n caseta de text i rezultatul se va afia chiar pe formular.
Am realizat dou proceduri de tip funcie, care stabilesc, pentru fiecare liter n parte, dac este
majuscul sau nu, testnd codul ASCII al acestora.
Se tie c pentru majuscule codul Ascii are valori cuprinse ntre 65 i 90, iar pentru literele mici ntre
97 i 122.
Executnd aplicaia noastr se obine:
11. S se realizeze un program care s preia nota obinut la examenul de admintere i, funcie de
aceasta, s comunice candidatului dac a intrat i, n acest caz, la ce facultate.
Rezolvare:
Stabilim o gril de medii de admitere la diversele faculti.
Label7.Text =
TextBox1.Text
TextBox2.Text
TextBox3.Text
End If
Else
MsgBox("Functia
TextBox1.Text =
TextBox2.Text =
TextBox3.Text =
End If
End Sub
End Class
X2
= ""
= ""
= ""
13. S se realizeze un program care s permit schimbul unei sume n lei ntr-o valut din lista afiat.
Codul surs:
Public Class Form1
Dim curs As Double
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
End
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RadioButton1.CheckedChanged
curs = InputBox("Introduceti cursul valutar pentru USD:")
TextBox2.Text = CStr(Format(Val(TextBox1.Text) / curs,
"FIXED")) + " USD"
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RadioButton2.CheckedChanged
curs = InputBox("Introduceti cursul valutar pentru EURO:")
14. S se realizeze o aplicaie care s calculeze penalitile pentru valoarea unor facturi,
funcie de numrul zilelor de ntrziere la plata facturii.
Calculul penalitilor se face dup urmtorul algoritm:
Penalizri
(%)
0
5
10
20
ntrziere
(zile)
30
(30,45)
[45,60)
60
15. Dezvoltai aplicaia anterioar, astfel nct pe prima form s afiai textul APLICAIE
PENTRU CALCUL PENALITI i s permitei intrarea sau ieirea din aplicaie prin
intermediul a 2 butoane de comand: Start i Exit. Ca efect al acionrii butonului de Start s
apar o a doua form, la care s cerei parola de acces. Permitei cel mult trei ncercri ale
parolei, dup care blocai accesul la aplicaie, permind doar acionarea butonului Exit. Dac
parola a fost corect, permitei accesul la forma a treia, care cere datele i calculeaz
penalitile cerute.
16. S se realizeze o aplicaie care s afieze pe ecran un ceas cu limbi (ore, minute, secunde)
care merge (limbile se mic pentru a arta ora exact).
Rezolvare:
Executnd aplicaia se obine:
g.FillPolygon(MyBrush, fp)
g.DrawLine(Pens.Black, fp(0), fp(1))
g.DrawLine(Pens.Black, fp(1), fp(2))
g.DrawLine(Pens.Black, fp(2), fp(3))
g.DrawLine(Pens.Black, fp(3), fp(4))
'desenarea minutarului
unghi = MIN * SS - (16 * SS)
X = Cos(unghi) * (R - 40)
Y = (Sin(unghi) * (R - 40)) * AspectRatio
fp(0) = New Point(XC, YC)
fp(1) = New Point(XC + X, YC + Y)
unghi = MIN * SS - (14 * SS)
X = Cos(unghi) * (R - 40)
Y = (Sin(unghi) * (R - 40)) * AspectRatio
fp(3) = New Point(XC + X, YC + Y)
unghi = MIN * SS - (15 * SS)
X = Cos(unghi) * (R - 30)
Y = (Sin(unghi) * (R - 30)) * AspectRatio
fp(2) = New Point(XC + X, YC + Y)
fp(4) = fp(0)
g.FillPolygon(MyBrush, fp)
g.DrawLine(Pens.Black, fp(0), fp(1))
g.DrawLine(Pens.Black, fp(1), fp(2))
g.DrawLine(Pens.Black, fp(2), fp(3))
g.DrawLine(Pens.Black, fp(3), fp(4))
'secundarul
unghi = SEC * SS - (15 * SS)
X = Cos(unghi) * R
Y = (Sin(unghi) * R) * AspectRatio
fp(0) = New Point(XC, YC)
fp(1) = New Point(XC + X, YC + Y)
g.DrawLine(Pens.Black, fp(0), fp(1))
Array.Clear(fp, 0, fp.GetUpperBound(0))
fp = Nothing
MyBrush.Dispose()
MyBrush = Nothing
End Sub
Private Sub Draw_Clock_Markers()
Dim index As Integer
If Me.ClientSize.Width > Me.ClientSize.Height
R = (Me.ClientSize.Height / 2) - 25
Else
R = (Me.ClientSize.Width / 2) - 25
End If
index = 0
For unghi = 0 To 2 * PI Step (2 * PI) / 60
X = Cos(unghi) * R
Y = (Sin(unghi) * R) * AspectRatio
If index / 5 = Int(index / 5) Then
g.FillEllipse(Brushes.Firebrick, XC +
10, 10)
g.DrawEllipse(Pens.Black, XC + X - 5,
Else
g.FillEllipse(Brushes.Firebrick, XC +
4)
g.DrawEllipse(Pens.Black, XC + X - 2,
End If
index += 1
Next
Then
X - 5, YC + Y - 5,
YC + Y - 5, 10, 10)
X - 2, YC + Y - 2, 4,
YC + Y - 2, 4, 4)
End Sub
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Activated
If Timer1.Enabled = False Then Timer1.Enabled = True
End Sub
End Class
End Sub
#End Region
#Region "Form Exit Methods"
Private Sub cmdExit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdExit.Click
mnuExit_Click(sender, e)
End Sub
Private Sub mnuExit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuExit.Click
Me.Close()
End Sub
#End Region
#Region "Form Load"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
#If Ver = 2005 Then
Control.CheckForIllegalCrossThreadCalls = False
#End If
End Sub
#End Region
#Region "
ExplorerTree Event Handling"
Private Sub AfterNodeSelect(ByVal pathName As String, ByVal CSI As
CShItem) Handles ExpTree1.ExpTreeNodeSelected
Dim dirList As New ArrayList()
Dim fileList As New ArrayList()
Dim TotalItems As Integer
LastSelectedCSI = CSI
If CSI.DisplayName.Equals(CShItem.strMyComputer) Then
dirList = CSI.GetDirectories
Else
dirList = CSI.GetDirectories
fileList = CSI.GetFiles
End If
Event1.WaitOne()
TotalItems = dirList.Count + fileList.Count
If TotalItems > 0 Then
Dim item As CShItem
dirList.Sort()
fileList.Sort()
Me.Text = pathName
sbr1.Text = pathName & "
" & _
dirList.Count & " Directories " & fileList.Count &
" Files"
Dim combList As New ArrayList(TotalItems)
combList.AddRange(dirList)
combList.AddRange(fileList)
lv1.BeginUpdate()
lv1.Items.Clear()
lv1.Refresh()
For Each item In combList
Dim lvi As New ListViewItem(item.DisplayName)
With lvi
If Not item.IsDisk And item.IsFileSystem Then
Dim attr As FileAttributes
attr = GetAttr(item.Path)
Dim SB As New StringBuilder()
#Region "
IconIndex Loading Thread"
Private Sub LoadLV1Images()
Dim ts As New ThreadStart(AddressOf DoLoadLv)
Dim ot As New Thread(ts)
#If Ver = 2005 Then
ot.SetApartmentState(ApartmentState.STA)
#Else
ot.ApartmentState = ApartmentState.STA
#End If
Event1.Reset()
ot.Start()
End Sub
End Sub
Private Sub txtDropOn_DragEnter(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles txtDropOn.DragEnter
If e.Data.GetDataPresent("FileDrop", True) And _
((e.AllowedEffect And DragDropEffects.Copy) =
DragDropEffects.Copy) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub txtDropOn_DragDrop(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles txtDropOn.DragDrop
Dim fList() As String = e.Data.GetData("FileDrop", True)
txtDropOn.Text = ""
Dim S As String
For Each S In fList
txtDropOn.Text += S & vbCrLf
Next
e.Effect = DragDropEffects.None
End Sub
Private Sub SAY(ByVal S As String)
txtDropOn.Text += S & vbCrLf
Debug.WriteLine(S)
End Sub
Private Sub mnuRefreshTree_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles mnuRefreshTree.Click
ExpTree1.RefreshTree()
End Sub
Private Sub mnuChangeRoot_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles mnuChangeRoot.Click
ExpTree1.RootItem = ExpTree1.SelectedItem
End Sub
Private Sub mnuSetToDesktop_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles mnuSetToDesktop.Click
ExpTree1.RootItem = CShItem.GetDeskTop
End Sub
#Region "
Test Routines"
End Try
Debug.WriteLine("")
Next
End Sub