« Crearea unei solutii VB.NET cu ajutorul mediului de dezvoltare Visual Studio 2008 Tipurile de date asociate variabilelor definite in VB.NET »
Definirea si referirea unei variabile VB.NET 5 comments - This post in english O variabila corespunde unei locatii de memorie, care stocheaza valori la momentul efectuarii de calcule. Variabilele sunt utilizate in calcule, comparatii. Ele au o denumire stabilita in program sursa, iar accesarea valorii stocate in locatia de memorie se realizeaza prin denumirea variabilei. In VB.NET, o variabila are asociat un tip de date [...], fara a fi obligatorie asocierea la momentul definirii. In acest ultim caz, tipul de date asociat variabilei se deduce din valoarea de initializare. Stocarea unei valori in locatia de memorie aferenta unei variabile se realizeaza prin includerea variabilei in operatii de atribuire. Categorii de variabile:
membre: definite in module, clase, structuri; locale: definite in subrutine.
Definirea variabilelor VB.NET se realizeaza cu ajutorul clauzei Dim. Asocierea unui tip de date se efectueaza cu clauza As. Dim a As Integer = 10 Dim b = 15 Dim d, e As Boolean , f, g As Long
In exemplul anterior, variabilele a, d, e, f si g sunt definite avand asociate tipuri de date. Variabila b nu are asociat explicit tipul de date, acesta fiind stabilit Integer prin initializarea cu valoarea 15. Definirea si referirea mai multor locatii de memorie folosind o singura variabila se realizeaza prin masive. Referirea unei valori dintr-un masiv se realizeaza printr-un index. O variabila masiv are asociat un numar de dimensiuni. Dimensiunile reprezinta ―directiile‖ in care se completeaza valorile. Capacitatea de stocare a unui masiv in VB.NET se determina ca
produs al lungimilor dimensiunilor incrementate cu valoarea 1, fiind exprimata in numar de elemente. Definirea variabilelor de tip masiv si referirea elementelor acestora se realizeaza astfel: Dim vector(10) As Integer
a = b + vector(0) Dim mat(10,10) As Double a = a + mat(0,0)
In exemplul anterior, capacitatea de stocare a masivului unidimensional vector este de 11 elemente, respectiv 121 elemente (11 linii x 11 coloane) pentru masivul bidimensional mat. Fiecare element din cele 11 ale masivului vector este de tip Integer, iar pentru fiecare element din masivul mat se asociaza tipul de date Double. Expresia vector(0) extrage valoarea primului element din masivul vector, iar expresia mat(0,0) refera valoarea elementului pozitionat pe linia 1, coloana 1 din masivul mat. Clauza Dim pentru definirea unei variabile in VB.NET poate fi precedata de un modificator de acces pentru a stabili nivelul de acces din codul sursa la variabila definita. Modificatori de acces si semnificatiile acestora sunt:
Public: acces asigurat, fiind accesibila de catre orice cod sursa; Protected: acces restrictionat codului sursa dezvoltat in afara clasei de obiecte [...] sau a claselor derivate din aceasta si in care s-a definit variabila membra; Friend: acces asigurat codului sursa dezvoltat in aceeasi entitate structurala a programului; Protected Friend: uniune modificatori Protected si Friend; Private: acces asigurat doar codului sursa inclus in tipul de date definit.
Alte elemente optionale de definire a unei variabile:
Shared: elementul definit (variabila) este asociata unei clase sau structuri, nu unei instante; Shadows: elementul definit (variabila) redeclara sau ascunde un element sau o multime de elemente supraincarcate; Static: variabile definite local isi continua existenta dupa terminarea subrutinei in care a fost definita, inclusiv valoarea sau valorile asociate acesteia; ReadOnly: elementul definit (variabila) poate fi doar citit, nu si scris; WithEvents: specific variabilelor obiect definite pe baza claselor de obiecte care trateaza evenimente [...]; se precizeaza inainte de denumirea variabilei obiect sau a listei de variabile obiect.
Solutions and tutorials for IT&C development
Home
Posts list About
« Definirea si referirea unei variabile VB.NET Conectare Windows Mobile Emulator la reteaua calculatorului (Windows XP , Vista si 7) »
Tipurile de date asociate variabilelor definite in VB.NET No comments - This post in english Tipurile de date asociate variabilelor stabilesc natura datelor stocate si dimensiunea zonelor de memorie utilizate pentru stocarea datelor. In limbajul VB.NET, dezvoltatorul are la dispozitie urmatoarele tipuri de date:
Boolean: valori True/False; dimensiunea zonei de memorie variaza in functie de platforma de implementare; Byte: valori intregi fara semn; o variabila de tip Byte refera o zona de memorie cu lungime de 1 byte; Char: valori intregi fara semn asociate unui simbol; lungimea zonei de memorie este de 2 bytes; Date: valori de tip data calendaristica si timp orar; lungimea zonei de memorie rezervata este de 8 bytes; Decimal: valori reale cu semn; lungimea zonei de memorie este de 16 bytes; Double: valori reale cu semn reprezentate in virgula mobila, dubla precizie; dimensiunea zonei de memorie estezonei de 8de bytes; Integer: valori intregi cu semn; alocata lungimea memorie este de 4 bytes; Long: valori intregi cu semn; lungimea zonei de memorie este de 8 bytes; Object: valori de tip adresa ce refera obiecte – tipuri referinta: string, masiv, clasa de obiecte, interfata; lungimea zonei de memorie rezervata este de 4 bytes (platforma pe 32 biti) sau 8 bytes (platforma pe 64 de biti); SByte: valori intregi cu semn; dimensiunea zonei de memorie este de 1 byte; Short: valori intregi cu semn; lungimea zonei de memorie este de 2 bytes; Single: valori reale cu semn reprezentate in virgula mobila, simpla precizie; dimensiunea zonei de memorie este de 4 bytes; String: multime de valori intregi fara semn asociate simbolurilor Unicode; fiecare simbol Unicode ocupa o zona de memorie de 2 bytes; UInteger: valori intregi fara semn; lungimea zonei de memorie este de 4 bytes; ULong: valori intregi fara semn; dimensiunea zonei de memorie este de 8 bytes; User-Defined: valori definite de catre dezvoltator; lungimea zonei de memorie depinde de membrii definiti in structura User-Defined; UShort: valori intregi fara semn; dimensiunea zonei de memorie rezervata este de 2 bytes.
Variabilele declarate fara tip de date au asociat implicit tipul Object. Avantajul acestei tehnici consta in scrierea mai rapida a codului sursa. Dezavantajul consta in posibilitatea de executie mai lenta a aplicatiei. Solutions and tutorials for IT&C development
Home Posts list About
« Conectare Windows Mobile Emulator la reteaua calculatorului (Windows XP , Vista si 7) Caracteristici ale evenimentelor in VB.NET »
Definirea unei clase de obiecte VB.NET 9 comments - This post in english Clasa de obiecte este o reprezentare abstracta a unei entitati. Obiectul reprezinta o manifestare concreta a unei clase. Obiectul este structura care contine date si metode de manipulare a datelor. Un obiect contine date prin intermediul campurilor si proprietatilor:
campul: stocheaza date si este similar unei variabile; proprietatea: extrage si modifica valoarea unui camp prin proceduri Get si Set; astfel,
datele sunt izolate, iar valorile din campuri sunt validate. Un obiect contine si metode prin care sunt implementate actiuni. Metodele unui obiect iau forma procedurilor. O actiune recunoscuta de de un obiect poarta denumirea de eveniment [...]. O clasa de obiecte poate implementa interfete in toate aspectele definite in acestea. Interfata reprezinta o colectie de elemente de programare si nu contine partea de implementare. Tipuri de clase de obiecte in functie de sursa definirii:
incluse in VB.NET; construite in alte aplicatii; construite sau modificate de catre dezvoltator in cadrul aplicatiei.
Clasa de obiecte se comporta ca un tip de date, iar utilizatorul poate defini variabile de acest tip. Variabilele se numesc obiecte, continand date si actiuni. Ca exemplu, se considera clasa de obiecte Task, avand urmatoarele campuri: cDenTask: denumire task; cTipTask: categorie task; cResTask: nume responsabil task; cPrioTask: categorie prioritate task.
Campurile cDenTask, cTipTask si cResTask sunt definite cu tipul String, iar campul cPrioTask este de tip Boolean.
Toate campurile sunt definite cu modificatorul de acces Private [...], ceea ce inseamna ca accesul este restrictionat la codul sursa dezvoltat in cadrul clasei. Accesarea si modificarea valorilor campurilor sunt realizate prin proprietatile DenTask, TipTask, ResTask si PrioTask. Public Class Task
'Campuri Private Private Private Private
cDenTask As String cTipTask As String cResTask As String cPrioTask As Boolean
'Proprietati clasa Task 'proprietate camp cDenTask Public Property DenTask() Get
Return cDenTask End Get Set(ByVal value)
cDenTask = value End Set End Property
'proprietate camp cTipTask Public Property TipTask() Get
Return cTipTask End Get Set(ByVal value)
cTipTask = value End Set End Property 'proprietatea camp cResTask Public Property ResTask() Get
Return cResTask End Get Set(ByVal value)
cResTask = value End Set End Property
'proprietate camp cPrioTask Public Property PrioTask() Get
Return cPrioTask End Get Set(cPrioTask ByVal value) = value End Set End Property
'metoda clasa de obiecte Task Public Function ModificaPrioritate( ByVal prioNou As Boolean ) As String cPrioTask = prioNou Dim res As String res = "A fost modificata prioritatea task-ului pe valoarea " &_ cPrioTask & " !"
Return res End Function
' exemplu de constructor fara parametri Public Sub New() cDenTask = "Task Nou" cTipTask = "Tip Task Nou" cResTask = "Responsabil Task Nou" cPrioTask = False End Sub
'supraincarcare constructor - varianta constructor cu parametri Public New(ByVal As String denT , ByVal ByVal resT Sub As String , ByVal prioT As Boolean ) tipT As String , _
cDenTask = denT cTipTask = tipT cResTask = resT cPrioTask = prioT End Sub End Class
Pe langa campuri si proprietati, clasa de obiecte Task definita mai sus contine o metoda denumita ModificaPrioritate construita ca o procedura de tip Function si doua metode constructor supraincarcate. Metoda constructor este una speciala, fiind implementata prin procedura Sub New. Codul din metoda constructor se executa inaintea restului de cod definit in clasa de obiecte. Metoda constructor este apelata la crearea obiectului. Cand nu mai sunt utilizate, obiectele sunt pe distruse prin sistemul referenc e-tracing garbage destructor collection . Distrugerea obiectelor se face baza metodei speciale denumita si implementata prin procedura Sub Finalize. Spre deosebire de metoda constructor, destructorul nu trebuie apelat explicit, sistemul ocupandu-se de apelarea automata a destructorului.
Caracteristici ale evenimentelor in VB.NET 4 comments - This post in english Evenimentul reprezinta un mesaj transmis de catre un obiect si care anunta aplicatia de producerea unui fapt. Evenimentele sunt implementate folosind delegati [...]. De exemplu, apasarea unui buton de comanda intr-o interfata grafica provoaca aparitia evenimentului . Evenimentul esteclaselor, tratat prin intermediul unei proceduri. Click Evenimentele sunt declarate in cadrul structurilor, modulelor si interfetelor utilizand cuvantul rezervat Event. Event Eveniment(ByVal IDArg As Integer )
Transmiterea mesajului asociat unui eveniment este denumita raising, realizandu-se in cadrul clasei, modulului sau a structurii. O clasa de obiecte derivata nu poate provoca transmiterea
evenimentelor mostenite din clasa de baza. Specificatia utilizata pentru transmiterea mesajului este RaiseEvent. RaiseEvent Eveniment(IDArg)
Un obiect capabil sa provoace transmiterea unui mesaj de eveniment poarta denumirea de sursa a evenimentului sau emitator de eveniment. Exemple de obiecte sursa de evenimente sunt obiectele definite de utilizator, controalele si formularele. Aparitia unui eveniment are asociata o procedura denumita handler de eveniment. Inainte ca un handler de eveniment sa poata fi utilizat, trebuie sa se realizeze o asociere intre eveniment si handler-ul. de eveniment. Acest lucru se realizeaza cu ajutorul specificatiilor Handles sau AddHandler Handler-ii de evenimente sunt declarati cu ajutorul specificatiilor WithEvents si Handles. Evenimentele provocate de un obiect prin WithEvents pot fi manipulate cu orice subrutina cu specificatia Handles care precizeaza evenimentul. Asocierea eveniment-handler prin specificatia Handles este limitata prin realizarea asocierii la momentul compilarii. O variabila definita cu specificatia WithEvents nu poate fi utilizata ca o variabila Object, specificandu-se denumirea clasei la momentului definirii. Dim WithEvents ObEveniment As New ClsEveniment
ObEveniment este variabila declarata cu specificatia WithEvents, iar clasa de obiecte ClsEveniment contine declaratii de evenimente si proceduri de transmitere a mesajelor
asociate evenimentelor. Declararea unui handler de eveniment utilizeaza specificatia Handles, asociindu-se cu evenimente declarate in ClsEveniment. Sub ObEveniment_HandlerEveniment() Handles ObEveniment.UnEveniment
Evenimentul UnEveniment este declarat in clasa ClsEveniment. Specificatiile AddHandler si RemoveHandler sunt mai flexibile decat clauza Handles. Este permisa conectarea si deconectarea dinamica a evenimentelor cu unul sau mai multi handler-i la momentul executiei aplicatiei. Variabilele obiect nu mai trebuie declarate cu specificatia WithEvents. AddHandler are doua argumente: denumirea unui eveniment dintr-o sursa de evenimente si o expresie evaluata la delegat. AddHandler ObEveniment.EvenimentDoi, AddressOf Me.HandlerEveniment
RemoveHandler deconecteaza un eveniment de la un handler de eveniment si utilizeaza aceeasi sintaxa ca AddHandler. RemoveHandler ObEveniment.EvenimentDoi, AddressOf Me.HandlerEveniment
Definirea delegatilor in VB.NET 2 comments - This post in english
Delegatul este un pointer care permite apelul unei functii in mod indirect prin intermediul adresei de memorie a acesteia. Delegatul este utilizat pentru a apela metode ale altor obiecte. Este similar pointerului de functie utilizat in alte limbaje de programare. Diferenta consta in faptul ca delegatul este un tip referinta pe baza clasei System.Delegate. Delegatii sunt folositori in situatiile in care aparitia unui eveniment determina apelul de handler-i de eveniment diferiti, in functie de contextul aparitiei evenimentului. Acest lucru impune asocierea dinamica a evenimentelor cu handler-ii de evenimente, fiind utilizati delegatii in acest scop. Declararea unui eveniment cu specificatia Event determina definirea unei clase delegat implicita denumita EventHandler in interiorul clasei in care este definit evenimentul. Specificatia AddressOf creeaza o instanta de delegat implicita. AddHandler ObEveniment.UnEveniment, _ New EventHandler(AddressOf ObEveniment_HandlerEveniment)
Un eveniment poate fi declarat utilizand un tip de delegat creat anterior. Delegat Sub TipDelegat() Event EvenimentDoi As TipDelegat
Acest lucru permite asocierea mai multor evenimente cu acelasi handler de eveniment. Delegatii mai pot fi utilizati pentru apelul de diverse versiuni de subrutine, in functie de contextul executiei aplicatiei. Invocarea metodei delegat presupune:
crearea delegatului; declararea clasei care contine metoda cu aceeasi semnatura cu delegatul (lista de parametri); crearea instantei delegat si invocarea metodei asociata cu delegatul prin apelul metodei standard Invoke.
Exemplul de mai jos evidentiaza mecanisme de definire si utilizare a delegatilor. Tipul de aplicatie selectat la definirea proiectului este Console Application. 'crearea unui delegat Delegate Sub DelOpAritmetica( ByVal x As Integer , ByVal y As Integer ) 'crearea primei clase de obiecte care contine 'o metoda cu aceeasi semnatura ca a delegatului Class GrupOp1 Sub OpDiferenta( ByVal a As Integer , ByVal b As Integer ) Dim dif dif = a -Asb Integer MsgBox("Diferenta este: " & CStr(dif)) End Sub End Class
'crearea celei de a doua clase de obiecte care contine 'o metoda cu aceeasi semnatura ca a delegatului Class GrupOp2
Sub OpInmultire( ByVal a As Integer , ByVal b As Integer ) Dim prod As Integer
prod = a * b MsgBox("Inmultirea este: " & CStr(prod)) End Sub End Class Sub Main()
'definirea unei variabile obiect de tipul GrupOp1 Dim op1 As New GrupOp1 'definirea variabile obiect de tipul GrupOp2 Dim op2 As unei New GrupOp2 'crearea unei instante a delegatului Dim del As DelOpAritmetica 'initiliazarea instantei delegatului cu adresa 'metodei OpDiferenta definita in clasa GrupOp1 del = AddressOf op1.OpDiferenta 'invocarea metodei OpDiferenta prin delegat del.Invoke(10, 3) 'initializarea instantei delegatului cu adresa 'metodei OpInmultire definita in clasa GrupOp2 del = AddressOf op2.OpInmultire 'invocarea metodei OpInmultire prin delegat del.Invoke(9, 3) End Sub
Definirea si referirea unei variabile VB.NET 5 comments - This post in english O variabila corespunde unei locatii de memorie, care stocheaza valori la momentul efectuarii de calcule. Variabilele sunt utilizate in calcule, comparatii. Ele au o denumire stabilita in program sursa, iar accesarea valorii stocate in locatia de memorie se realizeaza prin denumirea variabilei. In VB.NET, o variabila are asociat un tip de date [...], fara a fi obligatorie asocierea la momentul definirii. In acest ultim caz, tipul de date asociat variabilei se deduce din valoarea de initializare. Stocarea valori in de memorie aferenta unei variabile se realizeaza prin includerea variabileiunei in operatii delocatia atribuire. Categorii de variabile:
membre: definite in module, clase, structuri; locale: definite in subrutine.
Definirea variabilelor VB.NET se realizeaza cu ajutorul clauzei Dim. Asocierea unui tip de date se efectueaza cu clauza As. Dim a As Integer = 10 Dim b = 15 Dim d, e As Boolean , f, g As Long
In exemplul anterior, variabilele a, d, e, f si g sunt definite avand asociate tipuri de date. Variabila b nu are asociat explicit tipul de date, acesta fiind stabilit Integer prin initializarea cu valoarea 15. Definirea si referirea mai multor locatii de memorie folosind o singura variabila se realizeaza prin masive. Referirea unei valori dintr-un masiv se realizeaza printr-un index. O variabila masiv are asociat un numar de dimensiuni. Dimensiunile reprezinta ―directiile‖ in care se completeaza valorile. Capacitatea de stocare a unui masiv in VB.NET se determina ca produs al lungimilor dimensiunilor incrementate cu valoarea 1, fiind exprimata in numar de elemente. Definirea variabilelor de tip masiv si referirea elementelor acestora se realizeaza astfel: Dim vector(10) As Integer
a = b + vector(0) Dim mat(10,10) As Double a = a + mat(0,0)
In exemplul anterior, capacitatea de stocare a masivului unidimensional vector este de 11 elemente, respectiv 121 elemente (11 linii x 11 coloane) pentru masivul bidimensional mat. Fiecare element din cele 11 ale masivului vector este de tip Integer, iar pentru fiecare element din masivul mat se asociaza tipul de date Double. Expresia vector(0) extrage valoarea primului element din masivul vector, iar expresia mat(0,0) refera valoarea elementului pozitionat pe linia 1, coloana 1 din masivul mat. Clauza Dim pentru definirea unei variabile in VB.NET poate fi precedata de un modificator de acces pentru a stabili nivelul de acces din codul sursa la variabila definita. Modificatori de acces si semnificatiile acestora sunt:
Public: acces asigurat, fiind accesibila de catre orice cod sursa; Protected: acces restrictionat codului sursa dezvoltat in afara clasei de obiecte [...] sau a claselor derivate din aceasta si in care s-a definit variabila membra; Friend: acces asigurat codului sursa dezvoltat in aceeasi entitate structurala a programului; Protected Friend: uniune modificatori Protected si Friend; Private: acces asigurat doar codului sursa inclus in tipul de date definit.
Alte elemente optionale de definire a unei variabile:
Shared: elementul definit (variabila) este asociata unei clase sau structuri, nu unei instante;
Shadows: elementul definit (variabila) redeclara sau ascunde un element sau o multime de elemente supraincarcate; Static: variabile definite local isi continua existenta dupa terminarea subrutinei in care a fost definita, inclusiv valoarea sau valorile asociate acesteia; ReadOnly: elementul definit (variabila) poate fi doar citit, nu si scris; WithEvents: specific variabilelor obiect definite pe baza claselor de obiecte care trateaza evenimente [...]; se precizeaza inainte de denumirea variabilei obiect sau a listei de variabile obiect.
Solutions and tutorials for IT&C development
Home Posts list About
« Definirea si referirea unei variabile VB.NET Conectare Windows Mobile Emulator la reteaua calculatorului (Windows XP , Vista si 7) »
Tipurile de date asociate variabilelor definite in VB.NET No comments - This post in english Tipurile de date asociate variabilelor stabilesc natura datelor stocate si dimensiunea zonelor de memorie utilizate pentru stocarea datelor. In limbajul VB.NET, dezvoltatorul are la dispozitie urmatoarele tipuri de date:
Boolean: valori True/False; dimensiunea zonei de memorie variaza in functie de platforma de implementare; Byte: valori intregi fara semn; o variabila de tip Byte refera o zona de memorie cu lungime de 1 byte; Char: valori intregi fara semn asociate unui simbol; lungimea zonei de memorie este de 2 bytes; Date: valori de tip data calendaristica si timp orar; lungimea zonei de memorie rezervata este de 8 bytes; Decimal: valori reale cu semn; lungimea zonei de memorie este de 16 bytes; : valori realedecumemorie semn reprezentate mobila, dubla precizie; Double dimensiunea zonei alocata esteindevirgula 8 bytes; Integer: valori intregi cu semn; lungimea zonei de memorie este de 4 bytes; Long: valori intregi cu semn; lungimea zonei de memorie este de 8 bytes; Object: valori de tip adresa ce refera obiecte – tipuri referinta: string, masiv, clasa de obiecte, interfata; lungimea zonei de memorie rezervata este de 4 bytes (platforma pe 32 biti) sau 8 bytes (platforma pe 64 de biti); SByte: valori intregi cu semn; dimensiunea zonei de memorie este de 1 byte; Short: valori intregi cu semn; lungimea zonei de memorie este de 2 bytes;
Single: valori reale cu semn reprezentate in virgula mobila, simpla precizie; dimensiunea zonei de memorie este de 4 bytes; String: multime de valori intregi fara semn asociate simbolurilor Unicode; fiecare simbol Unicode ocupa o zona de memorie de 2 bytes; UInteger: valori intregi fara semn; lungimea zonei de memorie este de 4 bytes; ULong: valori intregi fara semn; dimensiunea zonei de memorie este de 8 bytes; User-Defined: valori definite de catre dezvoltator; lungimea zonei de memorie depinde de membrii definiti in structura User-Defined; UShort: valori intregi fara semn; dimensiunea zonei de memorie rezervata este de 2 bytes.
Variabilele declarate fara tip de date au asociat implicit tipul Object. Avantajul acestei tehnici consta in scrierea mai rapida a codului sursa. Dezavantajul consta in posibilitatea de executie mai lenta a aplicatiei.
Caracteristici ale evenimentelor in VB.NET 4 comments - This post in english Evenimentul reprezinta un mesaj transmis de catre un obiect si care anunta aplicatia de producerea unui fapt. Evenimentele sunt implementate folosind delegati [...]. De exemplu, apasarea unui buton de comanda intr-o interfata grafica provoaca aparitia evenimentului Click. Evenimentul este tratat prin intermediul unei proceduri. Evenimentele suntEvent declarate cuvantul rezervat . in cadrul claselor, structurilor, modulelor si interfetelor utilizand Event Eveniment(ByVal IDArg As Integer )
Transmiterea mesajului asociat unui eveniment este denumita raising, realizandu-se in cadrul clasei, modulului sau a structurii. O clasa de obiecte derivata nu poate provoca transmiterea evenimentelor mostenite din clasa de baza. Specificatia utilizata pentru transmiterea mesajului este RaiseEvent. RaiseEvent Eveniment(IDArg)
Un obiect capabil sa provoace transmiterea unui mesaj de eveniment poarta denumirea de sursa a evenimentului sau emitator de eveniment. Exemple de obiecte sursa de evenimente sunt obiectele definite de utilizator, controalele si formularele. Aparitia unui eveniment are asociata o procedura denumita handler de eveniment. Inainte ca un handler de eveniment sa poata fi utilizat, trebuie sa se realizeze o asociere intre eveniment si handler-ul de eveniment. Acest lucru se realizeaza cu ajutorul specificatiilor Handles sau AddHandler. Handler-ii de evenimente sunt declarati cu ajutorul specificatiilor WithEvents si Handles. Evenimentele provocate de un obiect prin WithEvents pot fi manipulate cu orice subrutina cu specificatia Handles care precizeaza evenimentul. Asocierea eveniment-handler prin specificatia Handles este limitata prin realizarea asocierii la momentul compilarii. O variabila definita cu specificatia WithEvents nu poate fi utilizata ca o variabila Object, specificandu-se denumirea clasei la momentului definirii.
Dim WithEvents ObEveniment As New ClsEveniment
ObEveniment este variabila declarata cu specificatia WithEvents, iar clasa de obiecte ClsEveniment contine declaratii de evenimente si proceduri de transmitere a mesajelor
asociate evenimentelor. Declararea unui handler de eveniment utilizeaza specificatia Handles, asociindu-se cu evenimente declarate in ClsEveniment. Sub ObEveniment_HandlerEveniment() Handles ObEveniment.UnEveniment
ClsEveniment Evenimentul UnEveniment declarat in clasa sunt . decat clauza Handles. Este AddHandler este Specificatiile si RemoveHandler mai flexibile permisa conectarea si deconectarea dinamica a evenimentelor cu unul sau mai multi handler-i la momentul executiei aplicatiei. Variabilele obiect nu mai trebuie declarate cu specificatia WithEvents. AddHandler are doua argumente: denumirea unui eveniment dintr-o sursa de evenimente si o expresie evaluata la delegat. AddHandler ObEveniment.EvenimentDoi, AddressOf Me.HandlerEveniment
RemoveHandler deconecteaza un eveniment de la un handler de eveniment si utilizeaza aceeasi sintaxa ca AddHandler. RemoveHandler ObEveniment.EvenimentDoi, AddressOf Me.HandlerEveniment
Definirea si referirea unei variabile VB.NET 5 comments - This post in english O variabila corespunde unei locatii de memorie, care stocheaza valori la momentul efectuarii de calcule. Variabilele sunt utilizate in calcule, comparatii. Ele au o denumire stabilita in program sursa, iar accesarea valorii stocate in locatia de memorie se realizeaza prin denumirea variabilei. In VB.NET, o variabila are asociat un tip de date [...], fara a fi obligatorie asocierea la momentul definirii. In acest ultim caz, tipul de date asociat variabilei se deduce din valoarea de initializare. Stocarea unei valori in locatia de memorie aferenta unei variabile se realizeaza prin includerea variabilei in operatii de atribuire. Categorii de variabile:
membre: definite in module, clase, structuri; locale: definite in subrutine.
Definirea variabilelor VB.NET se realizeaza cu ajutorul clauzei Dim. Asocierea unui tip de date se efectueaza cu clauza As.
Dim a As Integer = 10 Dim b = 15 Dim d, e As Boolean , f, g As Long
In exemplul anterior, variabilele a, d, e, f si g sunt definite avand asociate tipuri de date. Variabila b nu are asociat explicit tipul de date, acesta fiind stabilit Integer prin initializarea cu valoarea 15. Definirea si referirea mai multor locatii de memorie folosind o singura variabila se realizeaza prin masive. Referirea unei valori dintr-un masiv se realizeaza printr-un index.
O variabila masiv are asociat un numar de dimensiuni. Dimensiunile reprezinta ―directiile‖ in care se completeaza valorile. Capacitatea de stocare a unui masiv in VB.NET se determina ca produs al lungimilor dimensiunilor incrementate cu valoarea 1, fiind exprimata in numar de elemente. Definirea variabilelor de tip masiv si referirea elementelor acestora se realizeaza astfel: Dim vector(10) As Integer
a = b + vector(0) Dim mat(10,10) As Double a = a + mat(0,0)
In exemplul anterior, capacitatea de stocare a masivului unidimensional vector este de 11 elemente, respectiv 121 elemente (11 linii x 11 coloane) pentru masivul bidimensional mat. Fiecare element din cele 11 ale masivului vector este de tip Integer, iar pentru fiecare element din masivul mat se asociaza tipul de date Double. Expresia vector(0) extrage valoarea primului element din masivul vector, iar expresia mat(0,0) refera valoarea elementului pozitionat pe linia 1, coloana 1 din masivul mat. Clauza Dim pentru definirea unei variabile in VB.NET poate fi precedata de un modificator de acces pentru a stabili nivelul de acces din codul sursa la variabila definita. Modificatori de acces si semnificatiile acestora sunt:
Public: acces asigurat, fiind accesibila de catre orice cod sursa; Protected: acces restrictionat codului sursa dezvoltat in afara clasei de obiecte [...] sau a claselor derivate din aceasta si in care s-a definit variabila membra; Friend: acces asigurat codului sursa dezvoltat in aceeasi entitate structurala a programului; Protected Friend: uniune modificatori Protected si Friend; Private: acces asigurat doar codului sursa inclus in tipul de date definit.
Alte elemente optionale de definire a unei variabile:
Shared: elementul definit (variabila) este asociata unei clase sau structuri, nu unei instante; Shadows: elementul definit (variabila) redeclara sau ascunde un element sau o multime de elemente supraincarcate; Static: variabile definite local isi continua existenta dupa terminarea subrutinei in care a fost definita, inclusiv valoarea sau valorile asociate acesteia;
ReadOnly: elementul definit (variabila) poate fi doar citit, nu si scris; WithEvents: specific variabilelor obiect definite pe baza claselor de obiecte care trateaza evenimente [...]; se precizeaza inainte de denumirea variabilei obiect sau a listei de variabile obiect.
BAZELE PROGRAMĂRII Visual Basic for Application (VBA) Tipuri de date Variabilele şi constantele utilizate într-un program VBA pot avea diverse tipuri, specifice datelor memorate. Spre deosebire de alte limbaje de programare, există un tip universal — tipul Variant —, care poate conţine aproape orice alt tip de date. Acest tip este asignat în mod implicit tuturor variabilelor nedeclarate altfel, încât declararea explicită poate fi utilizată atunci când se doreşte economisirea memoriei (tipul Variant alocă mai multă memorie), viteză în execuţie sau atunci când se scriu date într-un fişier în acces direct.
Boolean Domeniu de valori: True sau False (valorile logice) Memorie: 2 bytes Declarator de tip:
Observaţii. Convertirea valorilor numerice la tipul Boolean: 0 produce False, valorile nenule produc True. Convertirea valorilor de tip Boolean la alte tipuri numerice: False devine 0, True devine -1.
Byte Domeniu de valori: 0–255 (numere întregi, fără semn) Memorie: 1 byte Declarator de tip:
Observaţii. Utilizate pentru calcule băneşti (sau alte situaţii în care precizia este foarte importantă). Valorile sunt memorate în format întreg, scalate prin 10 000, pentru a obţine 15 cifre la partea întreagă şi 4 cifre la partea zecimală (reprezentare în virgulă fixă).
Date Domeniu de valori: 1 ianuarie 100 — 31 decembrie 9999, 0:00:00 — 23:59:59 Memorie: 8 bytes Declarator de tip:
Observaţii. Informaţiile de tip dată calendaristică şi/sau timp orar sunt memorate drept numere flotante, partea întreagă reprezentând data calendaristică, partea fracţionară reprezentând timpul. La convertiri, miezul nopţii este 0, miezul zilei este .5, numerele negative reprezintă date înainte de 30 decembrie 1899. Poate fi atribuit ca valoare de tip date oric e literal care reprezintă o dată calendaristică recunoscută ca atare, literalul trebuind să fie cuprins între simboluri #, de exemplu #1 Jan 99#.
Decimal Domeniu de valori: (vezi observaţiile) Memorie: 12 bytes Declarator de tip:
Observaţii. Valorile de tip Decimal sunt memorate ca întregi fără semn însoţiţi de un factor de scală, între 0 şi 28, specificând numărul de zecimale. Pentru scala=0 (fără parte zecimală), cea mai mare valoare posibilă este +/79,228,162,514,264,337,593,543,950,335. Cu scala=28 cea mai mare valoare este +/-7.9228162514264337593543950335 iar cea mai mică valoare nenulă este +/-0.0000000000000000000000000001. Notă: Deocamdată, tipul Decimal poate fi utilizat doar ca subtip în Variant,
adică nu se pot declara variabile ca fiind de tip Decimal. Acestea pot fi create ca Variant cu subtipul Decimal prin funcţia Cdec (funcţia forţează o expresie să fie de un tip specificat, din aceeaşi categorie de funcţii fiind şi CBool, CByte etc.).
Double
Domeniu de valori: numere negative de la -1.79769313486232E308 până la 4.94065645841247E-324; numere pozitive de la 4.94065645841247E-324 până la 1.79769313486232E308 (numere flotante în dublă precizie). Memorie: 8 bytes Declarator de tip: #
Observaţii.
Integer Domeniu de valori: -32 768 — 32 767. Memorie: 2 bytes Declarator de tip: %
Observaţii.
Long Domeniu de valori: -2 147 483 648 — 2 147 483 647. Memorie: 4 bytes Declarator de tip: &
Observaţii.
Object Domeniu de valori: (vezi observaţiile) Memorie: 4 bytes Declarator de tip:
Observaţii. Adrese pe 32 de biţi care se referă la obiecte. Prin instrucţiunea Set se atribuie unei variabile declarate de tip Object referinţa la obiectul dorit. Notă. Prin declararea unei variabile de tip Object, referirea la un obiect prin Set
produce o ataşare târzie (la timpul execuţiei – run-time binding). Pentru o ataşare timpurie (la timpul compilării – compile-time binding) se va utiliza o variabilă declarată cu numele clasei respective.
Single
Domeniu de valori: numere negative de la -3.402823E38 până la -1.401298E45; numere pozitive de la 1.401298E-45 până la 3.402823E38. Memorie: 4 bytes Declarator de tip: !
Observaţii.
String Domeniu de valori: şir de lungime variabilă: până la 2^31 caractere; şir de lungime fixă: până la 2^16 caractere. Memorie: 2 bytes Declarator de tip: $
Observaţii. Un şir de lungime fixă declarat Public nu poate fi utilizat într-un modul de clasă.
Variant (default) Domeniu de valori: aceleaşi cu domeniile specificate la tipurile precedente şi care pot fi subtipuri ale tipului Variant, cu m enţiunea că toate subtipurile numerice au domeniul de la Double. Memorie: în funcţie de subtipul valorii: valorile numerice ocupă 16 bytes, valorile de tip String necesită 22 bytes plus câte un byte pentru fiecare caracter.
Declarator de tip:
Observaţii. Este tipul specificat implicit (în lipsa unei declaraţii explicite) pentru o constantă, variabilă, sau argument (caz care, deşi nerecomandat, poate elimina erorile provocate de diferenţele de tip ale argumentelor la apelul procedurilor). Cu excepţia datelor de tip String cu lungime fixă şi a datelor cu tipuri definite de utilizator, tipul Variant poate conţine orice alt tip de dată. În plus poate să conţină valorile speciale Empty, Error, Nothing şi Null. Tipul considerat pentru o dată conţinută într-un Variant poate fi determinat cu funcţia VarType sau TypeName. Valorile unei variabile Variant pot să-şi convertească valorile automat. În general, datele numerice sunt memorate în tipul de srcine, dar este posibil ca ele să fie promovate la tipul superior dacă rezultatul unei operaţii necesită acest fapt. De exemplu o valoare declarată iniţial drept Integer şi atribuită unui Variant va fi memorată ca un întreg până când, ridicând-o de exemplu la o putere, valoarea ei excede domeniul tipului Integer. În acest caz are loc promovarea (ca mod de reprezentare) la tipul superior adecvat (Long sau
Double). Dacă depăşirea domeniului are loc pentru subtipurile Currency, Decimal sau Double, atunci se va semnala eroare. Utilizarea tipului Variant permite o tratare mai di ferenţiată a şirurilor de cifre: în operaţii numerice vor fi considerate numere iar în operaţii cu şiruri vor fi considerate şiruri. Accesul la valorile Variant este mai lent decât accesul la valorile definite prin tipuri explicite. Valorile speciale au semnificaţia: o o o
o
Empty este valoarea unui Variant care nu a fost iniţializat. În calcule numerice este considerat 0 iar în operaţii cu şiruri este şirul de lungime zero. Null este valoarea unui Variant care, în mod programatic, nu conţine date. Error este valoarea utilizată pentru a arăta îndeplinirea unei condiţii de eroare (prin convertirea unui real cu funcţia CVErr). Procesarea se va efectua de către utilizator, tratarea automată a erorilor nu este activată la setarea acestor valori. Nothing este utilizată pentru disocierea unei variabile de tip Object de un obiect efectiv.
Tipuri definite de utilizator Un tip de dată definit de utilizator reprezintă echivalentul unei înregistrări dintr-un fişier (bază de date), adică o grupare de entităţi de tipuri diferite. Definirea are loc la nivel de modul, prin instrucţiuni Type. Pentru clauzele care apar se va vedea discuţia de la domeniul variabilelor. [Private | Public] Type varname elementname [([subscripts])] As type
[elementname [([subscripts])] As type] ... End Type unde varname este numele dat tipului definit, iar prin elementname se definesc componentele tipului. Se pot utiliza şi componente de tipuri utilizator deja definite. Componentele pot fi şi tablouri, caz în care apar definiţiile specifice (vezi declararea variabilelor).
Declararea constantelor, variabilelor şi tablourilor Nume La denumirea procedurilor, constantelor, variabilelor şi argumentelor într-un modul Visual Basic se cere respectarea următoarelor reguli:
primul caracter trebuie să fie o literă; nu se utilizează spaţiu, punct (.), semnul exclamării(!), sau caracterele @, &, $, # lungimea denumirii nu poate depăşi 255 de caractere; la acelaşi nivel de existenţă nu pot să existe denumiri identice. Pot să existe totuşi, în acelaşi modul, o variabilă privată şi o variabilă la nivel de procedură care să poarte acelaşi nume.
În general, nu se recomandă definirea unor denumiri identice cu nume de funcţii, instrucţiuni sau metode existente în Visual Basic. Dacă s -a ajuns totuşi la această situaţie, atunci utilizarea funcţiei intrinseci limbajului, a instrucţiunii sau metodei care intră în conflict cu un nume asignat necesită calificarea ei în raport de biblioteca asociată. De exemplu, VBA.Left este apelul la funcţia Left atunci când este definită de utilizator şi o variabilă Left. Notă. Visual Basic nu este case-sensitive, deci denumirea unei entităţi nu are ca atribut distinctiv capitalizarea literelor, dar mediul de programare VBA păstrează capitalizarea din instrucţiunea unde este definit un nume.
Declararea constantelor Definirea unei constante se realizează prin instrucţiunea Const, în care se poate specifica tipul, domeniul şi valoarea constantei. Valoarea unei constante nu se poate schimba programatic. [Public | Private] Const constname [As type] = expression Public — cuvânt cheie, opţional, utilizat la nivel de modul pentru a declara constante recunoscute în toate procedurile din toate modulele. Nu este permis în proceduri. Private — cuvânt cheie, opţional, utilizat la nivel de modul pentru a declara constante recunoscute în toate procedurile din modulul în care apare declaraţia. Nu este permis în proceduri. constname — numele constantei (obligatoriu). type — tipul constantei: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (încă nu este suportat), Date, String, sau Variant. Fiecare constantă presupune o clauză As type proprie; în lipsa clauzei se va ataşa automat tipul cel mai apropiat expresiei. expression — combinaţie de identificatori, constante, operatori (cu excepţia Is) care prod uce un sir, număr sau obiect. Nu se pot utiliza variabile, funcţii utilizator sau funcţii VBA predefinite.
În mod implicit, constantele sunt private. La nivel de procedură, sau de modul clasă, domeniul lor nu poate fi modificat prin utilizarea clauzei Public. La nivel de modul standard vizibilitatea poate fi modificată prin Public. Constantele declarate în proceduri Sub, Function sau Property sunt locale procedurii, constantele declarate în afara unei proceduri este definită în modulul respectiv. Mai multe declaraţii de constante pot fi scrise pe o aceeaşi linie, separate prin virgule la nivel de atribuiri de expresii. În acest caz, cuvintele Public sau Private care apar se aplică întregii linii.
Exemple Const NrLinii = 15 Public Const MesajInitial = "Tastati numarul de linii" Private Const NrLinii as Integer = 15 Public Const NrLinii = 15, Pondere as Single = 1.21
Este de remarcat că, în ultima linie, doar Pondere este de tip Single, în timp ce NrLinii este de tip Integer (în lipsa clauzei As type se atribuie tipul expresiei).
Declararea variabilelor Variabilele, simple sau tablou, se definesc prin instrucţiunile Dim, Private, Public, ReDim sau Static. Numele unei variabile trebuie să respecte regulile generale de formare a identificatorilor, tipul variabilei poate fi definit explicit (prin clauza As type) sau implicit (ca Variant). În cazul în care modulul conţine instrucţiunea Option Explicit cu sintaxa Option Explicit şi care trebuie să apară înaintea oricărei proceduri din modul, toate variabilele trebuie să fie declarate prin instrucţiunile menţionate. Lipsa instrucţiunii Option Explicit permite ca variabilele să fie definite acolo unde este nevoie de ele prin simpla menţionare a unui nou identificator, tipul lor fiind stabilit implicit. Această ultimă posibilitate poate produce erori greu detectabile. Sintaxa instrucţiunilor de declarare a variabilelor este următoarea şi se observă asemănarea clauzelor. Dim [WithEvents] varname[([subscripts])] [As [New] type] Private [WithEvents] varname[([subscripts])] [As [New] type] Public [WithEvents] varname[([subscripts])] [As [New] type] Static varname[([subscripts])] [As [New] type] ReDim [Preserve] varname(subscripts) [As type] varname — numele variabilei (obligatoriu). subscripts — dimensiunile tabloului de date (dacă se declară o variabilă tablou). Pot exista până la 60 de indici, separaţi prin virgule, declararea dimensiunilor pentru un indice fiind de forma [lower To] upper
Limita inferioară este, implicit, 0, dar poate fi controlată prin instrucţiunea Option Base. Dacă nu se indică limitele indicilor (dar parantezele sunt prezente), se defineşte o variabilă tablou dinamică (nu şi prin Static) ale cărei dimensiuni pot fi precizate/redefinite prin instrucţiunea ReDim. New — permite crearea implicită a unui obiect (atunci când se declară o variabilă de tip obiect). O nouă instanţă a obiectului este creată la prima referinţă a variabilei definite. Clauza nu poate să apară la declararea variabilelor de tipuri intrinseci şi nici la declararea instanţelor obiectelor dependente. type — tipul variabilei definite: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (nesuportat încă), Date, String (pentru şiruri cu lungime variabilă), String * length (pentru şiruri cu lungime fixă), Object, Variant, tip utili zator sau tip de obiect.
Dacă se definesc mai multe variabile într-o instrucţiune, definiţiile se separă prin virgulă iar clauza de tip nu este extinsă şi la variabilele definite ulterior. Deşi toate instrucţiunile permit declararea unor variabile (simple sau tablou), fiecare instrucţiune are un efect distinct în ceea ce priveşte vizibilitatea variabilelor şi persistenţa valorilor.
Dim defineşte variabile atât la nivel de modul cât şi la nivel de procedură. Variabilele definite la nivel de modul sunt accesibile în procedurile acelui modul, iar variabilele de la nivel de procedură sunt vizibile doar în procedura respectivă. Private este utilizată la nivel de modul pentru a declara variabile accesibile doar în procedurile acelui modul. Public este utilizată pentru a declara variabile accesibile în toate procedurile din toate modulele şi din toate aplicaţiile. Prin includerea instrucţiunii Option Private Module este posibil ca variabilele publice să fie vizibile doar în proiectul în care sunt definite. Static este utilizată la nivel de procedură nestatică pentru a declara variabile care îşi păstrează valoarea de la o execuţie a procedurii la alta, atât timp cât modulul în care apare procedura nu este resetat sau repornit. Variabilele definite prin Static sunt vizibile doar în procedura respectivă. Este de remarcat că se poate defini o întreagă procedură utilizând clauza Static (vezi definirea procedurilor), caz în care toate variabilele sunt statice. ReDim este utilizată la nivel de procedură pentru realocarea memoriei variabilelor tablou dinamice. Utilizarea clauzei Preserve permite doar modificarea ultimei dimensiuni şi păstrează valorile deja existente. (Pentru detalii vezi şi VBA Help).
Exemple Dim x As Double, ColtStanga As Integer Private I, J As Long Static Venit As Currency, NumPren As String Dim Retineri(5) As Currency
Public indicatori(10 ) As Byte Dim matrice(1 To 3, 100 To 200) As String Public fntScris As Font Dim appWD As Word.Application
Proceduri
Printr-o procedură se înţelege, similar altor limbaje de programare, o mulţime de instrucţiuni care este identificată printr-un nume şi care se execută unitar printr-un singur apel. Ar trebui, pentru claritatea programului, ca o procedură să efectueze o prelucrare unitară identificabilă în logica programului.
Există trei tipuri principale de proceduri: Sub, Function şi Property. Ultimul tip este caracteristic definirii unui obiect şi va fi prezentat ulterior. O procedură de tip Sub poate primi şi transmite informaţii prin intermediul unor variabile publice sau/şi a unor parametri. Numele procedurii nu are ataşată nici o valoare. O procedură de tip Function se deosebeşte prin aceea că numele procedurii are ataşată o valoare (valoarea funcţiei) şi poate fi utilizat ca orice altă variabilă din proiect.
Observaţie. Orice instrucţiune executabilă trebuie să aparţină unei proceduri. Declaraţiile pot să apară şi în afara procedurilor, la nivel de modul.
Proceduri Sub Organizarea generală a unei proceduri de tip Sub este [Private | Public] [Static] Sub name ([arglist]) [instrucţiuni] [Exit Sub] [instrucţiuni] End Sub Public, Private, Static — determină vizibilitatea procedurii. Public = vizibilă pentru toate procedurile şi toate modulele (în funcţie de Option Private se defineşte vizibilitatea pentru alte proiecte). ivate==arată vizibilă doarvariabilele pentru procedurile modululvalorile unde procedura este declarată. Pr Static că toate locale îşidin păstrează între apeluri. name — numele procedurii. arglist — lista de argumente, separate prin virgule. Prin instrucţiunea Exit Sub se poate ieşi din procedură şi altminteri decât prin linia finală.
Argumentele se definesc după sintaxa: [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue] Optional — arată că parametrul nu este obligatoriu. Parametrii opţionali trebuie să fie grupaţi la sfârşitul listei (apariţia clauzei Optional cere ca toţi parametrii care urmează să aibă aceeaşi clauză). ByVal — arată că apelul paramatrului se face prin valoare (orice modificare a valorii transmise nu este regăsită după părăsirea procedurii, calculele efectuându-se pe o copie a parametrului). ByRef — arată că apelul paramatrului se face prin referinţă (orice modificare a valorii transmise este regăsită după părăsirea procedurii). Acesta este modul implicit de transmitere a parametrilor. ParamArray — folosit doar ca ultim argument în listă, denotă un tablou Optional de elemente de tip Variant. Clauza ParamArray permite definirea unui număr arbitrar de parametri. ParamArray nu poate fi utilizat împreună cu ByVal, ByRef, sau Optional. varname — numele argumentului. Dacă este tablou se vor indica parantezele. type — tipul parametrului transmis: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal, Date, String (doar lungime variabilă), Object, Variant. Pentru parametrii obligatorii (fără Optional) poate fi şi un tip definit sau de obiect. defaultvalue — defineşte valoarea implicită pentru argumentele opţionale. Poate fi orice expresie, dar pentru tipul Object se admite doar Nothing.
Apelul unei proceduri Sub Pentru a executa o procedură de tip Sub din altă procedură (vezi şi discuţia privind vizibilitatea) se menţionează, pe o linie separată, numele procedurii urmat sau nu de parametri. Dacă este necesar, datorită apelării unui alt proiect sau modul, atunci apelul este după modelul: Nume_proiect.Nume_modul.Nume_procedură listă de argumente
unde lista de argumente poate sau nu să fie inclusă între paranteze. Argumentele efective sunt separate în listă prin virgule şi trebuie să respecte ordinea (şi tipul) argumentelor din definiţia procedurii. În cazul procedurilor cu multe argumente, dintre care multe opţionale, transferul poate provoca erori de scriere a codului (un argument opţional necesită totuşi virgula sa, de unde o numărare atentă a virgulelor etc.). Pentru asemenea situaţii (în special) se permite şi transferul valorilor prin intermediul tehnicii de argumente denumite. Aceasta se realizează alcătuind lista de argumente, la apelul procedurii, din intrări de forma nume_argument:=valoare_argument
separate prin virgule şi la care nu mai contează ordinea iniţială a argumentelor. Se vor specifica doar parametrii care se transmit efectiv (adică valorile opţionale dorite şi toate valorile neopţionale).
Pentru apelul unei proceduri se va studia şi instrucţiunea Call.
Proceduri Function O procedură de tip Function este similară, ca definiţie, unei proceduri Sub, dar are particularitatea că returnează o valoare prin numele său (care se comportă deci ca o variabilă). [Public | Private] [Static] Function name [(arglist)] [As type] [statements] [name = expression]
[Exit Function] [statements] [name = expression]
End Function Este de remarcat că se poate ataşa un tip numelui funcţiei (adică valorii funcţiei) şi se va remarca existenţa instrucţiunilor prin care se atribuie funcţiei valorile calculate. Valoarea returnată de o funcţie poate fi utilizată într-o altă expresie prin includerea numelui funcţiei urmat, între paranteze, de valorile efective ale parametrilor. Dacă apelul se face prin intermediul instrucţiunii Call, valoarea funcţiei nu poate fi utilizată. În asemenea situaţii se activează de fapt doar prelucrările colaterale (care, pentru claritatea codului, nici nu sunt recomandate).
Exemple de proceduri Public Function AriaCilindru (raza, inaltime) As Double Const Pi = 3.14159 cilBaza = Pi*raza^2 cilLaterala = 2*Pi*raza*inaltime AriaCilindru = 2*cilBaza + cilLaterala End Function
Sub AriaCilindru (ByVal raza As Single, ByVal inaltime As Single, _ ByRef cilAria As Double) Const Pi As Single = 3.14159 Dim cilBaza As Single, cilLaterala As Single cilBaza = Pi*raza^2 cilLaterala = 2*Pi*raza*inaltime cilAria = 2*cilBaza + cilLaterala End
Apelul funcţiei poate fi într-o instrucţiune de genul CostTotalPiesa = AriaCilindru (r1, h1) * CostUnitar
în timp ce apelul subrutinei poate fi AriaCilindru inaltime:=h1, raza:=r1, cilAria:=AriePiesa
Organizarea generală a unui proiect VBA Obiectele şi prelucrările necesare realizării unei aplicaţii VBA (presupunând că se doreşte atingerea unui ansamblu coerent de scopuri) sunt gestionate sub forma unui proiect, care are un nume implicit sau dat de utilizator. La un anumit moment pot fi deschise mai multe proiecte, identificabile prin denumirile lor. Deoarece prelucrările proiectate în VBA sunt ataşate documentelor (acţiunilor) unor aplicaţii particulare (Word, Excel etc.), proiectele sunt salvate o dată cu documentele pe care le însoţesc. Acest fapt nu reduce aria de probleme abordabile întrucât prelucrările propriu-zise nu sunt limitate la documentul însoţit (se poate deschide astfel un document Word alb şi să se efectueze orice prelucrare dorită, fără a avea obligaţia de a scrie ceva în documentul deschis). Într-un proiect VBA sunt identificabile următoarele componente:
Module standard (denumite iniţial module de cod). Conţin declaraţii şi proceduri generale. Există de asemenea şi module care conţin tratarea evenimentelor specifice documentului de care este ataşat proiectul. Module de clasă. Conţin definirea obiectelor createproiectată de utilizator. Forme. Conţin definiţiile dialogurilor din interfaţa de utilizator ca şi codul program necesar controlării dialogurilor. Referinţe. Într-un proiect este menţinută lista altor proiecte, care sunt referite în proiectul curent.
Un modul de cod poate începe cu o secţiune de declaraţii. Prin declaraţii înţelegem instrucţiuni neexecutabile prin care se definesc constante, variabile şi proceduri externe. Utilizând Public, Static, Private se precizează şi domeniul de vizibilitate a entităţilor definite.
Gestionarea (crearea, editarea, ştergerea etc.) obiectelor dintr -un proiect se face prin comenzi ale mediului VBA, care este prezentat într-o secţiune separată.
Domeniul unei variabile, constante sau proceduri Domeniul unei entităţi reprezintă mulţimea instrucţiunilor unde poate fi referită acea entitate. Se poate vorbi astfel de vizibilitatea unei entităţi. Domeniul este dependent de locul definirii entităţii, de clauzele care apar la definire şi de parametrii globali ai proiectului.
Notă. Esteproduce, de remarcat că utilizarea uneiOption denumiri în afaracrearea domeniului iniţial prefigurat în lipsa instrucţiunii Explicit, unei noi entităţi, fără nici o legătură cu cea precedentă, sursă de erori greu detectabile. Acesta este motivul pentru care se recomandă declararea explicită a tuturor variabilelor. Există trei tipuri de domenii: o o o
la nivel de procedură; la nivel de modul, privat; la nivel de modul, public.
Nivelul procedură O variabilă sau constantă definită într -o procedură este vizibilă doar în procedură respectivă. Dacă o asemenea entitate trebuie referită şi în alte proceduri, atunci declararea ei se va efectua la nivel de modul, sau se va transmite procedurii prin intermediul argumentelor.
Nivel de modul, privat Variabilele şi constantele definite la nivel de modul (în secţiunea Declarations) sunt Private în mod implicit, adică sunt vizibile doar în modulul respectiv. Utilizarea clauzei Private nu este deci necesară, dar este recomandată.
Notă. Dacă se utilizează instrucţiunea Option Private Module (în secţiunea Declarations a modulului) atunci variabilele şi procedurile publice vor fi vizibile doar în proiectul curent. În lipsa acestei declaraţii, procedurile publice (din toate modulele standard sau clasă) sunt vizibile în toate proiectele care se referă la proiectul curent. Procedurile, variabilele şi constantele publice din alte module (cum ar fi modulele ataşate formelor) sunt Private pentru proiectul de definiţie, deci ele nu sunt accesibile proiectelor care se referă la proiectul unde sunt declarate.
Nivel de modul, public Variabilele declarate la nivel de modul drept Public sunt vizibile în toate procedurile din proiect. Procedurile sunt publice în mod implicit, cu excepţie procedurilor de tratare a evenimentelor, care sunt Private în mod implicit. A se vedea şi nota anterioară.
Viata unei variabile
Prin viaţa unei variabile se înţelege timpul cât variabila are o valoare. Este evident că valoarea unei variabile se poate modifica pe durata vieţii sale, dar definitoriu este faptul că variabila are o anumită valoare pe întreaga durată a vieţii sale. La părăsirea domeniului, variabila "moare" şi nu mai are ataşată o valoare. La începutul execuţiei unei proceduri, toate variabilele sunt iniţializate: Variabilă numerică
0 (zero)
Şir de lungime variabilă
"" (şir de lungime zero)
Şir de lungime fixă
Completat cu caracterul Chr(0) (având codul ASCII 0)
Variabilă Variant
Empty
Variabile de tip utilizator
fiecare element este iniţializat separat, potrivit tipului primar
Variabilă Object
Nothing (până la asignarea unei referinţe prin Set)
Variabilele care nu sunt modificate îşi păstrează valoarea iniţială. Variabilele declarate prin Dim la nivel de procedură au valoare până la terminarea execuţiei procedurii (chiar dacă se trece prin apel în alte proceduri). Variabilele declarate prin Static, la nivel de procedură, au aceeaşi viaţă ca şi variabilele declarate la nivel de modul şi îşi păstrează valoarea până la terminarea execuţiei codului (inclusiv de la un apel la altul). Includerea clauzei Static în instrucţiunea Sub sau Function are ca efect declararea tuturor variabilelor definite în procedura respectivă drept variabile statice (deci care îşi păstrează valorile între apeluri). Variabilele declarate la nivel de modul standard îşi păstrează valoarea pe tot timpul execuţiei. Variabilele declarate la nivel de modul clasă îşi păstrează valoarea atât timp cât există o instanţă a clasei. Diferenţa faţă de variabilele Static este aceea că memoria este utilizată permanent (nu se eliberează la părăsirea domeniului).
Variabile Object Declararea unei variabile de tip obiect se poate efectua prin declararea tipului generic Object Dim myDoc As Object
sau specificând exact numele de clasă dintr-o bibliotecă de obiecte referită Dim myDoc As Word.Document
În primul mod de definire (ca Object) nu se poate efectua la momentul compilării existenţa obiectului, nu se poate verifica utilizarea corectă a proprietătilor şi metodelor obiectului şi nu se poate lega această informaţie de variabila obiect definită. Ataşarea unui obiect este, în acest caz, o legare târzie (late binding) la momentul execuţiei şi se efectuează prin instrucţiunea Set. Specificarea unei clase la definirea variabilei obiect produce o legare timpurie (early binding) care este mai rapidă, se face la momentul compilării şi poate înlătura mai rapid erori posibile în utilizarea metodelor şi proprietăţilor obiectului.
Instrucţiunea Set are sintaxa: Set objectvar = {[New] objectexpression | Nothing} unde o o o
o
objectvar este numele variabilei (sau proprietăţii) New permite crearea unei noi instanţe a clasei Objectexpression este o expresie constând în numele unui obiect, altă variabilă declarată de acelaşi tip obiect, sau funcţie ori metodă care returnează un obiect de acelaşi tip obiect Nothing permite deconectarea asocierii cu un obiect specific, eliberând resursele sistem şi de memorie utilizate.
În general, atunci când se utilizează Set pentru a asigna o referinţă de obiect la o variabilă, nu se creează o copie a obiectului pentru acea variabilă. Este creată doar o referinţă la obiect. Astfel, mai multe variabile de tip obiect pot să se refere la acelaşi obiect: orice schimbare a obiectului se va reflecta în toate variabilele care referă obiectul. Utilizând clauza New se va crea efectiv o copie (instanţă) a obiectului.
Exemple Prin următoarele două instrucţiuni se defineşte variabila objWord care este legată târziu de o aplicaţie Word: Dim objWord As Object Set obhWord = CreateObject("Word.Application") Legarea timpurie se poate efectua prin Dim objWord As Word.Application
Este de remarcat că instrucţiunea Set apelează o funcţie care creează şi returnează o referinţă la un obiect ActiveX.
Constante predefinite (built–in) Bibliotecile de obiecte din fiecare aplicaţie Office furnizează o mulţime de constante predefinite, care pot fi utilizate pentru a stabili proprietăti sau pentru a transmite argumente
către proprietăţi sau metode. Constantele sunt, de regulă, grupate în tipuri enumerate care reprezintă valorile posibile pentru o proprietate specifică. Deşi este posibilă să se utilizeze valoarea numerică a constantei este recomandat să se utilizeze constanta numită întrucât dezvoltări ulterioare ale mediului Microsoft Office (ca şi ale aplicaţiilor din Visual Studio) tind să păstreze compatibilitatea între denumirile constantelor şi nu între valorile efective. De exemplu se preferă Application.DisplayAlerts = wdAlertAll
în loc de Application.DisplayAlerts = -1
pentru a fixa ca Word să afişeze toate mesajele de alertă la execuţia unei proceduri. Codul scris astfel este şi mai explicit.
Visual Basic 2010 Lectia 6 Există mai multe tipuri de date pe care le întâlnim în viaţa noastră de zi cu zi. De exemplu, avem nevoie să se ocupe de date, cum ar fi nume, adrese,, data de bani, cotaţii bursiere, statistici si etc de zi cu zi. În mod similar, în Visual Basic 2010, avem de a face cu tot felul de de date, unele pot fi matematic calculat în timp ce unele sunt sub forma de text sau alte forme. VB2010 imparte datele în diferite tipuri, astfel încât este mai uşor de a gestiona atunci când avem nevoie pentru a scrie cod care implică aceste date. 6.1 Visual Basic 2010 Tipuri de date
Visual Basic 2010 clasifică informaţiile menţionate mai sus în două tipuri majore de date, acestea sunt tipurile de date numerice, precum şi tipurile de date non-numerice. 6.1.1 Tipuri de date numerice
Tipuri de date numerice sunt tipuri de date care constau din numere, care poate fi calculată matematic cu diverşi operatori standard, cum ar fi add, minus, înmulţire, împărţire şi aşa mai departe. Exemple de tipuri de date numerice sunt marci de examinare, inaltimea, greutatea, numărul de elevi într-o clasă, împărtăşesc valori, preţul mărfurilor, facturi lunare, taxe şi etc În Visual Basic 2010, datele numerice sunt împărţite în 7 tipuri , în funcţie de gama de valorile pe care le poate stoca. Calculele care implica numai cifre rotunde sau date care nu au nevoie de precizie, se poate utiliza întreg Întreg lung sau în calcul. Programe de calcul care necesită precizie mare nevoie de a folosi anumite tipuri Single şi Double decizia de date, ele sunt, de asemenea, numite numere reale cude virgulă. PentruÎncalcularea valută, aveţi chiar mai posibilitatea să utilizaţi următoarele tipuri date valută. sfârşit, dacă o precizie mult este nevoie pentru a efectua calcule care implică o mai multe puncte zecimale, putem folosi tipurile de date zecimale. Aceste tipuri de date sintetizate în tabelul 6.1 6.1 [img]
[/img] 6.1.2 Non-numerice Tipuri de date Tipuri de date numerice sunt date care nu pot fi manipulate folosind matematic operatorii standard aritmetică. Datele non-numerice cuprinde date de tip text sau şir de tipuri, tipurile de date data, tipurile de date boolean care stochează numai două valori (adevărat sau fals), tipul de date obiect şi tip de date Variant. Ele sunt prezentate pe scurt în Tabelul 6.2
6.2 6.1.3 Sufixe pentru Literali
Literali sunt valori pe care îl atribuiţi de date. În unele cazuri, avem nevoie să adăugaţi un sufix în spatele unui literal, astfel încât VB2010 se pot ocupa de calcul mai exact. De exemplu, putem folosi num = 1.3089 # pentru un tip de date dublă. Unele dintre sufixele sunt afişate în Tabelul 6.3.
6.3
În plus, avem nevoie să anexaţi literali şir în termen de două citate şi literalii data şi ora în termen de două semnul #. Siruri de caractere poate conţine orice caractere, inclusiv numere. Următoarele sunt câteva exemple: memberName="Turban, John." TelNumber="1800-900-888-777" LastDay=#31-Dec-00# ExpTime=#12:00 am# 6.2 Variabile de Management
Variabilele sunt ca nişte cutii de e-mail în oficiul poştal. Conţinutul variabilelor se schimbă de fiecare acum şi apoi, la fel ca casutele de mail. În termen de VB2010, variabilele sunt zone alocate de memoria computerului pentru a stoca datele. Ca si casutele de mail, fiecare variabilă trebuie să fie dat un nume. Pentru a denumi o variabilă în Visual Basic 2010, va trebui să urmeze un set de reguli. 6.2.1 Nume variabila
Următoarele sunt regulile atunci când denumirea variabile în Visual Basic 2010 - Acesta trebuie să fie mai mult de 255 de caractere - Nr spaţierea este permisă - Ea nu trebuie să înceapă cu un număr de - Perioada nu este permisă Exemple de nume valide şi nevalide de variabile sunt prezentate în Tabelul 6.4 .
6.4 6.2.2 Variabile declararea
În Visual Basic 2010, trebuie să declare variabilele înainte de a le utiliza prin atribuirea de nume şi tipuri de date. Dacă nu reuşesc să facă acest lucru, programul va afişa o eroare. Ele sunt în mod normal, declarate în partea generală a codurilor de ferestre ", folosind declaraţia Dim. Formatul este după cum urmează: Cod: Dim Variable Name As Data Type Exemple 6.1 :
Cod: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim password As String Dim yourName As String Dim firstnum As Integer Dim secondnum As Integer Dim total As Integer Dim doDate As Date End Sub
Puteţi combina, de asemenea, le într-o singură linie, separând fiecare variabilă cu o virgulă, după cum urmează: Dim password As String, yourName As String, firstnum As Integer,.............
Pentru declaraţia de string, există două formate posibile, unul pentru şir de lungime variabilă şi un alt şir de lungime fixă. Pentru şirul de lungime variabila, trebuie doar să utilizaţi acelaşi format ca de exemplu 6.1 de mai sus. Cu toate acestea, pentru şirul de lungime fixă, trebuie să utilizaţi formatul de mai jos: Dim VariableName as String * n , în cazul în care n defineşte numărul de caractere şir poate conţine. Exemplu 6.2
Cod: Dim yourName as String * 10 Nulele tau nu poate contine mai mult de 10 litere . 6.2.3 Valori atribuirea Variabile
După declararea diferitelor variabile folosind declaraţiile Dim, pu tem atribui valori pentru aceste variabile. Formatul general al unei cesiuni este Variable=Expression
Variabilă poate fi o variabilă declarată sau o proprietate valoare de control. Expresia ar putea fi matematică, un număr, un şir de caractere, o valoare Boolean (adevărat sau fals) şi oetcexpresie Următoarele sunt câteva exemple: Cod: firstNumber=100 secondNumber=firstNumber-99 userName="John Lyan" userpass.Text = password Label1.Visible = True
Constante sunt diferite de variabile, în sensul că valorile lor nu se modifică pe parcursul derulării programului. 6.3.1 Declararea unei constante Formatul de a declara o constantă este
Cod: Const Constant Name As Data Type = Value exemplu 6.3
Cod: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Const Pi As Single=3.142 Const Temp As Single=37 Const Score As Single=100 End Sub
Visual Basic 2010 Lectia 1 Visual Basic 2010 este cea mai recentă versiune de Visual Basic lansate de Microsoft în 2010. VB2010 este aproape similar cu Visual Basic 2008, dar a adăugat multe caracteristici noi . Ca şi Visual Basic 2008, Visual Basic 2010 este, de asemenea, un obiect-orientate cu drepturi depline de programare (OOP) Limba, deci le-a prins cu alte limbaje OOP, cum ar fi C + +, Java, C # si altele. Cu toate acestea, nu trebuie să ştie să înveţe VB2010 OOP. De fapt, dacă sunteţi familiarizaţi cu Visual Basic 6, puteţi învăţa VB2010 efort, deoarece sintaxa si interfata sunt similare. Visual Basic 2010 Express Edition este disponibil gratuit pentru descărcare de la site -ul Microsoft. Faceţi clic pe această legătură într -http://www.microsoft.com/express/downloads/ pentru a descărca Vb2010. Integrated Development Environment când lansaţi VB2010 Express este prezentată în diagrama de mai jos.Start Page IDE constă din câteva secţiuni, şi anume:
- Noul proiect / pct. Deschidere proiect. - Proiectele recente secţiune care afişează o listă de proiecte care au fost create de tine recent. - Noţiuni de bază Panoul de-Acesta oferă câteva sfaturi utile pentru a dezvolta rapid aplicaţiile. - Ultimele ştiri secţiune-Acesta oferă cele mai recente ştiri on-line despre Visual Basic 2010 Express. Acesta va anunta versiuni noi şi actualizări - Proprietăţi secţiune
Pentru a începe crearea cererii dumneavoastră în primul rând, aveţi nevoie să faceţi clic pe Proiect nou. Au VB2010 caseta de dialog New Project va apărea.
Caseta de dialog vă oferă cinci tipuri de proiecte pe care le pot crea. Aşa cum am de gând să înveţe pentru a crea aplicaţii Windows, vom selecta aplicaţie Windows Forms. În partea de jos a acestei casete de dialog, aveţi posibilitatea să modificaţi numele implicit proiectul WindowsApplication1 la alt nume doriţi, pentru exampe, myFirstProgram. După ce aţi redenumit proiect, faceţi clic pe OK pentru a continua. Au IDE pentru Windows va apărea, este aproape similar cu Visual Basic 6. Acesta constă dintr-un formular gol, pe fila set de instrumente şi proprietăţi.Layout-ul este uşor diferit de vb2008 ca Toolbox nu este afişată până când faceţi clic pe fila Instrumente de lucru.
Când faceţi clic pe tab-ul Toolbox, comună Toolbox controale vor apărea.
Acum trageţi butonul de control în formular şi modificaţi textul ei implicit Button1 la OK în fereastra de proprietăţi, OK cuvântul va apărea pe buton pe formular, după cum se arată mai jos:
Acum, dati click pe butonul OK şi apare fereastra de cod. Introduceţi codul, după cum urmează:
Când executaţi programul şi faceţi clic pe butonul OK, o casetă de dialog va apărea şi va afişa "BINE ATI VENIT LA Visual Basic 2010" mesaj, după cum se arată mai jos :
Aici este , aţi creat dvs. primul program VB2010.
Visual Basic 2010 Lectia 2 - Lucrul cu controalele Controalele din VB2010 sunt instrumente utile care pot fi plasate în formă pentru a efectua diferite sarcini. Acestea sunt utilizate pentru a crea mai multe tipuri de aplicaţii
Windows.Diagrama de pe dreapta este Caseta de instrumente care conţine controalele de VB2010. Acestea sunt clasificate în controale comune, Containere, Meniuri, Bare de instrumente, date, componente, Tipărituri şi dialoguri. În momentul de faţă, ne vom concentra asupra controalelor comune. Unele dintre cele mai utilizate controale comune sunt Button, Label, ComboBox, ListBox, PictureBox, TextBox etc Pentru a introduce un control în formular, trebuie doar să trageţi de control şi plasaţi-l în formular. Puteţi repoziţiona şi redimensiona-l cum doriţi. Să examinăm câteva programe care făcut uz de Button, Label, TextBox, ListBox şi PictureBox. Nu trebuie să vă faceţi griji atât de mult despre codul pentru că voi explica programul de sintaxa pe măsură ce progrese la lecţii mai târziu.
Când faceţi clic pe tab-ul Toolbox, comună Toolbox controale vor apărea.
2.1 Crearea primului program
Pentru a crea programul în primul rând, glisaţi butonul de control în formular şi modificaţi textul ei implicit Button1 la OK în fereastra de proprietăţi, OK cuvântul va apărea pe buton pe formular, după cum se arată mai jos:
Acum, dati click pe butonul OK şi apare fereastra de cod. Introduceţi codul, după cum urmează:
Când executaţi programul şi faceţi clic pe butonul OK, o casetă de dialog va apărea şi va afişa "BINE ATI VENIT LA Visual Basic 2010" mesaj, după cum se arată mai jos:
Aici este , aţi creat dvs. primul program VB2010 . 2.2 Utilizarea Casetă text Înainte Eu vă va arăta cum să creaţi un calculator simplu care adaugă două numere folosind de control TextBox. În acest program, vă introduc două celule text, trei etichete şi un buton. Cele două celule text sunt pentru ca utilizatorii să introducă două numere, o etichetă este pentru a afişa operatorul de adunare şi de alte etichete care este pentru a afişa semnul egal.
Eticheta este ultima pentru a afişa răspunsul. Schimba acum eticheta de pe buton pentru a calcula, apoi faceţi clic pe acest buton şi introduceţi codul de mai jos: Cod: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim num1, num2, product As Single num1 = TextBox1.Text num2 = TextBox2.Text product = num1 + num2 Label1.Text = product End Sub Când rulaţi programul şi introduceţi două numere, apăsând butonul calcula te pot lăsa să efectua adunări a două numere.
Visual Basic 2010 Lectia 3 3.1 Proprietăţi control Înainte de a scrie o procedură eveniment pentru controlul a răspuns la introducerea unui utilizator, trebuie să lucra cu procedura de eveniment. Aveţi posibilitatea să setaţi proprietăţile controalelor din fereastra de propri proprietăţi pentru un formular. Aceasta se referă în special la interfaţa primului program le-aţi învăţat în lecţi
Titlul a formularului este definită de proprietate Text şi numele său implicit este formularul 1. Pentru a schim de proprietate Text şi introduceţi noul nume, în acest exemplu, titlul este Calculator adăugare. Observaţi că a apare în partea de sus este în prezent obiectul selectat (în Figura 3.1, obiectul selectat este Form1). La partea asociate cu obiectul selectat în timp ce elementele enumerate în coloana din dreapta reprezintă statele din pro modifica apoi le tastând sau selectând opţiunile disponibile. Puteţi modifica, de asemenea, alte proprietăţi a f MaximizeBox, MinimizeBox şi etc ..
Aveţi posibilitatea să modificaţi, de asemenea, proprietăţile obiectului în timpul rulării pentru a da efecte spe exemplu, urmatorul cod va schimba culoarea in galben formularul de fiecare dată când formularul este încărc pentru galben este 255,255,0. Mă în codul referă la forma actuală şi BackColor este proprietatea culoarea de Color.FormArbg(cod RGB). Cod:
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handl Me.BackColor = Color.FromArgb(255, 0, 255) End Sub End Class
Puteţi folosi, de asemenea, procedura de urmat pentru a atribui culoarea la momentul execuţiei. Cod: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle Me.BackColor = Color.Magenta End Sub Ambele proceduri de mai sus va încărca formă, cu un fundal magenta, după cum urmează:
Aici sunt unele dintre culorile comune şi codurile corespunzătoare RGB. Puteţi experimenta mereu cu alte co minim este 0.
Următoarele este un alt program care permite utilizatorului să introducă codurile RGB în trei celule text difer se va modifica în conformitate cu codurile RGB. Deci, acest program permite utilizatorilor să modifice propr
Codul :
Cod: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Hand Dim rgb1, rgb2, rgb3 As Integer rgb1 = TextBox1.Text rgb2 = TextBox2.Text rgb3 = TextBox3.Text Me.BackColor = Color.FromArgb(rgb1, rgb2, rgb3) End Sub
Visual Basic 2010 Lectia 4 În primele trei lecţii, aţi învăţat cum să introduceţi codul de program şi se scurge eşantionul de VB2010 programelor UE, dar fără prea multă înţelegere cu privire la logica VB2010 de programare. Acum, haideţi să trecem la învăţarea câteva reguli de bază despre scrierea codului de program VB2010. Mai întâi de toate, permiteţi-mi să spun că, deşi VB2010 este foarte mult asemanatoare cu VB6 în ceea ce priveşte structura interfeţei şi a programului, conceptele care stau la baza lor sunt destul de diferite. Diferite principală este că VB2010 este un limbaj plin programarea orientata obiect în timp ce VB6 pot avea capacitati OOP, nu este pe deplin orientat obiect. Pentru a se califica pe deplin ca un limbaj de programare orientat obiect, aceasta trebuie să aibă trei tehnologii de bază şi anume încapsulare, moştenire şi polimorfism. Aceste trei termeni sunt explicate mai jos:
Încapsulare se referă la crearea de module de sine stătătoare care se leaga de funcţii de prelucrare a datelor. Aceste tipuri de date definite de utilizator sunt numite clase. Fiecare clasă conţine date, precum şi un set de metode care manipulează date. Componentele de date a unei clase sunt numite variabile de instanţă şi de o instanţă a unei clase este un obiect. De exemplu, într-un sistem de bibliotecă, o clasa ar putea fi membru, şi John şi Sharon ar putea fi două
cazuri (doua obiecte) din clasa bibliotecii. Succesorale s Clasele sunt create în funcţie de ierarhii, şi moştenire permite structura şi metodele într -o clasă de a fi trecut în jos în ierarhia. Asta inseamna ca programarea este necesară mai puţină la adăugarea de funcţii pentru sisteme complexe. În cazul în care un pas, se adaugă la partea de jos a ierarhiei, apoi numai de prelucrare a datelor şi asociate cu acest pas unic trebuie să fie adăugate. Orice altceva despre acest pas este moştenită. Capacitatea de a reutilizarea obiectelor existente este considerat un avantaj major al tehnologiei obiect. Polimorfismul Programarea orientată pe obiecte permite proceduri cu privire la obiectele care urmează să fie create exact a căror tip nu este cunoscută până la runtime. De exemplu, un cursor pe ecran se poate schimba forma de la o săgeată într-o linie, în funcţie de modul de programare. De rutină pentru a muta cursorul pe ecran, ca răspuns la mişcarea mouse-ului ar fi scris pentru "cursor", şi polimorfism, care permite cursorul pentru a lua la orice formă este necesară în timpul rulării. Acesta permite, de asemenea forme noi pentru a fi integrate cu uşurinţă.
VB6 nu este o OOP completă, în sensul că aceasta nu are capacităţi moştenire, deşi se poate face uz de unele beneficii de moştenire. Cu toate acestea, VB2010 este o limbă complet funcţional programarea orientata obiect, la fel ca alte OOP, cum ar fi C + + si Java. Acesta este diferit de versiunile anterioare de VB, deoarece se axează mai mult pe datele în sine, în timp ce versiunile anterioare se concentreze mai mult pe acţiuni. Versiunile anterioare ale VB sunt cunoscute sub numele de limbajul de programare procedurale sau funcţionale. Unele limbi de procedură sunt de programare C, Pascal şi Fortran. VB2010 permite utilizatorilor să scrie programe care descompun în module. Aceste module vor reprezenta obiecte din lumea reală şi sunt stie ca clase sau tipuri. Un obiect poate fi creat dintr-o clasă şi este cunoscut ca o instanta a clasei. O clasa poate include, de asemenea, subclasă. De exemplu, măr este o subclasă a clasei de plante şi de mere din curte este o instanta a clasei măr. Un alt exemplu este clasa elev este o subclasă a clasei umane în timp ce fiul tau John este o instanta a clasei studentului. O clasă este format din membri ai datelor, precum şi metode. În VB2010, structura programului de a defini o clasă umană poate fi scrisă după cum urmează: Cod: Public Class Human 'Data Members Private Name As String Private String Private Birthdate Gender AsAsString Private Age As Integer 'Methods Overridable Sub ShowInfo( ) MessageBox.Show(Name) MessageBox.Show(Birthdate) MessageBox.Show(Gender) MessageBox.Show(Age)
End Sub End Class
După ce aţi creat clasa uman, aveţi posibilitatea să creaţi o subclasă care moşteneşte atributele sau datele din clasa uman. De exemplu, aveţi posibilitatea să creaţi o clasă elevilor că este o subclasă a clasei umane. În cadrul clasei student, nu trebuie să definească orice câmpuri de date care sunt deja definite în cadrul clasei umane, trebuie doar să definiţi câmpurile de date care sunt diferite de la o instanţă a clasei umane. De exemplu, poate doriţi să includă şi StudentID Adresa în clasa student.Cod de program pentru StudentClass este după cum urmează: Cod: Public Class Students Inherits Human Public StudentID as String Public Address As String Overrides Sub ShowInfo( ) MessageBox.Show(Name) MessageBox.Show(StudentID) MessageBox.Show(Birthdate) MessageBox.Show(Gender) MessageBox.Show(Age) MessageBox.Show(Address) End Sub
Visual Basic 2010 Lectia 5 n capitolul anterior, aţi învăţat că VB2010 este un limbaj de programare orientat obiect. Aţi înţeles sensurile de clasa, obiect, moştenire încapsulare precum şi polimorfismul. Aveţi, de asemenea învăţat să scrie unele programe simple fără prea multă înţelegere care stau la baza unor fundaţii şi teorii. În acest capitol, veţi învăţa unele teorii de bază despre VB2010 de programare, dar ne vom concentra mai mult pe învăţarea prin practică, şi anume învăţarea prin programe de scris. Voi păstra teoriile scurt, astfel încât să nu ar fi prea dificil pentru incepatori. 5.1 Evenimentul procedură VB2010 este un obiect orientat şi limbaj de programare eveniment condus. De fapt, toate
aplicatiile Windows sunt conduse eveniment. Eveniment condus înseamnă ghidul va decide ce să facă cu programul, dacă el / ea vrea să faceţi clic pe butonul de comandă, sau el / ea vrea pentru a introduce text într-o casetă de text, sau el / ea ar putea să vrea să închideţi aplicaţia şi etc Un eveniment este legat de un obiect,. acesta este un incident care se întâmplă la obiect ca urmare a acţiunii de utilizator, cum ar fi un clic sau apăsarea unei taste de pe tastatură. O clasă are evenimente ca acesta creează instantanee a unei clase sau al unui obiect. Când începem o aplicaţie Windows în VB2010 în capitolele anterioare, vom vedea un formular implicit cu Form1 apare în IDE, acesta este de fapt clasa Form1 care moşteneşte de la clasa System.Windows.Forms.Form formular, după cum se arată în Form1 proprietăţi ferestre.
Când ne-am faceţi clic pe oricare parte a formularului, vom vedea fereastra de cod aşa cum se arată mai jos.Este structura unei proceduri eveniment. În acest caz, procedura de eveniment este de a încărca form1 şi se începe cu Private Sub si se termina cu Private Sub . Această procedură include clasa Form1 şi Load eveniment, iar ei sunt obligati, împreună cu o subliniere, şi anume Form_Load. Ea nu face altceva decât încărcarea unui formular gol. Nu trebuie să vă faceţi griji restul de lucruri în acest moment, acestea vor fi explicate în lecţii mai târziu.
Cod: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class
Sunt alte evenimente asociate cu clasa Form1, cum ar fi faceţi clic pe, cursorChanged, DoubleClick, DragDrop, Enter ca aşa mai departe, după cum se arată în diagrama de mai jos (Se pare că atunci când faceţi clic pe panoul din dreapta sus a ferestrei cod)
5.2 Scrierea codul
Acum sunteţi gata să scrie cod pentru procedura de eveniment, astfel încât acesta va face ceva mai mult decat de încărcare un formular gol.Codul trebuie introdus între Private Sub ...... End Sub Cod: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Text = "My First VB2010 Program" Me.ForeColor = Color.ForestGreen Me.BackColor = Color.Cyan End Sub End Classs Prima linie de cod se va schimba titlul de formular pentru a mea Program de VB2010 În primul rând, a doua linie se va schimba obiectul prim-plan la Padurea Verde (în acest caz, este vorba de o etichetă pe care le inseraţi în formular şi schimba numele sarcina de a prim-plan), precum şi ultima linie modificări de fundal de culoare Csyan.Egale în codul de fapt este
folosit pentru a atribui ceva la obiect, cum ar fi atribuirea de culoare galben în prim-plan a obiectului Form1 (sau o instanţă de Form1). Mine este numele dat la clasa Form1. Putem apela, de asemenea, ca acele linii Declaratii. Deci, acţiunile programului va depinde de declaraţiile înscrise de către porgrammer.
aici este un alt exemplu :
Cod: Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim name1, name2, name3 As String name1 = "John" name2 = "Georges" name3 = "Ali" MsgBox(" The names are " & name1 & " , " & name2 & " and " & name3) End Sub
În acest exemplu, inseraţi un buton de comandă în formular şi a redenumi legenda ei ca arata Nume ascunse.Dim cuvânt cheie este de a declara variabile nume1, nume2 şi name3 ca şir, ceea ce înseamnă că pot ocupa numai text.MsgBox funcţie este de a afişa numele într -o casetă de mesaj, care sunt unite prin "&" semne.De ieşire este prezentată mai jos:
Comentarii Nu aveți permisiunea de a adăuga comentarii.
Visual Basic 2010 Lectia 6 Există mai multe tipuri de date pe care le întâlnim în viaţa noastră de zi cu zi. De exemplu, avem nevoie să se ocupe de date, cum ar fi nume, adrese,, data de bani, cotaţii bursiere, statistici si etc de zi cu zi. În mod similar, în Visual Basic 2010, avem de a face cu tot felul de de date, unele pot fi matematic calculat în timp ce unele sunt sub forma de text sau alte forme. VB2010 imparte datele în diferite tipuri, astfel încât este mai uşor de a gestiona atunci când avem nevoie pentru a scrie cod care implică aceste date. 6.1 Visual Basic 2010 Tipuri de date
Visual Basic 2010 clasifică informaţiile menţionate mai sus în două tipuri majore de date, acestea sunt tipurile de date numerice, precum şi tipurile de date non-numerice. 6.1.1 Tipuri de date numerice
Tipuri de date numerice sunt tipuri de date care din numere, care împărţire poate fi calculată matematic cu diverşi operatori standard, cum ar constau fi add, minus, înmulţire, şi aşa mai departe. Exemple de tipuri de date numerice sunt marci de examinare, inaltimea, greutatea, numărul de elevi într-o clasă, împărtăşesc valori, preţul mărfurilor, facturi lunare, taxe şi etc În Visual Basic 2010, datele numerice sunt împărţite în 7 tipuri , în funcţie de gama de valorile pe care le poate stoca. Calculele care implica numai cifre rotunde sau date care nu au nevoie de precizie, se poate utiliza întreg Întreg lung sau în calcul. Programe de calcul care necesită precizie mare nevoie de a folosi anumite tipuri Single şi Double decizia de date, ele sunt, de asemenea, numite numere reale cu virgulă. Pentru calcularea valută, aveţi
posibilitatea să utilizaţi următoarele tipuri de date valută. În sfârşit, dacă o precizie chiar mai mult este nevoie pentru a efectua calcule care implică o mai multe puncte zecimale, putem folosi tipurile de date zecimale. Aceste tipuri de date sintetizate în tabelul 6.1 6.1 [img]
[/img] 6.1.2 Non-numerice Tipuri de date Tipuri de date numerice sunt date care nu pot fi manipulate folosind matematic operatorii standard aritmetică. Datele non-numerice cuprinde date de tip text sau şir de tipuri, tipurile de date data, tipurile de date boolean care stochează numai două valori (adevărat sau fals), tipul
de date obiect şi tip de date Variant. Ele sunt prezentate pe scurt în Tabelul 6.2
6.2 6.1.3 Sufixe pentru Literali
Literali sunt valori pe care îl atribuiţi de date. În unele cazuri, avem nevoie să adăugaţi un sufix în spatele unui literal, astfel încât VB2010 se pot ocupa de calcul mai exact. De exemplu, putem folosi num = 1.3089 # pentru un tip de date dublă. Unele dintre sufixele sunt afişate în Tabelul 6.3.
6.3
În plus, avem nevoie să anexaţi literali şir în termen de două citate şi literalii data şi ora în termen de două semnul #. Siruri de caractere poate conţine orice caractere, inclusiv numere. Următoarele sunt câteva exemple: memberName="Turban, John." TelNumber="1800-900-888-777" LastDay=#31-Dec-00# ExpTime=#12:00 am# 6.2 Variabile de Management
Variabilele sunt ca nişte cutii de e-mail în oficiul poştal. Conţinutul variabilelor se schimbă de fiecare acum şi apoi, la fel ca casutele de mail. În termen de VB2010, variabilele sunt zone alocate de memoria computerului pentru a stoca datele. Ca si casutele de mail, fiecare variabilă trebuie să fie dat un nume. Pentru a denumi o variabilă în Visual Basic 2010, va trebui să urmeze un set de reguli. 6.2.1 Nume variabila
Următoarele sunt regulile atunci când denumirea variabile în Visual Basic 2010 - Acesta trebuie să fie mai mult de 255 de caractere - Nr spaţierea este permisă - Ea nu trebuie să înceapă cu un număr de - Perioada nu este permisă Exemple de nume valide şi nevalide de variabile sunt prezentate în Tabelul 6.4 .
6.4 6.2.2 Variabile declararea
În Visual Basic 2010, trebuie să declare variabilele înainte de a le utiliza prin atribuirea de nume şi tipuri de date. Dacă nu reuşesc să facă acest lucru, programul va afişa o eroare. Ele sunt în mod normal, declarate în partea generală a codurilor de ferestre ", folosind declaraţia Dim. Formatul este după cum urmează: Cod: Dim Variable Name As Data Type
Exemple 6.1 :
Cod: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim password As String Dim yourName As String Dim firstnum As Integer Dim secondnum As Integer Dim total As Integer Dim doDate As Date End Sub
Puteţi combina, de asemenea, le într-o singură linie, separând fiecare variabilă cu o virgulă, după cum urmează: Dim password As String, yourName As String, firstnum As Integer,.............
Pentru declaraţia de string, există două formate posibile, unul pentru şir de lungime variabilă şi un alt şir de lungime fixă. Pentru şirul de lungime variabila, trebuie doar să utilizaţi acelaşi format ca de exemplu 6.1 de mai sus. Cu toate acestea, pentru şirul de lungime fixă, trebuie să utilizaţi formatul de mai jos: Dim VariableName as String * n , în cazul în care n defineşte numărul de caractere şir poate conţine. Exemplu 6.2
Cod: Dim yourName as String * 10 Nulele tau nu poate contine mai mult de 10 litere . 6.2.3 Valori atribuirea Variabile
După declararea diferitelor variabile folosind declaraţiile Dim, putem atribui valori pent ru aceste variabile. Formatul general al unei cesiuni este Variable=Expression
Variabilă poate fi o variabilă declarată sau o proprietate valoare de control. Expresia ar putea fi o expresie matematică, un număr, un şir de caractere, o valoare Boolean (adevărat sau fals)
şi etc Următoarele sunt câteva exemple: Cod: firstNumber=100 secondNumber=firstNumber-99 userName="John Lyan" userpass.Text = password Label1.Visible = True Command1.Visible = false Label4.Caption = textbox1.Text ThirdNumber = Val(usernum1.Text) total = firstNumber + secondNumber+ThirdNumber 6.3 Constante
Constante sunt diferite de variabile, în sensul că valorile lor nu se modifică pe parcursul derulării programului. 6.3.1 Declararea unei constante Formatul de a declara o constantă este
Cod: Const Constant Name As Data Type = Value exemplu 6.3
Cod: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Const Pi As Single=3.142 Const Temp As Single=37 Const Score As Single=100 End Sub
Visual Basic 2010 Lectia 7 Calculator pot efectua calcule matematice mult mai rapid decât fiinţele umane. Cu toate acestea, calculator în sine nu va fi capabil de a efectua orice calcule matematice fără să primească instrucţiuni din partea utilizatorului. În VB2010, putem scrie cod pentru a instrui computerul pentru a efectua calcule matematice, cum ar fi adunarea, scăderea, înmulţirea, împărţirea şi alte tipuri de operaţii aritmetice. Pentru ca VB2010 a efectua calcule aritmetice, avem nevoie pentru a scrie cod care implică utilizarea de operatori aritmetici diferite.VB2010 operatori aritmetici sunt foarte similare cu operatori aritmetici normale, doar cu mici variatii.
Operatorii plus şi minus sunt aceleaşi, în timp ce operatorul de multiplicare utilizează simbolul * şi operatorul de utilizare divizia simbolul /.Lista de operatori aritmetici VB2010 sunt prezentate în tabelul 7.1 de mai jos: Tabelul 7.1 operatii Aritmetice
Exemplu 7.1
În acest program, va trebui să introduceţi două textbox, patru labels şi un buton. Faceţi clic pe buton şi puneti în codul de mai jos. Notă modul în care diferiţii operatori aritmetici sunt utilizate. Când executaţi programul, acesta va efectua cele patru operaţii aritmetice de bază şi a afişa rezultatele pe cele patru etichete. Cod: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim num1, num2, difference, product, quotient As Single num1 = TextBox1.Text num2 = TextBox2.Text sum=num1+num2 difference=num1-num2 product = num1 * num2 quotient=num1/num2 Label1.Text=sum Label2.Text=difference Label3.Text = product Label4.Text = quotient End Sub Example 7.2
Programul poate folosi Teorema lui Pitagora pentru a calcula lungimea ipotenuzei c având în vedere durata de partea adiacente a şi în partea opusă b. În cazul în care aţi uitat formula pentru teorema lui Pitagora, este scris ca c^2=a^2+b^2
Cod: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a, b, c As Single a = TextBox1.Text b = TextBox2.Text c=(a^2+b^2)^(1/2) Label3.Text=c End Sub Exemplu 7.3 Calculator IMC
O mulţime de oameni sunt obezi acum şi ar putea afecta serios sănătatea lor. Obezitatea a dovedit de către experţi medicali pentru a fi unul din principalii factori care aduce multe probleme adverse, inclusiv boli de inima. IMC este mare de 30,desunteţi consideratmedicale obezi. Puteţi consulta la următoarea gamăDacă de valori BMImai pentru statutul greutatea dumneavoastră. Underweight = <18.5 Normal weight = 18.5-24.9 Overweight = 25-29.9 Obesity = BMI of 30 or greater
Pentru a calcula IMC-ul tău, nu trebuie să consultaţi medicul dumneavoastră, ai putea folosi doar un calculator sau un program de calculator casa, acest lucru este exact ceea ce eu vă arată aici. Calculatorul BMI este un program Visual Basic, care pot calcula indicele de masă corporală, IMC sau a unei persoane pe baza de greutatea corporală în kilograme şi înălţimea corpului în metri. IMC poate fi calculat folosind formula greutate / (inaltime) 2, în cazul în
care se măsoară în kgpentru şi înălţime în metri.laDacă ştiţi metric doar greutatea înălţimea si in greutatea picioare, atunci ai nevoie a le converti sistemul (ai puteaşiscrie, într- în lb adevăr un program VB pentru conversie). Cod: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArsgs) Handles Button1.Click Dim height, weight, bmi As Single
height = TextBox1.Text weight = TextBox2.Text bmi = (weight) / (height ^ 2) Label4.Text = bmi End Sub
De ieşire este prezentată în diagrama de mai jos. În acest exemplu, înălţimea dumneavoastră este de 1.80 m (aproximativ 5 picior 11), greutatea dumneavoastră este de 75 kg (aproximativ 168Ib), şi a IMC este de aproximativ 23.14815.Lectură sugerează că eşti sănătos. (Nota, 1 picior = 0.3048, 1 lb =. 45359237 kilogram)
Din exemplele de mai sus, puteţi vedea care efectuează operaţii aritmetice este relativ usor. Aici sunt mai multe proiecte de aritmetice, puteţi încerca să programe: Area of a triangle Area of a rectangle Area of a circle Volume of a cylinder Volume of a cone Volume of a sphere Compound interest Future value Mean Variance Sum of angles in polygons Conversion of lb to kg Conversion of Fahrenheit to Celsius
…………………………………………………………………………..
Hello, in acest articol voi aborda face doua exercitii, deoarece unul este foarte scurt si nu are rost sa fac un articol doar pentru el.
Primul exercitiu va fi un ―counter‖, mai exact vom face un buton si un Label in care va aparea de cate ori am apasat pe buton.
Pentru acest program vom avea nevoie de:
un Label un CommandButton
Am numit labelul numar si am modificat marimea fontului din containerul Properties, iar la Caption am pus cifra zero, apoi am asezat butonul si programul meu a ajuns sa arate astfel:
Acuma, dublu-click pe butonul +1 si scrieti urmatorul cod: numar.Caption = numar.Caption + 1
Cam asta este tot programul. Va contoriza fiecare click pe butonul +1. Mai exact, programul i-a Caption din labelul nostru numar si il aduna cu 1 de cate ori apasam butonul +1. In cel de al doilea tutorial voi incepe sa va povestesc despre Variabilele in Visual Basic. Dar pentru a intelege variabilele, inainte de ele voi scrie putin despre tipurile de date in Visual Basic. Am explicat in mare in urmatorul tabel dimensiunile(in numar de caractere) Valorilor(Data):
(click pe imagine pentru marire) Bun, acuma ca stim ce e fiecare(in mare) definirea unei variabile se face astfel: Dim
NumeVariabila
As
TipData
Unde Dim este tipul variabilei, in cazul nostru Dimension, NumeVariabila este numele variabilei noastre, ii putem da orice nume, cu doua conditii: sa nu contina spatii si sa nu inceapa cu o cifra, As defineste tipul variabilei, iar TipData este tipul variabilei(byte, integer, long, single, double, string, etc). Pentru a nu aparea probleme cu variabilele trebuie definite tot timpul, putem lucra si cu ele nedefinite, insa pot aparea erori. Visual Basic are o functie care ne vine in ajutor putin, in cazul in care uitam sa definim o variabila, aceasta functie ne spune ca variabila este nedefinita. Aceasta functie se numeste Option Explicit, si pentru a o activa, trebuie sa scriem pe primul rand al programului care foloseste variabile textul Option Explicit Bun, acuma sa incepem sa facem un calculator foarte simplu. Urmand ca in urmatorul articol sa il ―complicam‖ putin. Pentru acest calculator vom folosi:
doua Textbox doua Label un CommandButton
Eu mi-am aranjat programul in felul urmator:
Am schimbat numele Textbox-urilor din Textbox1 si Textbox2 in nr1 si nr2. Cele doua label-uri sunt: semnul +(Caption) si un label cu Caption gol cu (Name) rezultat. Acuma, vom face ca acest program sa adune numarul introdus in prima casuta(nr1) cu numarul introdus in a doua casuta(nr2). Dublu-click pe butonul = si scriem codul urmator: Option Explicit Private Sub CommandButton1_Click() Dim operand1 As Integer Dim operand2 As Integer Dim rez As Integer
operand1 = nr1.Text operand2 = nr2.Text rez = operand1 + operand2 rezultat.Caption = rez End Sub Am inceput cu functia despre care am vorbit mai devreme Option Explicit, apoi a urmat actiunea pe CommandButton1. Am definit trei variabile(operand1, operand2, rez) ca si numar intreg(Integer), apoi le-am dat valori(operand1=nr1.text - aici operand1 ia valorile din prima casuta text(nr1), operand2=nr2.text - aici operand2 ia valorile din a doua casuta text(nr2) si rez=operand1 + operand2 - va face adunarea intre cele doua numere), iar in cele din urma am pus ca rezultatul rezultat sa reprezinte valoarea variabilei rez, suma celor doua numere.
Acest calculator va functiona doar cu numere intregi. Pentru a-l face sa functioneze cu numere reale schimbam pur si simplu tipul variabilei din Integer in Double, iar calculatorul nostru va stii si de numere cu virgula. Inca un lucru mai vreau sa mentionez si am terminat, operatorii in Visual Basic sunt: + (adunare) - (scadere) * (inmultire) / (inpartire)
^ (ridicare la putere) Filed under: Digital Life, download, express, microsoft visual basic Dupa cum am spus, in acest articol ne jucam putin cu calculatorul facut in articolul anterior. Mai exact, in acest articol voi explica putin ―conditiile‖ din Visual Basic: IF si ELSE IF. Vom face aproape acelasi program doar ca in acesta vom folosi:
trei Textbox un CommandButton un Label
Vom folosi trei Textbox-uri, si anume nr1, nr2, semn. Pentru inceput, asezam putin ―calculatorul‖ sa arate decent, eu l-am asezat astfel:
Primul Textbox din imagine l-am denumit nr1 [(Name) din containerul Properties], al doilea(cel mic) l-am numit semn, iar al treilea nr2. Label-ul unde scrie rezultat trebuie sa fie gol(Properties-Caption) si sa aiba numele rez. Bun, acuma incepe distractia, vom folosi o conditii pentru a comanda calculatorul sa calculeze cele doua numere in functie de semnul dintre ele. Dublu-click pe butonul egal, declaram Option Explicit pe primul rand, apoi scriem urmatorul cod: Dim Dim Dim Dim
numar1 As Double numar2 As Double calc As String rezultat As Double
numar1 = nr1.Text numar2 = nr2.Text calc = semn.Text If calc = "+" Then rezultat = numar1 + numar2 ElseIf calc = "-" Then rezultat = numar1 - numar2 ElseIf calc = "*" rezultat = numar1 ElseIf calc = "/" rezultat = numar1 ElseIf calc = "^" rezultat = numar1 End If
Then * numar2 Then / numar2 Then ^ numar2
rez.Caption = rezultat
Ce am facut mai sus: am declarat variabilele numar1, numar2 si rezultat ca fiind Double, deoarece voi avea nevoie de numere reale(cu +/- si virgula), apoi am declarat variabila calc ca fiind String(sir de caractere), aceasta variabila va fi defapt semnul. Apoi am dat valori variabilelor(numar1 = nr1.Text, etc). Apoi am trecut la partea interesanta, am folosit If, ElseIf si End If. Tot timpul o conditie va incepe cu If, de obicei nu putem exprima totul printr-o singura conditie, atunci vom folosi ElseIf pentru urmatoarele conditii, oricate ar fi, iar la sfarsit, trebuie sa oprim conditia folosind End If. Conditia de mai sus verifica urmatorul lucru: daca calc(semn) este egal cu unul dintre cele cinci semne va calcula cele doua numere in functie de semn si va pune rezultatul in variabila rezultat. La sfarsit, tot ce trebuie sa mai facem este sa afisam rezultatul in label-ul rez, deci: rez.Caption = rezultat Vom avea nevoie de conditii aproape in fiecare program de acuma inainte, de aceea urmatorul articol va fi tot despre conditii, pentru a intelege mai bine cum functioneaza. Iata rezultatele mele la testarea programului: Programul simplu:
Adunare:
Scadere:
Inmultire:
Impartire:
Ridicare la putere:
Cam atata despre conditii deocamdata. Pana la urmatorul articol, exersare placuta va doresc! Salutare, in acest articol voi mai face un program folosind cateva conditii. Va fi putin mai complex, insa nu va fi greu. Pe scurt, vom face un program simplu cu:
un Textbox un CommandButton un Label
Label-ul nu este absolut necesar, l-am adaugat pentru ca utilizatorul sa stie ce sa faca in acest program. Textbox-ul l-am denumit varsta [(Name) din Properties] si cam atata. Programul meu arata cam asa pana acuma:
Acuma, dati dublu-click pe butonul Confirma si sa trecem la treaba scriind urmatorul cod:
Dim ani As Integer ani = varsta.Text If ani > 0 AND ani < 6 Then MsgBox "Salut bebelusule!", MsgBoxStyle.Information, "Bebelus" ElseIf ani > 5 AND ani < 15 Then MsgBox "Salut copilule!", MsgBoxStyle.Information, "Copil" ElseIf ani > 14 AND ani < 21 Then MsgBox "Salut adolescentule!", MsgBoxStyle.Information, "Adolescent" ElseIf ani > 20 AND ani < 31 Then MsgBox "Salut tinere adult!", MsgBoxStyle.Information, "Tanar Adult" ElseIf ani > 30 AND ani < 61 Then MsgBox"Salut adultule!", MsgBoxStyle.Information, "Adult" ElseIf > 60batrane!", Then MsgBox ani "Salut MsgBoxStyle.Information, "Batran" End If
In codul de mai sus am declarat variabila ani ca si Integer(numar intreg), apoi am creeat niste conditii in functie de care sa primesc un mesaj intr-un Messagebox. Daca varsta este mai mare ca 0 si mai mica decat 6, sa imi spuna ca sunt un bebelus, s.a.m.d.. In alta ordine de idei, la articolul cu primul calculator am uitat sa precizez cativa operatori aritmetici, si anume:
> (mai mare) >= (mai mare sau egal) < (mai mic) <= (mai mic sau egal) Filed under: Digital Life, download, express, free, gratis, microsoft visual basic, tutorials
Leave a Reply alutare, in acest articol voi vorbi despre cateva functii predefinite din Visual Basic. Aceste functii au rolul de a ne ―ajuta‖ cu unele actiuni de care avem nevoie. Mai exact, voi explica putin functiile: Len(), Left(), Right(), Mid(), InStr(). Iar la final voi face un mic exercitiu folosind aceste functii. Bun, sa incepem:
Len() - se foloseste pentru a calcula dimensiunea unui sir de caractere. Exemplu: Len(“TEXT”) va rezulta cifra 4. Left() - se foloseste pentru a ―taia‖ o parte dintr-un sir de caractere incepand din stanga spre dreapta pana la caracterul definit de noi . Exemplu: Left(“TEXT PREDEFINIT”, 4) va rezulta textul TEXT, deoarece noi i-am spus functiei Left sa afiseze primele 4(caracterul definit de noi) caractere din sirul respectiv. Right() - la fel ca si Left se foloseste pentru a taia o parte dintr-un sir de caractere incepand din dreapta spre stanga pana la caracterul definit de noi. Exemplu: Right(“SIMPLE TEXT”, 4) va rezulta textul TEXT, explicatia de la Left este valabila si aici. Practic functia Right() incepe numaratoarea de la ultimul caracter spre primul caracter in ordine crescatoare(T-1, X-2, E-3, T-4). Mid() - aceasta functie o vom folosi mai putin, ea taie un sir de caractere folosind doua puncte, fata de Right si Left. Exemplu: Mid(“SIMPLE TEXT2″, 7, 11) va rezulta textul TEXT, deoarece functia mid incepe sa afiseze caracterele incepand cu al 7-lea
caracter(in exemplu al 7-lea caracter este spatiul) pana la al 11-lea caracter(ultimul ―T‖ din cuvantul TEXT). InStr() - se foloseste pentru a cauta un anumit caracter/sir de caractere/cuvant intr-un text mai lung. Exemplu: InStr(Textbox1.text, “ text “) va rezulta pozitia cuvantului text in textul introdus in casuta Textbox1, in cazul in care acesta exista, daca nu exista va rezulta 0(zero).
Acuma, sa facem un exercitiu simplu folosind functiile Len(), Left(), Right(), InStr(). In programul urmator vom folosi:
Un Label Un Textbox Un CommandButton
Dupa ce am aranjat putin cele trei elemente, programul meu arata asa:
Partea de cod va fi ceva mai lunga, deoarece vom desparti numele de prenume si afisa. Deci, dublu-click pe butonul Afiseaza Informatii , pe prima linie Option Explicit iar apoi in Subrutina butonului nostru: Dim nume As String Dim prenume As String Dim lungimetext As Integer Dim spatiu As Integer
Label1.Caption = Label1.Caption & "Numele dvs. este: " & nume & ", iar prenumele: " & prenume
Astfel, am declarat patru variabile: nume, prenume(String – sir de caractere), lungimetext, spatiu(Integer – numar real), apoi le-am dat valori: lungimetext a devenit lungimea textului, folosind functia Len, spatiu a devenit pozitia spatiului din sirul nostru de caractere(Prenume Nume) introdus in TextBox1 folosind functia InStr. Am lasat ce e mai greu la sfarsit: prenume folosind functia Left va prelua textul de la pozitia 1(primul caracter) pana la pozitia spatiu-1(ultimul caracter din primul cuvant), am pus spatiu-1 nu spatiu, pentru ca nu
am nevoie si de spatiu in prenumele meu. nume folosind functia Right va prelua textul de la ultimul caracter introdus pana la pozitia
spatiului. Dupa cum am explicat anterior, Right ia ultimul caracter ca fiind primul, penultimul ca fiind al doilea, etc. Apoi am afisat totul in Label-ul nostru concatenand(unind) Label1.Caption cu variabilele nume si prenume, folosind semnele & inainte si dupa fiecare sir de text sau variabila. Rezultatul acestui program a fost:
Microsoft Visual Basic #7 – despre Matrici/Vectori Pentru inceput, o matrice nu este nimic altceva decat o variabila cu mai mult ―spatiu‖, se declara la fel: Dim matrice(x, y) as Integer -> unde x si y sunt dimensiunile. In continuare vom face o matrice simpla patratica(5 randuri/5 coloane). In program vom avea nevoie de un Label si un Buton(optional doua, pentru butorul End).
Asa arata deocamdata programul meu, acuma Dublu-Click pe Populeaza si scriem codul: Option Explicit Private SubCommandButton1_Click() Dim matrice(4, 4) As Integer Dim i As Integer Dim j As Integer For i = 0 To 4 For j = 0 To 4 matrice(i, j) = i & j Label1.Caption = Label1.Caption & i & j & " " Next j Next i End Sub
Bun, acuma sa explic putin, in prima parte a codului am declarat variabilele si matricea/vectorul, apoi, am populat matricea cu numere de la 0 la 4 folosind o iteratie(For), astfel: am luat coloana i=0 pana la 4, si l-am umplut cu numere de la 0 la 4, apoi, am luat randul j de la 0 la 4 si l-am umplut cu numere de la 0 la 4 folosind linia: matrice(i, j)=i & j care la coloana i si randul j va pune valoarea i si j(mai exact va pune numarul coloanei si numarul elementului din randul respectiv). Apoi, pentru a si afisa matricea noastra ne folosim de randul: Label1.Caption = Label1.Caption & i & ” “ ->care nu face altceva decat sa ia valoarea label-ului existent si sa adauge i si j si un spatiu pentru a arata mai bine matricea. Apoi folosim Next j si Next i pentru a face asta de la 0 la 4.
Asa va arata matricea in momentul asta. Ceea ce vreau sa mai mentionez este:
am declarat matrice(4, 4) si ea este defapt o matrice 5×5 pentru ca in Visual Basic primul element dintr-o numaratoare este 0(zero) Butonul Exist se face foarte simplu dând dublu-click pe el si scriind End
Succes!
Microsoft Visual Basic #matrici In acest articol voi face o noua matrice care se foloseste de siruri de caractere pentru a afisa ceva, in acelasi timp ea va scrie valoarea elementelor intr-un label, unu cate unu. Avem nevoie de un buton si un TextLabel, dupa ce le-am aranjat ele arata asa:
Dublu-click pe buton si scrieti codul de mai jos: Dim matrice(3) As String matrice(0) = "Ana" matrice(1) = "are"
matrice(2) = "mere" matrice(3) = "frumoase" For i = 0 To 3 MsgBox matrice(i) Label1.Caption = Label1.Caption & " " & matrice(i) Next i
Am definit o matrice simpla de cu 3 elemente(+1 pentru ca numerotarea incepe de la 0). Apoi le-am definit cu matrice(0), matrice(1), matrice(2), matrice(3), apoi am facut o simpla iteratie care sa ia toate numerele de la 0 la 3 si sa imi afiseze un MsgBox cu valoarea elementului din matrice la punctul am facut afiseze TextLabel rezultatul, i. (matrice(i)), luat valoarea actuala a Label-uluitotodata si am unit-o cu unsaspatiu golsisiinmatricea in punctul i. am
Home Administratie Arta cultura Biologie Casa gradina Diverse Economie Geografie Gradinita Informatica Istorie Jurnalism Limba Literatura romana Management Medicina Personalitati Profesor scoala Sociologie Stiinta Arhitectura constructii Astronomie Chimie Drept Fizica Informatica Abbyy
Exploreaza
Mediul de programare VISUAL BASIC
finereader photoshop Access AutocadAdobe Baze de date C Dc Excel Foxpro Hardware Html Java Linux Oracle Php Retele Sql Visual basic Windows Word Matematica Stiinte politice Tutorials
Tehnica mecanicaMediul de programare VISUAL BASIC Timp liber
1.1. Introducere in mediul de
MS-DOS Concepte de baza ale Tehnologiei Informatiei test
programare Visual Basic VISUAL BASIC este un limbaj de programare 17117l1120r de inalt nivel facindu-si pentru prima data aparitia in prima sa versiune DOS numita BASIC (Beginers' Allpurpose Symbolic Instruction Code). El este cel mai prietenos si cel mai usor de invatat limbaj de programare 17117l1120r . Diferite companii produc software sub diferite versiuni BASIC, printer care enumeram:
Microsoft QBASIC furnizat o data cu sistemul de operare Windows 95,
98.
QuickBASIC
GWBASIC
IBM BASICA
VISUAL BASIC este un limbaj de programare VISUAL operind intr-un mediu grafic bazat pe reprezentari sub forma de obiecte pe cind ascendentul sau BASIC este un limbaj de programare 17117l1120r ce opereaza intr-un mediu de programare text, programul executindu-se secvential. Un program VISUAL BASIC este o colectie de subprograme , fiecare cu codul sau de program ce poate fii executat independent si simultan, si care pot fii legate intre ele intr-un mod sau altul. In momentul lansarii in executie VISUAL BASIC 6 va afisa un ecran care permite: Putem alege una dintre urmatoarele optiuni:
Creerea unui nou proiect
Deschiderea unui proiect existent
Selectia unei liste a recentelor programe deja deschise
Un proiect reprezinta o colectie de fisiere care compun un anumit tip de
aplicatie. Obiectivul prioritar este de a creea programe standard executabile, cu extensia .EXE. Prin urmare vom executa clic pe icoana Standard EXE pentru a intra in mediul de programare VISUAL BASIC.
1.2. Manipularea datelor in VISUAL BASIC Pentru a manipula cu usurinta datele, precum:
nume adrese bani datele evolutia pe piata bursiera a stocurilor statistici
VISUAL BASIC imparte datele in doua tipuri diferite:
Date numerice
Date nenumerice
1.3. Date numerice Datele numerice au la baza numerele si sint impartite in sapte mari tipuri, precum in tabela 1.1. Tabela 1.1.: Tipuri de date numerice TIP Byte Integer Long
FORMAT 1 byte 2 bytes 4 bytes
Single
4 bytes
Double 8 bytes Currency 8 bytes
GAMA DE REPREZENTARE 0 to 255 -32,768 pina la 32,767 -2,147,483,648 pina la 2,147,483,648 -3.402823E+38 pina la -1.401298E-45 pentru valori negative 1.401298E-45 pina la 3.402823E+38 pentru valori pozitive -1.79769313486232e+308 pina la 4.94065645841247E-324 pentru valori negative 4.94065645841247E-324 pina la 1.79769313486232e+308 pentru valori positive -922,337,203,685,477.5808 pina la
1.4. Tipuri de date nenumerice Sint prezentate in Tabela 1..2. Tabela 1.2.: Tipuri de date nenumerice TIPUL DE DATE
FORMAT GAMA DE REPREZENTARE Lungimea unui String(lungime fixa) 1 pina la 65,400 caractere string String(lungime Lungimea + 10 0 pina la 2 miliarde caractere variabila ) bytes Ianuarie 1, 100 pina in Decembrie Date 8 bytes 31, 9999 Boolean 2 bytes True sau False Object 4 bytes Orice obiect compus Orice valoare mai mare decit Variant (numeric) 16 bytes Double Lungimea+22 Variant (text) La fel ca si un string variabil bytes
1.5. Utilizarea sufix-urilor in reprezentarea datelor Uneori avem nevoie sa adaugam in fata datelor cite un sufix astfel incit VB poate manipula cu acuratete aceste date in timpul efectuarii calculelor. Aceste sufixuri sint prezentate in Tabela 1.3.
Tabela 1.3: Sufix-uri utilizate in reprezentarea datelor TIP DE SUFIX DATE & Long ! Single # Double @ Currency Sirurile de caractere (oricare caracter precum numere, date si simboluri) sint incluse intre doua apostrofuri, iar datele de tip Date sint incluse intre
doua semne #.
1.6. Manipularea Variabilelor Variabilele reprezinta locatii de memorie RAM pentru incarcarea temporara a datelor. In Visual Basic fiecare variabila poarta un nume, precum a, b, c, d, i, k, lungime, latime, raza, volum, etc., care respecta urmatoarele reguli:
Trebuie sa fie mai mici decit 255 caractere
Nu sint permise spatii intre caractere
Nici un nume nu incepe printr-un numar
Punctul nu este permis in cadrul sirului de caractere
Example de variabile valide si invalide sint prezentate in tabela 1.4 .
Tabela 1.4.: Variabile valide si invalide VALID NAME Comenzi_IPA Acest trimestru
INVALID NAME Comenzi.IPA 7ABC Nick&fratele Client_Date_Personale_Contract is not acceptable
*&
1.7. Declararea Variabilelor Declararea unei variabile consta in specificarea numelui sau si al tipului de date careia ii apartine. In Visual Basic declararea variabilelor are loc inainte ca acestea sa fie utilizate. Ele sint de obicei declarate in sectiunea ferestrei de code utilizind instructiunea Dim (dimensiune) si au formatul urmator:
Dim numele variabilei as Tip de date Exemple de declarare a unor variabile putem da:
Dim numeutilizator as String ( declararea sirului de caractere "Viorel") Dim parola as String (declararea sirului de caractere "Vasile") Dim primuloperand as Integer (declararea variabilei cu valori intregi primuloperand) Dim rezultat as Integer (declararea variabilei cu valori intregi rezultat) Dim raza as Integer (declararea variabilei cu valori intregi raza)
Dim datanasterii as Date (declararea varaiabilei de tip Date datanasterii) In sectiunea de cod unde efectuam declararea lor putem scrie aceste variabile pe aceiasi linie sau pe mai multe linii, grupate intre ele si separate printr-o virgula ca de exemplu:
Dim numeutilizator, parola as String Dim primuloperand, rezultat, raza as Integer Dim datanasterii as Date Daca tipul de data nu este specificat Visual Basic automat va declara variabila respective de tip Variant. Pentru declararea unui sir de caractere exista doua formate posibile, unul de lungime variabila iar celalalt de lungime fixa, precum in exemplele de mai jos:
Dim numeutilizator as String (lungime variabila) Dim parola as String * 9 , unde 9 defineste numarul de caractere al sirului, care nu poate fii depasit.
1.8. Asignarea valorilor Variabilelor Dupa declararea diferitelor variabile cu ajutorul instructiunii Dim vom putea asigna valori acestor variabile, utilizind urmatorul format general: Variabila = Expresie unde Variabila poate fii oricare dintre variabilele declarate anterior , iar Expresie ar putea fii o expresie matematica, un numar (initializare), un sir de caractere, o valoare logica booleana (true si false), etc, precum in exemplele de mai jos: primuloperand = 100 (initializarea rezultat = 3*primuloperand +100
1.9. Operatori in Visual Basic Pentru efectuarea calculelor aritmetice si generarea de rezultate pentru utilizator vom utiliza diferiti operatori matematici, precum cei prezentati in
tabela 1.9. Tabela 1.9: Operatori utilizati in Visual Basic OPERATOR FUNCTIE MATEMATICA Exponentiala ^ Multiplicare * / Impartire Impartire cu rest (returneaza Mod doar restul impartirii cu numere intregi) Impartire intre numere integi cu \ rest ( returneaza doar citul neglijind zecimalele) + or &
Concatenare sir
EXEMPLU 3^4=81 5*4=20 16/2=8 10 Mod 3 = 1 21\5=4 "Visual"&"Basic"="Visual Basic"
In afara acestora mai sint si operatorii logici AND, NOT, OR in cazul operarii cu expresii logice booleene.
1.10 Instructiuni de control 1.10.1 Controlul Structurilor
Multe dintre sarcinile implicate in programare sint repetitive
Orice sarcina care poate fii calculata poate fii construita utilizind constructori:
secventa
(realizeaza o secventa de actiuni)
conditie (daca o conditie este indeplinita atunci se poate trece la realizarea actiunii, in caz contrar se va executa cu totul altceva)
repetitie
(repeta o operatie)
Ramificare conditionata
Instructiunea If Else Bucle (Loops) o Bucla Do
contor = 0 Do Until contor = 1000 contor = contor + 1 MsgBox contor Loop o
Bucla Do While contor = 1 Do MsgBox contor contor = contor+ 1 Loop While contor < 1001
Select Case
Este utilizata pentru selectarea unei alternative dintre toate cele existente si are urmatorul format general: Select Case expresie Case valoare1 Bloc cu una sau mai multe instructiuni Visual Basic Case valoare2 Bloc cu una sau mai multe instructiuni Visual Basic Case valoare3 Bloc cu una sau mai multe instructiuni Visual Basic ... Case Else Bloc cu una sau mai multe instructiuni Visual Basic End Select Tipul de date specificat in expresie trebuie sa fie acelasi din Case valoare Cuvintul cheie Is este utilizat aici pentru impunerea de conditii in cazul datelor
1.11. Functii in VISUAL BASIC Functiile sint similare cu procedurile lor trecerea fiind acela de a accepta anumite valori pentru parametriinormale, de intrarerolul si apoi acestora in programul principal pentru terminarea executiei. Distingem doua tipuri de functii, functii de biblioteca (interne) si functii create de programator. Formatul general al unei functii este de forma: Numelefunctiei(argumente) unde argumentele sint valorile parametrilor ce trebuiesc trecute prin functie
programului principal. In cele ce urmeaza vom prezenta doua dintre cele mai utilizate functii interne in programarea Visual Basic MsgBox( ) si InputBox( ).
1.11.1 Functia MsgBox ( ) Rolul functiei MsgBox( ) este de a produce un "pop-up" caseta de mesaj si a invita (prompt) utilizatorul sa execute mai inti un clic pe butonul de comanda inainte de a continua. Formatul unei caste de mesaj este de forma:
1.11.2 Functia InputBox( ) Functia InputBox( ) afiseaza o caseta de mesaj unde utilizatorul poate introduce o valoare sau mesaj sub forma de text, avind urmatorul format: RezultatMsg = InputBox (Prompt, Title, default_text, x-position, y-position)
RezultatMsg este o variabila de tip variant care de obicei este declarata ca sir de caractere, ce accepta mesajul de intrare introdus de utilizator. Argumentele functiei au urmatoarea semnificatie:
Prompt
- Mesaj afisat normal ca o intrebare
Title
- Titlul casetei de intrare (Input Box).
default-text - Textul prestabilit care apare in cimpul de intrare
x-position si y-position -pozitia sau coordonatele casetei de intrare
Interfata
Codul Procedurii pentru butonul OK
1.11.3 Creerea Functiilor proprii ( externe, de catre programatori) Formatul general al functiei este de forma:
Public Function functionName (Arg As dataType,..........) As dataType sau
Private Function functionName (Arg As dataType,..........) As dataType unde Public semnifica faptul ca functia este valabila in intregul program
pe cind Private semnifica ca functia este aplicabila numai la anumite module sau proceduri.