Visual basic - shqip

Page 1

MĂŤsimi i gjuhes Visual BASIC

KAPITULLI 1. Hyrje ne Visual Basic 5...................................................................................... 4 Miresevini ne Visual Basic............................................................................................ 4 -0-


Mësimi i gjuhes Visual BASIC Instalimi Visual Basic ................................................................................................... 5 Sistemi i ndihmes ne Visual Basic................................................................................ 5 KAPITULLI 2. Zhvillimi i nje aplikimi ne Visual Basic ........................................................... 6 Konceptet e Visual Basic 5.0 ......................................................................................... 6 • •

Elementet e ambientit te Microsoft Visual Basic. ....................................................... 7 Ekzekutimi i Visual Basic................................................................................................ 7 Ambienti i punes ne Microsoft Visual Basic 5.0........................................................ 8

• •

Aplikimi juaj i pare ne Visual Basic........................................................................... 10 Pershendetje, Visual ................................................................................................... 10 Shembulli i aplikimit Firstapp ..................................................................................... 18

KAPITULLI 3. Formset, Kontrollet, dhe Menute..................................................................... 23 Kuptimi i Vetive , Metodave dhe Ngjarjeve .............................................................. 23 Vizatimi i Formsit. ....................................................................................................... 25 Kryerja e veprimeve nepermjet klikimit te butonave .............................................. 26 • • • • • •

Kontrollet qe perdoren per afishim dhe futje teksti. ................................................ 29 Perdorimi i etiketave per te afishuar tekst ............................................................... 29 Puna me kutite e tekstit .............................................................................................. 31 Zgjedhja e opsioneve individuale me ndihmen e kutive te kontrollit. .................. 35 Butonat opsionale........................................................................................................ 37 Perdorimi i listave dhe i kombove. ............................................................................ 42 Perdorimi i ashensoreve ne rrethana futje te dhenash. ........................................ 44

• • • • • •

Kontrollet per afishimin e figurave dhe grafikeve .................................................... 44 Puna me kontrollin Pikture (Picture box) ................................................................. 44 Kontrollet grafike “Lightweight”.................................................................................. 46 Aplikim me imazhe. ..................................................................................................... 47 Kontrolle te tjera shtese.............................................................................................. 49 Kuptimi i Fokusit .......................................................................................................... 51 Vendosja e Tab Order ................................................................................................ 52 Menute........................................................................................................................... 53 Komunikimi me perdoruesit me kuti dialogu. .......................................................... 56

KAPITULLI 4. Administrimi i projektit .................................................................................... 58 Struktura e nje projekti ne Visual Basic.................................................................... 58 Krijimi, hapja dhe ruajtja e nje projekti ................................................................... 59 Shtimi, heqja dhe ruajtja e skedareve........................................................................ 61 Shtimi i kontrolleve ne nje projekt ............................................................................. 63 Krijimi dhe ekzekutimi i nje skedari EXE ................................................................ 66 Vendosja e opsioneve ne nje projekt .......................................................................... 67 Perdorimi i wizardeve dhe add-ins............................................................................. 68

-1-


Mësimi i gjuhes Visual BASIC KAPITULLI 5. Programimi ne Visual Basic 5.0 ..................................................................... 71 •

5.1 Struktura e nje aplikimi ne Visual Basic ............................................................. 71 Si punon nje aplikim i drejtuar nga ngjarjet? ........................................................... 73 Perpara se te programoni,........................................................................................... 73

• •

Mekanizmi i Shkrimit te kodit .................................................................................... 76 Modulet kode................................................................................................................ 76 Perdorimi i editorit te kodit.......................................................................................... 77

• • • • • • • • •

Variablat, Konstantet dhe Tipet e te Dhenave .......................................................... 26 Variablat ........................................................................................................................ 26 Kuptimi i jetes se nje variabli. .................................................................................... 26 Me shume per variablat .............................................................................................. 26 Variablat Statike........................................................................................................... 26 Konstantet..................................................................................................................... 26 Tipet e te Dhenave...................................................................................................... 26 Me shume per tipin Variant........................................................................................ 26 Tabelat .......................................................................................................................... 26 Tabelat Dinamike......................................................................................................... 26

• • • •

Procedurat dhe Funksionet. ........................................................................................ 26 Procedurat Sub (Nenprocedurat).............................................................................. 26 Procedurat Funksion................................................................................................... 26 Puna me Procedurat ................................................................................................... 26 Kalimi i argumenteve ne nje procedure. .................................................................. 26

• • •

Strukturat e kontrollit ne Visual Basic ...................................................................... 26 Strukturat e vendimit................................................................................................... 26 Struktura me cikle........................................................................................................ 26 Puna me strukturat e kontrollit................................................................................... 26

• • •

Puna me objektet.......................................................................................................... 26 C’jane objektet? ........................................................................................................... 26 Si jane te lidhur objektet me njeri tjetrin?................................................................. 26 Krijimi i objekteve......................................................................................................... 26

KAPITULLI 6. Manipulimi i te dhenave................................................................................... 26 • • • • • • •

Kapja e bazave te dhenave me kontrollin Data......................................................... 26 Cfare mund te beni me objektin Data. ........................................................................... 26 Krijimi i nje aplikimi te thjeshte me baza te dhenash ............................................. 26 Kuptimi i struktures dhe ndertimit te nje baze te dhenash .................................. 132 Kuptimi i Grup-Rekordeve(Recordsets)................................................................. 133 Perdorimi i kontrollit Data-Bound ............................................................................ 135 Tipet e kontrolleve Bound ........................................................................................ 135 Shtimi, modifikimi dhe fshirja e rekordeve............................................................. 136

• •

Perdorimi i kontrolleve Data-Bound List Box dhe Data-Bound Combo Box. ..... 137 Vendosja e vetive per Data-Bound-et Lista dhe Kombo ..................................... 137 Shembull me Data-Bound-in Kombo...................................................................... 137 Perdorimi i kontrollit DBGrid .................................................................................. 139 -2-


Mësimi i gjuhes Visual BASIC • • •

Navigimi neper nje Baze me DBGrid...................................................................... 140 Veprimet me kontrollin DBGrid ne run-time .......................................................... 140 Puna me zonat ne nje kontroll DBGrid................................................................... 141

• • •

Manipulimi i rekordeve me kode.............................................................................. 141 Navigimi neper rekorde ............................................................................................ 142 Gjetja e rekordeve specifike .................................................................................... 143 Azhornimi i rekordeve me kod................................................................................. 146

-3-


Mësimi i gjuhes Visual BASIC KAPITULLI 1. Hyrje ne Visual Basic 5. Permbajtja Miresevini ne Visual Basic Instalimi i Visual Basic Sistemi i ndihmes ne Visual Basic

Miresevini ne Visual Basic Puna me Microsoft Visual Basic eshte menyra me e shpejte dhe me komode per te krijuar aplikime per Windows. Edhe ne qofte se ju nuk keni eksperience ne programimin nen Windows, Microsoft Visual Basic ju ofron juve mjaft lehtesira per ndertimin e aplikimeve ne menyre te shpejte. Nga vete emri “Visual” me Microsoft Visual Basic mund te ndertohen nderfaqes grafik per perdoruesin “graphical user interface”(GUI). Pa patur nevoje te shkruhen rreshta te shumte, por duke shfrytezuar objektet e gatshme(kontrollet) qe na ofron Microsoft Visual Basic dhe duke i vendosur ne pozicionin e deshiruar ne ekran. Pjesa "Basic" e Microsoft Visual Basic konsiston ne gjuhen BASIC (Beginners All-Purpose Symbolic Instruction Code) gjuha e perdorur nga me shume programues ne historine e Informatikes. Megjithate Microsoft Visual Basic ka evoluar nga origjinali BASIC, dhe permban shume instruksione, funksione, fjale kyce shumica e te cilave kane te bejne edhe me ndertimin e GUI. Fillestaret mund te krijojne aplikime te vlefshme duke mesuar vetem disa nga instuksionet e Microsoft Visual Basic, ndersa ata qe kane eksperience mund ta perdorin Microsoft Visual Basic per te realizuar projekte te tera, duke e gershetuar edhe me aplikime te tjera nen Windows. Visual Basic perdoret gjeresisht edhe per administrimin e bazave te te dhenave, fale cilesive te shkelqyera te kapjes dhe perpunimit te te dhenave, dhe faktit qe ajo njeh dhe manipulon baza te dhenash ne formate te ndryshme. Gjithashtu mund te gershetohet edhe me SQL. Duke shfrytezuar teknologjine ActiveX, mund te bejme lidhjen e aplikimeve te Microsoft Visual Basic me aplikime te tjera se Microsoft Winword ose Microsoft Excel.

Instalimi Visual Basic

-4-


Mësimi i gjuhes Visual BASIC Instalimi i Visual Basic behet duke perdorur programin Setup. Programi Setup ben instalimin e Visual Basic, instalimin e sistemit te ndihmes, te shembujve dhe te komponenteve te tjera nga CD-ROM ne diskun tuaj. Sistemi i ndihmes ne Visual Basic Sistemi i ndihmes ne Visual Basic 5.0 permban: •

Visual Basic Books Online, permban dokumentacion online rreth punes me Microsoft Visual Basic • Online Help, permban informacione te vlefshme rreth perdorimit te ambientit te Microsoft Visual Basic dhe gjuhes se programimit •

Visual Basic Online Links, ofron lidhje direkte me materiale rreth Microsoft Visual Basic ne Internet(nqs posti juaj i punes lidhet me Internetin)

-5-


MĂŤsimi i gjuhes Visual BASIC KAPITULLI 2. Zhvillimi i nje aplikimi ne Visual Basic Vetem per pak minuta, juve mund te krijoni aplikimin e pare ne Visual Basic. Nderfaqesin per perdoruesin mund ta krijoni duke vendosur kontrollet e ndryshme si nje kuti teksti, buton komande etj ne nje forms. Pastaj vendosen vetite e kontrolleve te perdorura si ngjyrat, etj.

Konceptet e Visual Basic 5.0 Me qellim qe te kuptohet sa me mire nje proces i zhvillimit te nje alikimi, eshte e nevojshme te shpjegohen disa nga konceptet baze te pune me Visual Basic. Meqenese Visual Basic eshte nje gjuhe programimi per Windows, juve keni nevoje te dini disa ndryshime ndermjet programimit nen Windows me programimin ne ambiente te tjera.

Si punon Windows?: Dritaret, Ngjarjet dhe Mesazhet Nje shpjegim i hollesishem rreth punes se Windows, do te kerkonte nje liber te tere, por ketu po mundohemi te japim tre konceptet themelore te Windows: Dritaret, Ngjarjet dhe Mesazhet. Nje dritare eshte nje zone drejtekendeshe me permasa te caktuara. Ju mund te njihni lloje te ndryshme dritaresh si nje dritare Explorer ne Windows 95, nje dritare dokumenti brenda nje programi Word Processing ose nje dritare kuti teksti, Megjithese keto jane me te shpeshtat, ka gjithashtu shume tipe te tjera dritaresh. Nje buton komande eshte ne fakt dritare. Gjithashtu Ikonat, butonat opsionale dhe shiritat e menuve jane gjithashtu dritare. Sistemi operativ Microsoft Windows i administron te gjitha keto tipe dritaresh duke i atashuar sejciles nje numer unik. Ngjarjet ndodhin nga veprimet e perdoruesit si nje klikim mouse-i ose nje shtypje e nje taste ne tastiere. Ngjarjet mund te shkaktohen gjithashtu edhe nga nje kontroll i programuar ose edhe si rezultat i veprimit te nje dritareje tjeter.

Modeli i komanduar nga ngjarjet. Ne aplikimet tradicionale ose proceduriale, aplikimi kontrollon vete se cila pjese e kodit duhet ekzekutuar dhe ne cfare sekuence. Ekzekutimi fillon me rreshtin e pare te kodit dhe vazhdon sipas nje drejtimi te percaktuar nga aplikimi, duke thirrur procedurat e ndryshme sipas rastit. Ne nje aplikim te komanduar nga ngjarjet, kodi nuk ndjek nje drejtim te percaktuar- Ai ekzekuton pjese te ndryshme kodesh, ne pergjigje te ngjarjeve qe ndodhin. Ngjarjet mund te shkaktohen nga veprimet e -6-


MĂŤsimi i gjuhes Visual BASIC perdoruesit, nga mesazhet e sistemit ose te aplikimeve te tjera, ose nga vete aplikimi. Kodi juaj mund te shkaktoje gjithashtu ngjarje gjate ekzekutimit. Per shembull ndryshimi i tekstit te nje kutie teksti nga programi, shkakton ngjarjen e ndryshimit te tekstit. Kjo mund te shkaktoje te ekzekutohet kodin qe ndodhet ne kete procedure.

Zhvillimi interaktiv i aplikimit. Procesi tradicional i ndertimit te nje aplikimi mund te ndahet ne tre hapa.: shkrimi i kodit, kompilimi dhe testimi. Ndryshej nga gjuhet dradicionale, Visual Basic perdor nje menyre interaktive per nderimin e aplikimit. Ne shumicen e gjuheve, nqs ju beni nje gabim, ai shfaqet kur behet kompilimi i aplikimit, pastaj ju duhet ta gjeni dhe ta ndreqni gabimin, dhe te ribeni kompilimin e aplikimit. Visual Basic e interpreton kodin sapo ai futet.

Elementet e ambientit te Microsoft Visual Basic.

•

Ekzekutimi i Visual Basic Kur beni instalimin e Visual Basic, programi setup ju lejon juve te vendosni ikonat e Visual Basic ne nje grup programesh nen Windows ose krijon nje grup te ri programesh per Visual Basic Per te hapur Visual Basic ne Windows: 1. Kliko Start ne shiritin Taskbar 2. Zgjidh Programs, dhe pastaj Visual Basic 5.0. - ose Kliko Start ne shiritin Taskbar Select Programs. Perdor Windows Explorer per te gjetur skedarin e ekzekutueshem te Visual Basic (VB5.exe). 3. Double-click ikonen e Visual Basic. Kur ekzekutoni Visual Basic, ju shikoni nderfaqesin e ambientit te Visual Basic, si ne figuren 2.1 Figure 2.1 Ambjeti i punes ne Visual Basic

-7-


Mësimi i gjuhes Visual BASIC Shiriti i menuve Shiriti i butonave Dritarja e projektit Browser-i i objekteve Formsi

Dritarja Toolbox Dritarja e vetive

Ambienti i punes ne Microsoft Visual Basic 5.0 Ambienti i punes ne Visual Basic konsiston ne elementet e meposhtem.

Shiriti i menuve I cili përmban pjesën më të madhe të komandave që kontrollojnë ambientin e zhvillimit të aplikimit. Menutë dhe komandat funksionojnë në të njëjtën mënyrë si për çdo program të bazuar në Windows, pra ato mund të përdoren nëpërmjet tastierës ose mausit.

Shiriti i butonave që ndodhet poshtë shiritit të menuve dhe përbëhet nga një grup butonash. Shërben për ekzekutimin e një pjese të komandave ose kontrolleve të ambientit të programimit të Visual Basic në mënyrë më të shpejtë. Për të ekzekutuar një buton të shiritit të butonave klikohet ky buton me maus.

Menuja Shortcut Permban komandat me te perdorshme per nje objekt te caktuar. Per te hapur nje menu shortcut, afrojme mouse-in mbi objektin e caktuar dhe -8-


Mësimi i gjuhes Visual BASIC klikojme me butonin e djathte te mouse-it.

Dritarja Toolbox Elementët e komunikimit me një program shtohen në një program nëpërmjet dritares se kontrolleve ku çdo buton përfaqëson një kontroll. Kjo dritare afishohet përgjatë marzhit të majtë. Sapo vendosen ne grilje kontrollet bëhen objekte, ose elementë të programueshëm të ndërfaqësit të përdoruesit. Dritarja e kontrolleve përmban kontrolle që shërbejnë për të futur në ndërfaqësin e përdoruesit figura, etiketa, butona, dritare përmbledhëse, shirita të rëshqitjes, grilje, menu dhe forma gjeometrike. Këta elementë do të bëhen të dukshëm për përdoruesin e programit gjatë ekzekutimit të tij. Por dritarja e kontrolleve përmban dhe kontrolle të tjerë të cilët shërbejnë për të krijuar objekte që mund të jenë të padukshëm gjatë ekzekutimit, por që kryejnë veprime speciale. Këta mund të jenë objekte që manipulojnë të dhënat e bazave të të dhënave, realizojnë veprime me aplikime Windows dhe përcaktojnë kohëzgjatjen e ekzekutimit të një programi.

Dritarja e Projektit Programet e Visual Basic të përfunduar formohen nga shumë skedarë të lidhur së bashku ose të kompiluar. Për të lehtësuar kalimin nëpër këta komponentë kur punohet mbi një project, futet në ambientin e programimit një dritare Project. Kjo dritare përmban listën e gjithë skedarëve të përdorur në procesin e programimit dhe mundësinë e futjes në ta me anë të dy butonave specialë: View Form dhe View Code. Duke përdorur komandat e menusë File mund të shtohen, të hiqen dhe të ruhen skedarë të veçantë të një projekti. Skedari i projektit që përmban listën e gjithë skedarëve përbërës të një projekti të programimit quhet skedar i projektit Visual Basic(.vbp).

Dritarja e vetive Shërben për të modifikuar karakteristikat, ose vendosjen e vetive, të elementëve të ndërfaqësit të përdoruesit që ndodhen në një grilje. Pra vendosja e vetive eshtë karakteristikë e një nga objekteve të ndërfaqësit të përdoruesit. Vendosja e vetive bëhet nëpërmjet dritareve Properties gjatë krijimit të ndërfaqësit ose me anë të kodit të programit gjatë ndërtimit të programit. Dritarja Properties përmban dhe një dritare përmbledhëse të objekteve të ndërfaqësit të përdoruesit, me mundësinë e zgjedhjes së tyre. Ne mund të zgjedhim nje objekt dhe të bëjmë modifikimet e nevojshme në vetitë e këtij objekti.

Browser-i i objekteve Liston objektet e vlefshme per perdorim ne projektin tuaj dhe u jep nje -9-


Mësimi i gjuhes Visual BASIC menyre te shpejte per te naviguar neper kodin tuaj. Ju mund ta perdorni Browser-in per te hapur objektet ne Visual Basic dhe aplikime te tjera, per te pare se c’fare metodash dhe vetish jane te vlefshme per keto objekte.

Formset Në Visual Basic grilja është një dritare e modifikueshme që shërben për të realizuar nje ndërfaqës komunikimi të përdoruesit me programin që e quajme ndërfaqës të përdoruesit. Grilja mund të përmbaje menu, butona, dritare përmbledhësë të informacioneve ndihmëse etj. Fillimisht, me ekzekutimin e Visual Basic, afishohet një grilje standarte Form1. Përdoruesi mund ta përdorë këtë grilje, të ndryshojë dimensionet e saj, të vendosë në të elementë të ndryshëm duke realizuar kështu një ndërfaqës komunikimi me programin.

Nderfaqesit SDI ose MDI Ne Visual Basic jane te vlefshme dy lloje nderfaqesish: SDI (single document interface) ose MDI (multiple document interface) Me opsionin SDI, te gjitha dritaret jane te lira per te levisur ne cdo pozicion ne ekran,. Me opsionin MDI, Dritaret perfshihen ne nje dritare meme. Per te kaluar nga menyra SDI ne MDI 1. Zgjidh Options nga menuja Tools Shfaqet kutia e dialogut Options 2. Zgjidh tabin Advanced. 3. mbush ose zbardh kutine e kontrollit SDI Development Environment - ose Ekzekuto Visual Basic nga komanda Run me parametrin /sdi ose /mdi.

Aplikimi juaj i pare ne Visual Basic Krijimi i nje aplikimi ne Visual Basic eshte i thjeshte. Sa i thjeshte? Si pergjigje provoni dy aplikimet Pershendetje dhe firstapp qe vijojne me poshte.

Pershendetje, Visual Jane tre hapa gjate ndertimit te nje aplikimi ne Visual Basic 1. Krijimi i nderfaqesit. - 10 -


Mësimi i gjuhes Visual BASIC 2. Vendosja e vetive. 3. Shkrimi i kodit. Per te pare se si behet kjo, ndiqni procedurat e meposhtme, per te krijuar nje aplikim te thjeshte qe konsiston ne perdorimin e nje kutie teksti (text box) dhe te nje butoni komandash(command button), ne menyre qe kur te klikohet butoni i komandave, ne kutine e tekstit te shfaqet mesazhi “Pershendetje”

Krijimi i nderfaqesit. Formset perbejne themelin e krijimit te nje nderfaqesi te nje aplikimi. Formset mund te perdoren per te shtuar dritare dhe kuti dialogu ne aplikimin tuaj. Gjithashtu ato mund te sherbejne edhe si mbajtes elementesh apo kontrollesh te ndryshme per aplikimin tuaj, ose qe mund te mos jene pjese e dukshme e aplikimit tuaj. P.sh, nje forms mund te perdoret si mbajtes grafikesh te ndyshme qe keni ndermend te afishoni ne formse te tjera. Hapi i pare gjate ndertimit te nje nderfaqesi, eshte krijimi i formsit baze per nderfaqesin e aplikimit tuaj. Pastaj vendosen kontrollet me radhe ne forms. Per aplikimin e meposhtem, do te perdoren dy kontrolle nga Toolbox. Butoni i kontrollit: Text box Command button Per te vendosur nje kontroll nga Toolbox ne forms: 1. Klikohet butoni i kontrollit qe duam te vendosim - ne kete rast, text box. 2. Pozicionohet shenjuesi i mouse-it ne formsin tuaj. Shenjuesi behet kryq si ne figuren 2.3 Figure 2.3 Vendosja e text box, nga toolbox ne forms.

- 11 -


Mësimi i gjuhes Visual BASIC

3. Vendoset kryqi ne pozicionin qe do te jete cepi isiperm i majte i kontrollit 4. Rreshqitet kryqi derisa kontrolli te marre permasat e deshiruara. 5. Leshohet mouse-i Kontrolli shfaqet ne forms..

Ndryshimi i permasava, zhvendosja dhe kycja e kontrolleve. Per te ndyshuar permasat e nje kontrolli 1. Zgjidhni kontrollin te cilit doni t’i ndryshoni permasat, duke e klikuar ate me mouse 2. Poziciononi shenjuesin e mouse-it, ne njerin nga konturet e kontrollit, dhe e rreshqasim deri sa kontrolli te marre permasen e deshiruar. Rreshqitja e cepit te kontrollit, ndryshon permasat vertikalisht dhe horizontalisht sipas deshires. 3. Leshoni mouse-in. Per te zhvendosur nje kontroll. •

Perdorni mouse-in per te rreshqitur kontrollin ne nje pozicion te ri..

- 12 -


Mësimi i gjuhes Visual BASIC Per te kycur pozicionet e te gjitha kontrolleve: •

nga menuja Format, zgjidhni Lock Controls. - ose klikoni butonin Lock Controls Toggle nga toolbar

Kjo do t’ju kyci te gjitha kontrollet ne pozicionet e tyre korente, por vetem kontrollet ne formsin e zgjedhur. Kontrollet ne formset e tjera jane te lira. Edhe per te hequr kycjen ndiqet e njejta rruge. Figure 2.4 Nderfaqesi i aplikimit Pershendetje

- 13 -


MĂŤsimi i gjuhes Visual BASIC Vendosja e Vetive Hapi tjeter, eshte vendosja e vetive te objekteve qe keni krijuar. Dritarja e vetive (Figure 2.5) siguron nje menyre te lehte per te vendosur vetite per te gjitha objektet ne nje forms. per te hapur dritaren e vetive zgjidhni komanden Properties Window nga menuja View, klikoni butonin Properties Window ne toolbar, ose perdorni menune shortcut per kontrollin.

- 14 -


Mësimi i gjuhes Visual BASIC Figure 2.5 Dritarja e vetive

Dritarja e vetive, konsiston ne elementet e meposhtem: •

Kutia e objekteve - Afishon emrat e e objekteve per te cilat mund te vendosim vetite . Klikoni shigjeten ne te djathte te kutive se objekteve, per te afishuar listen e objekteve per formsin korent. • Tabi i renditjes - Jep mundesine per te listuar vetite ose sipas rendit alfabetik ose duke i grupuar ne forme hierarkike te ndara sipas kotegorive. •

Lista e vetive - Kolona e majte, afushon te gjitha vetive e objektit te zgjedhur. Ju mund te ndryshoni vlerat e vetive, duke perdorur kolonen e djathte. Per te vendosur vetite nga dritarja e vetive:

1. Afishoni dritaren e vetive sipas njeres nga menyrat e mesiperme, n.q.s ajo nuk eshte e afishuar 2. Nga lista e vetive, zgjidhni emrin e vetise. 3. Ne kolonen e djathte, shtypni ose zgjidhni vleren e vetise. Vetite e numerueshme, kane nje liste te percaktuar vlerash. Lista mund te afishohet duke klikuar shigjeten ne te djathte te kutise se vendosjes se vleres. Per shembullin “Pershendetje” do t’ju duhet te ndryshoni tre vlera vetishe. Per te gjithe te tjerat, do te ruajme vlerat qe kane.

Objekti

Vetia

- 15 -

Vlera


MĂŤsimi i gjuhes Visual BASIC Form Text box Command button

Caption Text Caption

Pershendetje! (Bosh) OK

Shkrimi i kodit Kodet shkruhen ne dritaren e editorit te kodit. Kodi perbehet nga instruksine te gjuhes, konstante dhe deklarime. Duke perdorur dritaren e edotorit te kodit, mund te shfaqen dhe modifikohen kode ekzistuese. Per te hapur dritaren e kodit: •

Double-klikoni formsin ose kontrollin per te cilin doni te shkruani kodin. - ose Nga dritarja e projektit, zgjidhni emrin e nje formsi ose moduli, dhe klikoni butonin View Code.

Figura 2.6 shfaq dritaren e editorit te kodit, qe shfaqet kur ju double-klikoni kontollin Command button Figure 2.6 Dritarja e Editorit te Kodit

- 16 -


MĂŤsimi i gjuhes Visual BASIC

Ju mund te afishoni te gjitha procedurat ne te njejten dritare, ose te afishoni vetem nje procedure ne nje moment te caktuar. Per te afishuar te gjitha procedurat ne te njejten dritare: 1. Nga menuja Tools , zgjidhni kutine e dialogut Options. 2. Ne tabin Editor, Zgjidhni kutine e kontrollit ne te majte te Default to Full Module View. Kutia e kontrollit ne te majte te Procedure Separator shton ose heq nje rresht ndares ndermjet procedurave. - ose Klikoni butonin Full Module View ne cepin e majte poshte dritares se kodit.

- 17 -


Mësimi i gjuhes Visual BASIC Per te afishuar nje procedure ne nje moment te caktuar ne dritaren e kodit: 1. Nga menuja Tools , zgjidhni kutine e dialogut Options. 2. Ne tabin Editor, zbardhni kutine e kontrollit ne te majte te Default to Full Module View. - ose Klikoni butonin Procedure View ne cepin e majte poshte dritares se kodit. Dritarja e kodit permban elementet e meposhtem:: •

Lista e objekteve - afishon emrin e objektit te zgjedhur.Klikoni shigjeten ne te djathte te ketij emri, per te shfaqur emrat e te gjitha objekteve te lidhura me formsin korent. • Lista e procedurave -Liston procedurat ose ngjarjet per nje objekt. Kutia afishon emrin e procedures se zgjedhur. Zgjidhni shigjeten ne te djathte per te afishuar te gjitha procedurat per objektin.

Krijimi i procedurave ngjarje. Kodi ne nje aplikim Visual Basic, eshte i ndare ne blloqe te vogla qe quhen procedura. Nje procedure ngjarje, si ato qe do te krijohen me poshte, permban kode qe do te ekzekutohen kur ndodh ngjarja.(si p.sh kur perdoruesi klikon nje buton) Nje procedure ngjarje, kombinon emrin e kontrollit(specifikuar ne vetine name), nje underscore(_) dhe emri i ngjarjes. Per shembull, N.q.s doni qe procedura te ekzekutohet kur perdoruesi te klikoje butonin e quajtur Command1, perdorni proceduren Command1_Click Per te krijuar nje procedure ngjarje: 1. Ne listen e objekteve, zgjidhni emrin e objektit ne formsin aktiv. (Formsi aktiv, eshte formsi qe ka fokus) Per kete shembull zgjidhni butonin e komandave, Command1. 2. Ne listen e procedurave, Zgjidhni emrin e nje ngjarjeje per objektin aktiv. Ketu eshte e zgjedhur procedura click, sepse eshte procedura default-e per nje kontroll Buton komandash. 3. Shtypni kodin e meposhtem ndermjet Sub dhe End Sub: Text1.Text = "Pershendetje!"

Procedura ngjarje do te duket si me poshte: Private Sub Command1_Click () Text1.Text = "Pershendetje!" End Sub

Shihet qe kodi ne kete shembull nuk ben asgje tjeter vecse ndryshon vetine

- 18 -


Mësimi i gjuhes Visual BASIC Text te kontrollit. Sintaksa e ketij shembulli sic shihet ka trajten objekt.veti Ju mund te perdorni kete sintakse, per te ndryshuar vleren e nje vetie te nje objekti ose formsi ne pergjigje te ndodhjes se ndonje ngjarjeje gjate ekzekutimit te aplikimit.

Ekzekutimi i Aplikimit Per te ekzekutuar aplikimin, zgjidhni Start nga menuja Run, ose klikoni butonin start ne toolbar, ose shtypni F5. Klikoni butonin qe keni krijuar ne forms, dhe do te shihni qe ne kutine e tekstit do te shfaqet mesazhi “Pershendetje!”.

Shembulli i aplikimit Firstapp Aplikimi Firstapp demostron se si mund te perdoren objektet kontrolli data dhe kontrolli grid per te afishuar nje tabele informacioni nga nje baze te dhenash. Visual Basic ofron lehtesira per te kapur informacionin e bazes ne aplikimin tuaj. Kontrolli data jep mundesine per te naviguar neper database, duke sinkronizuar shfaqjen e rekordeve ne grid control me pozicionin e shenjuesit te rekordeve(recordset). Aplikimi konsiston ne perdorimin e nje kontrolli data, nje kontrolli Grid (DBGrid), nje liste (List box), dhe dy butona komandash. Grida afishon nje tabele informacioni rreth librave te programimit, duke e marre informacionin ne bazen e te dhenave biblio.mdb.Nqs perdoruesi zgjedh nje element ne grid duke klikuar brenda grides ose duke perdorur butonat e navigimit ne data control, titulli i librit te zgjedhur do te afishohet ne data control. Perdoruesi gjithashtu mund te shtoje elemente ne liste (list box), duke bere double-click ne elementin perkates ne grid. Per te shtuar elemente ne list box, perdoret metoda Additem. (Nje metode eshte nje funksion ne Visual Basic qe vepron ne nje objekt te vecante, ne kete rast ne nje objekt ListBox). Sintaksa per specifikimin e nje metode (objekt.metode) eshte e ngjashme me sintaksen e perdorur per vendosjen e nje vetie (objekt.veti). Metoda Clear eshte perdorur per fshire te gjithe elementet nga lista.

Krijimi i nje projekti Krijimi i nje projekti fillon duke zgjedhur New Project nga menuja File, dhe pastaj, duke zgjedhur Standard EXE ne kutine e dialogut New Project. (Kur haper Visual Basic, kutia e dialogut New Project, shfaqet.) Visual Basic krijon nje projekt te ri dhe afishon nje forms te ri. Per te ndertuar nderfaqesin, perdorni nje kontroll data, nje kontroll DBGrid, nje kontroll List box, dhe dy kontrolle command buttons. Kontrolli DBGrid, nuk shfaqet normalisht ne toolbox, keshtu qe keni nevoje ta shtoni ate. Per te shtuar nje kontroll ne toolbox: 1. Zgjidhni Components nga menuja shorcut e toolbox. - 19 -


MĂŤsimi i gjuhes Visual BASIC Kutia e dialogut Components do te shfaqet. 2. Gjeni kontrollin Apex Data Bound Grid (DBGrid) ne listen Controls dhe klikoni kutine ne te majte te tij. 3. Klikoni butonin OK. Ikona e kontrollit DBGrid do te shfaqet ne toolbox. Butonat kontrolli Data kontrolli DBGrid kontrolli List box kontrolli Command Perdorni toolbox, per te vizatuar nje kontroll data, kontroll DBGrid, kontroll list box dhe dy kontrolle command button si ne Figuren 2.7.

- 20 -


MĂŤsimi i gjuhes Visual BASIC Figure 2.7 Formsi per aplikimin shembull Firstapp

Vendosja e vetive Ne dritaren e vetive, vendosni vetite per objektet e perdorura sipas tabeles se meposhtme. Perdorni vlerat default-e per te gjitha vetite e tjera.

Objekti Form Data1 DBGrid1 Command1 Command2

Vetia Caption DatabaseName RecordSource DataSource Caption Caption

Vlera Librat path \Biblio.mdb All Titles Data1 Boshatis Dalje

Vetia DatabaseName e kontrollit data duhet te permbaje rrugekalimin aktual te bazes se te dhenave. Ne menyre implicite, baza Biblio.mdb instalohet ne

- 21 -


MĂŤsimi i gjuhes Visual BASIC te njejten direktori me Visual Basic. Kur ju zgjidhni vetine DatabaseName ne dritaren e vetive, ju mund te klikoni butonin ne te djathte te vetive per te hapur kutine standarte te dialogut te hapjes se skedareve, per te kerkuar per skedarin. Sapo te vendoset vetia DatabaseName , vetia RecordSource do te permbaje nje liste me emrat e tabelave te bazes se zgjedhur. Vendosja e vetise DataSource per kontrollin DBGrid me vlere Data1 lidh automatikisht griden me kontrollin data

Shkrimi i kodit te ngjarjeve. Gjithe kodi i aplikimit, perfshihet ne procedurat ngjarje Command1_Click, Command2_Click, Data1_Reposition, dhe DBGrid1_DblClick. Beni Doubleclick ne forms ose ne nje kontroll per te afishuar dritaren e kodit dhe pastaj, shtypni kodin per sejcilen procedure ngjarje. Shtoni kete kod tek procedura ngjarje Command1_Click, per te boshatisur kontrollin list box kur perdoruesi klikon butonin Command1 Private Sub Command1_Click () List1.Clear

' Boshatis kontrollin list box.

End Sub

Ne instruksionin e mesiperm eshte perdorur medoda clear e objektit list1. Metoda Clear fshin permbajtjen e nje kontrolli list box. Shtoni kete kod tek procedura ngjarje Command2_click, per te bere mbylljen e formsit dhe shkarkimin e tij nga memorja. Private Sub Command2_Click () Unload Form1 End

' fundi i aplikimit.

End Sub

Ne proceduren e mesiperme, instruksioni i pare ben shkarkimin e formsit nga memorja, pra shkaktohet ngjarja Unload e formsit form1. Nqs ne proceduren ngjarje form1_Unload do te kishte ndonje instruksion, ne fillim do te kryheshin instruksionet, pastaj mbyllja e formsit. Instruksioni i dyte therret funksionin End, qe perfundon aplikimin. Shtoni kete kod tek procedura ngjarje Data1_Reposition, per te modifikuar vleren e vetise Caption sa here qe zgjidhet nje rekord.

Private Sub Data1_Reposition () Data1.Caption = Data1.Recordset("Title") End Sub

Ne instruksionin e mesiperm, vlera ne te djathte(permbajtja e fushes Title ne tabelen e lidhur me objektin Data1), vendosen ne vetine majtas(Vetia

- 22 -


Mësimi i gjuhes Visual BASIC Caption e objektit Data1). Shtoni kete kod tek procedura ngjarje DBGrid_DblClick, per te shtuar nje element ne kontrollin list box kur berdoruesi ben double-click ne nje rresht te zgjedhur. Private Sub DBGrid1_DblClick () List1.AddItem Data1.Recordset("Title") End Sub

Ne instruksionin e mesiperm, zbatohet metoda Additem e list box-it(List1). Teksti qe shtohet ne list box, eshte ai qe permbahet ne argumentin e metodes, ne kete rast, vlera e fushes Title ne tabelen e lidhur me objektin Data1. Kalimi i nje vlere tek nje argument eshte i ngjashem me vendosjen e vleres se nje vetie me ndryshimin qe ne rastin e vetise perdoret shenja e barazimit.

Ruajtja e projektit. Gjate ndertimit te aplikimit, puna perfundon duke zgjedhur komanden Save Project nga menuja File. Visual Basic do t’ju pyese juve per ruajtjen e formsit dhe pastaj te projektit. Nje emer i mundshem mund te jete “Lista e librave te shitur”. Edhe Windows 95 edhe Windows NT ju lejojne qe te perdorni emra deri ne 255 karaktere te gjate dhe emri i skedarit mund te permbaje edhe hapesira. Versione te vjetra te Windows lejojne emra vetem deri me tete karaktere, me tre karaktere prapashtese dhe pa hapesira.

- 23 -


MĂŤsimi i gjuhes Visual BASIC KAPITULLI 3. Formset, Kontrollet, dhe Menute Hapi i pare per krijimin e nje aplikimi me Visual Basic, eshte ndertimi i nderfaqesit, pjesa vizuale e aplikimit, me te cilen do te komunikoje perdoruesi. Formset dhe kontrollet jane mjetet baze qe perdoren per krijimin e nderfaqesit. Ato jane objektet me te cilat ju do te punoni per te ndertuar aplikimin. Formset jane objektet qe ekspozojne vetite qe percaktojne aparencen e objekteve, metodat qe percaktojne sjelljen e tyre, dhe ngjarjet qe percaktojne komunikimin me perdoruesin. Kontrollet jane objektet qe prefshihen brenda formseve. Cdo tip kontrolli ka vetite e veta, metodat e veta dhe ngjarjet e veta. Disa kontrolle mund te perdoren per futje dhe afishim teksti, disa te tjera per tu lidhur me aplikime te tjera dhe per te punuar me te dhena njesoj sikur aplikimi i larget te jete pjese e aplikimit tuaj. Ky kapitull permban konceptet baze te punes me formset dhe kontrollet si dhe vetite, metodat dhe ngjarjet e lidhura me to.

Shembull Controls.vbp Shembujt e ketij kapitulli ndodhen ne aplikimin Controls.vbp. Nqs ju keni instaluar edhe shembujt e Visual Basic, ju do ti gjeni ato ne nendirektorine \Controls te direktorise se shembujve te Visual Basic(p.sh \Vb\Samples\ \PGuide\Controls)

Kuptimi i Vetive , Metodave dhe Ngjarjeve Formset dhe kontrollet ne Visual Basic jane objekte qe ekspozojne vetite, metodat dhe ngjarjet e tyre. Vetite mund te mendohen si atribute te objektit, metodat si aksione dhe ngjarjet si pergjigje te tyre. Imagjinoni nje objekt, si p.sh nje bolone femijesh. Edhe ajo ka gjithashtu vetite, metodat dhe ngjarjet e saj. Vetite e balones perfshijne atributet e saj qe duken si pesha, diametri apo ngjyrat. Veti te tjera pershkruajne gjendjen e saj(e fryre apo e pafryre), ose atribute qe nuk duken si p.sh “mosha� e balones. Nje balone ka gjithashtu metoda ose e thene ndryshej mund te kryeje aksione te ndryshme. Ajo ka metoden e fryrjes(aksioni i mbushjes se saj me helium), metoden e shfryrjes etj. Balonat gjithashtu kane pergjigje te percaktuara ndaj ngjarjeve te jashtme. - 24 -


Mësimi i gjuhes Visual BASIC P.sh, nje balone i pergjigjet ngjarjes se shpimit te saj, duke u shfryre, ose ngjarjes se leshimit duke u ngjitur neper ajer. Figure 3.1 Objektet kane veti, u pergjigjen ngjarjeve, dhe kryejne metoda.

Balone.Lartesi Balone.Diameter Balone.ngjyre

Balone.Shfryj Balone.Bejzhurme “Bang” Balone_Shpim()

N.q.s mundeni te programoni nje balone, kodi ne Visual Basic mund te ishte si me poshte. Per te vendosur vetite e balones: Balone.Ngjyre = Kuqe Balone.Diameter = 10 Balone.Fryre = Vertete

Shihet se sintaksa ka trajten - Objekti (Balona) i ndjekur nga vetia (.Ngjyre), i ndjekur nga dhenia e vleres (Kuqe). Ju mund te ndyshoni ngjyren e balones nga kodi, duke perseritur kete instruksion dhe vendosur nje vlere tjeter. Vetite mund te vendosen gjithashtu edhe ne dritaren e vetive, gjate ndertimit te nderfaqesit. Metodat e balones mund te zbatoheshin si me poshte: Balone.fryj Balone.shfryj Balone.ngjit 5

Sintaksa eshte e ngjashme me vendosjen e vetive - Objekti (nje emer) ndjekur nga metoda (nje folje). Ne shembullin e trete, ka nje element me teper, qe quhet argument, qe percakton distancen e ngjitjes. Disa metoda

- 25 -


Mësimi i gjuhes Visual BASIC kane nje ose disa argumenta, per te pershkruar me mire aksionin qe do te kryhet. Balona mund t’i pergjigjet nje ngjarjeje si me poshte: Sub Balone _Shpim() Balone.shfryej Balone.Bejzhurme "Bang" Balone.fryre = fallso Balone.Diameter = 1 End Sub

Ne kete rast, kodi pershkruan sjelljen e balones kur ndodh ngjarja e shpimit te balones: provokohet metoda Shfryej, pastaj metoda BejZhurme me argumentin “Bang”(Tipi i zhurmes qe do te behet). Kur balona nuk eshte me e fryre, vetia Fryre belet fallso, dhe vetise Diameter i jepet nje vlere e re. Tani per tani eshte e qarte qe ju nuk mund te programoni nje balone, por le te sherbejne ilustrimet e mesiperme, si nje shembull i programimit ne Visual Basic te nje formsi ose kontrolli. Si programist, ju jeni ne kontroll. Ju vendosni se cilat veti duhet te ndryshohen, cilat metoda duhet te provokohen, si duhet te sillen kontrollet e perdorura ndaj ndodhjes se ngjarjeve.

Vizatimi i Formsit. Formset jane mjetet baze per ndertimin e nje aplikimi ne Visual Basic, dritaret aktuale me te cilat komunikon perdoruesi kur ekzekuton aplikimin. Formset kane vetite e tyre, ngjarjet dhe metodat me te cilat ju mund te kontrolloni aparencen dhe sjelljen e tyre.

- 26 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.2 Formset dhe kontrollet kane vetite e tyre, ngjarjet, dhe metodat

Vetia Top e butonit Caption i Butonit Buton_click

Vetia Left e butonit

Buton.Caption=“Ok � Buton.Move 0,0

Hapi i pare ne vizatimin e nje formsi eshte vendosja e vetive te tij. Ato mund te vendosen gjate ndertimit te formsit(Design time) ne dritaren e vetive ose gjate shkrimit te kodit(ne run time).

Vendosja e vetive te formsit. Shumica e vetive te formsit kane te bejne me aparencen e saj te jashtme. Vetia Caption, percakton tekstin qe shfaqet ne shiritin e titullit te formsit, Vetia Icon vendos ikonen qe afishohet kur formsi minimizohet. Vetite - 27 -


Mësimi i gjuhes Visual BASIC MaxButton dhe MinButton percaktojne nese formsi mund te jete i maksimizuar ose i minimizuar. Vetite Height dhe Width percaktojen dimensionet fillestare te formsit. Vetite Left dhe Top percaktojne pozicionin e formsit ne relacion me cepin e siperm te majte te ekranit. Vetia WindowState mund te vendoset per te percaktuar gjendjen fillestare te formsit: e maksimizuar, e minimizuar apo normale. Vetia Name vendos emrin me te cilin mund ti referoheni formsit ne kod. Ne menyre implicite, kur nje forms shtohet ne projekt, emri i tij do te jete Form1, Form2, dhe keshtu me rradhe. Rekomandohet qe formsit t’i vihet nje emer domethenes, psh “frmHapje” per nje forms qe hap aplikimin. Menyra me e mire per tu familjarizuar me vetite e formseve eshte eksperimentimi i tyre. Ndryshoni disa nga vetite e formsit ne dritaren e vetive (Figura 3.3), dhe pastaj ekzekutoni aplikimin per te pare efektin e tyre. Ju mund te merrni informacion per sejcilen veti, duke e zgjedhur ate dhe duke shtypur tasten F1. Figure 3.3 Dritarja e Vetive.

Ngjarjet dhe Metodat e Formsit. Edhe formset si objekte, kane metodat e tyre, dhe sillen ndaj ngjarjeve. Ngjarja Resize shkaktohet kur ridimensionohet nje forms, qofte nga veprime te perdoruesit, qofte nga kodi. Kjo ju lejon juve te kryeni aksione te tilla si levizja ose ridimensionimi i kontrolleve ne forms, kur dimensionet e formsit kane ndryshuar. Ngjarja Activate shkaktohet kur nje forms behet forms aktiv; Ngjarja Deactivate ndodh kur nje forms ose aplikim tjeter behet aktiv. Keto ngjarje jane te pershtatshme per te inicializuar ose finalizuar sjelljen e nje formsi.

- 28 -


Mësimi i gjuhes Visual BASIC P.sh, ne ngjarjen Activate, ju mund te shkruni kodin per te ndricuar tekstin ne nje kuti teksti te vecante; ne ngjarjen Deactivate, ju mund te ruani ndryshimet ne nje skedar ose baze te dhenash. Per te bere nje forms vizibel, duhet provokuar metoda Form2.Show

Provokimi i metodes Show ka te njejtin efekt si vendosja e vetise Visible te formsit, True

Kryerja e veprimeve nepermjet klikimit te butonave Menyra me e lehte per te lejuar perdoruesin per te komunikuar me nje aplikim eshte duke parashikuar butona per tu klikuar. Ju mund te perdorni kontrollin command button, ose ju mund te krijoni butonat tuaj personale, duke perdorur nje kontroll Image qe permban nje grafik, si p.sh nje ikone.

Perdorimi i kontrolleve te Butonave te komandave Shumica e aplikimeve Visual Basic, perdorin butona komandash per te lejuar perdoruesin per te thjeshtesuar perdorimin e aplikimit. Kur perdoruesi klikon butonin, provokohet ngjarja Click, per te kryer veprimet e parashikuara nga programisti. Ka disa menyra per zgjedhjen e nje butoni gjate ekzekutimit te aplikimit: •

Klikoni butonin me mouse.. • Jepni butonit fokus, duke shtypur tasten TAB dhe pastaj zgjidhni butonin duke shtypur tasten SPACEBAR ose ENTER (Shikoni "Kuptimi i Fokusit" me vone ne kete kapitull.) • Shtypni tasten e lidhur me butonin (ALT+ germen e nenvizuar). • Vendosni vleren e vetise Value te butonit, True ne kod. cmdClose.Value = True •

Provokoni ngjarjen Click te butonit: cmdClose_Click

Te gjitha keto veprime shkaktojne qe te provokohet ngjarja Click e butonit te komandave.

Aplikimi Test Butonash. Ju perdorni vetine Caption per te afishuar nje tekst ne buton, qe i tregon perdoruesit se cfare ben butoni. Ne figuren 3.4, shembulli Test Butonash permban nje buton komandash me vetine Caption "Change Signal” (Per nje version te ketij shembulli shikoni Button.frm ne aplikimin Controls.vbp.)

- 29 -


Mësimi i gjuhes Visual BASIC Shenojme qe ‘S’ eshte tasta e lidhur me kete buton, e nenvizuar si ne aplikimet e tjera Windows. Futja e nje karakteri ampersand (&) ne tekstin e vetise Caption, ben qe karakteri qe e ndjek te jete taste e lishur e ketij butoni. (per shembull, Change &Signal).

- 30 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.4 Buton komade me nje Caption.

Kontrollet qe perdoren per afishim dhe futje teksti. Kontrollet label dhe text box perdoren per te afishuar ose per te futur tekst. Perdorni kontrollin label kur doni qe aplikimi juaj te afishoje tekst ne nje forms, dhe kontrollin text box(kuti teksti) kur doni te lejoni perdoruesin te fuse tekst ne kete kontroll. Kontrollet Label permbajne tekst qe mund te jete vetem i lexueshem, nderkohe qe kontrollet text box permbajne tekst qe mund te modifikohet.

•

Perdorimi i etiketave per te afishuar tekst Nje kontroll etikete, afishon tekst, qe perdoruesi nuk mund ta ndryshoje. Etiketat mund te perdoren per te identifikuar kontrollet e tjera, si kutite e teksteve, listat etj qe nuk e kane vetine Caption. Teksti i afishuar ne etiketa kontrollohet nga vetia Caption, qe mund te vendoset gjate ndertimit te nderfaqesit ose edhe ne run time. Vetia BorderStyle e etiketave, e cila mund te vendoset gjate ndertimit te nderfaqesit, ka te beje me konturin e etiketave. Gjithashtu mund te perdoren vetite BackColor, BackStyle, ForeColor, dhe Font qe kane te bejne me aparencen e etiketave.

Dimensionimi i etiketave. Per etiketat mund te specifikohet qe gjate ndertimit te nderfaqesit, qe teksti qe ato afishojne te jete single-line. Mirepo ne qofte se na duhet te fusim nje tekst me te gjate se gjatesia e parashikuar per etiketen, si duhet te veprojme? Etiketat kane dy veti qe ju ndihmojne per ti ridimensionuar ato ne varesi te gjatesise te tekstit qe afishojne: AutoSize dhe WordWrap. Vetia AutoSize percakton nese etiketa do te ridimensionohet automatikisht

- 31 -


MĂŤsimi i gjuhes Visual BASIC kur ndryshon gjatesia e tekstit. Vendosni vleren e kesaj vetie, True, kur deshironi nje gje te tille. Figure 3.5 Shembull i vetise AutoSize

Vetia WordWrap shkakton ndryshimin automatit te lartesise se etiketes, duke mbajtur te njejten gjatesi, si ne figuren 3.6. Per nje version te ketij shembulli shikoni formsin Wordwrap.frm ne aplikimin Controls.vbp

- 32 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.6 Shembull i vetise WordWrap

Shenim Ne qofte se ekzekutoni shembullin AutoSize nga Controls.vbp, per te punuar shmbulli WordWrap, do t’ju duhet qe te zgjidhni te dy butonat e kontrollit, sepse per te bere te efektshme vetine WordWrap te etiketes, vetia Autosize duhet te jete vendosur True. Gjatesia e etiketes do te rritet vetem nqs gjatesia e nje fjale te vetme e kalon gjatesine e etiketes.

•

Puna me kutite e tekstit Kutite e tekstit jane kontrolle qe mund te perdoren qofte per te futur tekst nga perdoruesi, qofte per afishim teksti. Ato nuk duhet te perdoren per te afishuar tekst, kur ju deshironi qe teksti i afishuar te mos modifikohet nga perdoruesi. Teksti i afishuar ne nje kuti teksti, kontrollohet nga vetia Text. Kjo veti mund te vendoset ne dritaren e vitive, ne run time(duke i dhene vleren ne kod) ose edhe nga perdoruesi gjate perdorimit te aplikimit. Permbajtja e tekstit te nje kutie teksti, mund te konsultohet duke lexuar vetine Text.

Multiple-Line Text Boxes and Word Wrap

- 33 -


MĂŤsimi i gjuhes Visual BASIC Ne menyre implicite, nje kuti teksti afishon nje rresht te vetem teksti dhe nuk ka ashensore(Scrool bar). Nqs se gjatesi e tekstit eshte me e madhe se gjatesia e kutise se tekstit, atehere vetem nje pjese e tekstit do te afishohet. Pamja dhe sjellja e nje kutie teksti mund te ndryshohet duke vendosur dy veti MultiLine dhe ScrollBars, te cilat mund te vendosen vetem ne dritaren e vetive Shenim Vetia ScrollBars nuk duhet ngaterruar me kontrollet scrool bar, te cilat nuk mund te lidhen me kontrollin kuti teksti, dhe kane vetite e tyre personale. Vendosja e vetise MultiLine True lejon nje kuti teksti te pranoje ose afishoje me shume se nje rresht. Nje kuti teksti me vetine MultiLine, e rregullon tekstin automatikisht sado i gjate qofte ai(kujtoni funksionin e word wrap ne aplikimet e trajtimit te tekstit), nqs nuk eshte vendosur ashensor horizontal. Nqs vendoset vetia multiline, perdoruesi nuk ka nevoje te shtypi ENTER per te kaluar ne rresht tjeter. Nderprerjet e rreshtit nuk mund te futen ne dritaren e vetive. Brenda nje procedure, ju mund te krijoni nje nderprerje rreshti(Line break), duke futur karakteret ANSI 13 dhe 10. Ju mund te perdorni konstanten e Visual Basic vbCrLf, per realizuar kete (kombinimi carriage return/linefeed). Per shembull, ngjarjet e meposhtme fusin dy rreshta teksti ne nje kuti teksti multi-line. Sub Form_Load () Text1.Text = "Ketu jane dy rreshta" & vbCrLf & "ne nje kuti teksti" End Sub

Puna me tekstin ne nje Kuti teksti. Ju mund te kontrolloni pozicionin e kursorit dhe zgjedhjen e tekstit ne nje kuti teksti me vetite SelStart, SelLength dhe SelText. Keto veti mund te vendosen vetem me kod(ne dritaren e vetive jane te pavlefshme). Kur nje kuti teksti merr fokus, kursori pozicionohet te te majte te tekstit ekzistues. Ai mund te zhvendoset nga perdoruesi me tastiere ose me mouse. N.q.s kutia e tekstit e humbet dhe pastaj e rimerr fokusin, kursori do te ripozicionohet ne pozicionin qe ishte para se te humbiste fokusi. Ka rste si ne aplikimet e trajtimit te teksteve qe perdoruesi do qe, pasi fokusohemi ne nje pozicion te caktuar, karakteret e shtypura te shtohen pas tekstit ekzistues, ndersa ne aplikimet e futjes se te dhenave, perdoruesi do qe karakteret e shtypura pas fokusimit te zevendesojne tekstin ekzistues. Keto probleme zgjidhen me ndihmen e vetive SelStart dhe SelLength Vetia SelStart eshte nje numer qe tregon pozicionin e kursorit brenda tekstit. Nqs kjo veti ka per vlere 0, kursori vendoset ne te majte te tekstit. Nqs vetia SelStart ka nje vlere te barabarte ose me te madhe se gjatesia e tekstit,

- 34 -


MĂŤsimi i gjuhes Visual BASIC kurosri do te pozicionohet pas karakterit te fundit, si ne figuren 3.7. Per nje version te ketij shembulli, shikoni formsin Text.frm ne aplikimin Controls.vbp Figure 3.7 Shembull i pozicionimit te kursorit

Vetia SelLength eshte nje vlere numerike, qe percakton gjeresine e kursorit. Nqs kjo veti ka per vlere me te madhe se 0, atehere karakteret zgjidhen dhe ndricohen duke filluar nga pozicioni i kursorit e djathtas. Ne Figuren 3.8 shihet situata e zgjedhjes se tekstit

- 35 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.8 Shembull i zgjedhjes se tekstit

Nqs perdoruesi shtyp ndonje karakter pas zgjedhjes se tekstit, teksti i zgjedhur do te zevendesohet. Ne disa raste, mund te deshironi qe te zevendesoni nje tekst te zgjedhur me nje tekst te ri, duke perdorur komanden Paste. Vetia Seltext eshte nje vlere string(varg karakteresh) qe mund te perdoret gjate programimit, per te zevendesuar tekstin e zgjedhur. Nqs nuk ka tekst te zgjedhur, atehere vetia SelText do te fuse tekstin ne pozicionin e kursorit. Kontrollet qe paraqesin mundesi zgjedhjeje per perdoruesin.

Shumica e aplikimeve, kane nevoje te paraqesin mundesi zgjedhjeje per perdoruesin, duke variuar nga nje opsion i thjeshte Po/Jo, deri ne opsione qe paraqesin lista te gjata qe permbajne me qindra mundesi zgjedhjeje. Visual Basic Ka nje sere kontrollesh standarte qe perdoren per te paraqitur mundesi zgjedhjeje per perdoruesin . Tabela e meposhtme paraqet nje permbledhje te ketyre kontrolleve. Nje numer i vogel zgjedhjesh, nga te cilat perdoruesi mund te zgjedhi nje ose disa prej tyre. Nje numer i vogel zgjedhjesh, nga te cilat perdoruesi mund te zgjedhi vetem njeren(Perdorni Frame-et nqs doni te beni grupime shtese) Nje liste e gjate, nga e cila perdoruesi mund te zgjedhe. Nje liste e komprimuar, me nje kuti ku mund te futen te - 36 -

Kutite e kontrollit (check box) Butonat opsionale(option button) Listat(list box) listat e


MĂŤsimi i gjuhes Visual BASIC dhena, nga e cila perdoruesi mund te zgjedhe ose te shtype zgjedhjen. Kutite e kontrollit, butonat opsionale, komprimuara(Kombot), jane shtjelluar me poshte.

listat

komprimuara(com bo box) dhe

listat

e

•

Zgjedhja e opsioneve individuale me ndihmen e kutive te kontrollit. Nje kuti kontrolli, tregon nese plotesohet ose jo nje kusht. Kutite e kontrollit mund te perdoren ne nje aplikim per tu dhene perdoruesve opsionet Po/Jo ose E vertete/Fallso. Meqenese kutite e kontrollit jane te pavarura nga njera tjetra, perdoruesi mund te zgjedhe disa prej tyre ne te njejten kohe. Psh, ne shembullin e figures 3.9, jane zgjedhur kutite e kontrollit bold dhe Italic. Figure 3.9 Kutite e kontrollit.

Nqs eshte e zgjedhur, vetia Value ka vleren True

Aplikim me Kuti kontrolli. Shembulli me kuti kontrolli, perdor nje kuti kontrolli per te percaktuar nese nje tekst afishohet i pjerret(italic) apo jo. Shikoni shembullin e formsit Check.frm ne aplikimin Controls.vbp Aplikimi ka nje kuti teksti, nje etikete, nje buton komande dhe dy kuti kontrolli si ne figuren 3.10. Figure 3.10 Shembulli me kuti kontrolli

- 37 -


MĂŤsimi i gjuhes Visual BASIC

Tabela e meposhtme, liston vetite e vendosura per objektet e perdorura ne aplikim.

Objekti Formsi Kutia e tekstit Kutia e kontrollit e pare Kutia e kontrollit e dyte Butoni i Komandave

Vetia Name Caption Name Text Name Caption Name Caption Name Caption

Vlera frmCheck Check Box Example txtDisplay Some sample text chkBold &Bold chkItalic &Italic cmdClose &Close

Kur zgjidhni Bold ose Italic, vetia Value e kutise se kontrollit merr vlere 1. Nqs eshte e pazgjedhur, vetia Value ka vlere 0. Vlera implicite eshte 0, keshtu qe kutia e kontrollit kur afishohet ne fillim eshte e pazgjedhur. Mund te perdoren konstantet vbChecked dhe vbUnchecked per te paraqitur vlerat 1 dhe 0.

Ngjarjet ne aplikimin me kuti kontrolli Ngjarja Click per kutine e kontrollit, ndodh sapo klikoni kutine. Kjo ngjarje teston nese kutia e kontrollit eshte e zgjedhur( nqs vlera e tij eshte Value = vbChecked). Nqs se po, atehere teksti kthehet ne bold ose Italic, duke vendosur vetine bold ose Italic te objektit Font, qe kthen vetia Font e kutise se tekstit. Private Sub chkBold_Click () If ChkBold.Value = vbChecked Then txtDisplay.Font.Bold = True

- 38 -

' nqs e zgjedhur.


MĂŤsimi i gjuhes Visual BASIC Else

' nqs jo e zgjedhur. txtDisplay.Font.Bold = False

End If End Sub Private Sub chkItalic_Click () If ChkItalic.Value = vbChecked Then ' nqs e zgjedhur. txtDisplay.Font.Italic = True Else

' nqs jo e zgjedhur. txtDisplay.Font.Italic = False

End If End Sub

•

Butonat opsionale. Butonat opsionale paraqesin nje numer dy apo me shume opsionesh para perdoruesit. Ndryshej nga kutite e kontrollit, butonat opsionale duhet te jene gjithmone te grupuar. Zgjedhja e njerit, automatikisht pastron gjithe butonat e tjere te grupit. Percaktimi i nje grupi butonash opsionale, i thote perdoruesit, "Ke disa mundesi zgjedhjeje, nga te cilat mund te zgjedhesh vetem nje ." Per shembull, ne grupin e butonave opsionale ne Figuren 3.11, perdoruesi mund te zgjedhe nje nga tre butonat. Figure 3.11 Zgjedhja e nje butoni opsional.

Krijimi i nje grupi butonash opsionale.

- 39 -


MĂŤsimi i gjuhes Visual BASIC Te gjithe butonat opsionale te vendosura direkt ne nje forms, formojne nje grup. Nqs doni te formoni disa grupe butonash, atehere vendosni ata ne nje kontroll Frame ose Picture box. Te gjithe butonat brenda nje frame ose picture box, formojne nje grup te vecante. Kur krijoni nje grup te vecante ne kete menyre, gjithmone ndertoni ne fillim kontrollin frame ose picture box, dhe pastaj vendosni butonat obsionale ne krye te tij. Figura 3.12 afishon nje forms me dy grupe butonash opsionale. Figure 3.12 Grupe butonash opsionale

Grup butonash opsionale

Grup butonash opsionale ne nje Frame

Per te grupuar butonat ne nje frame 1. Zgjidhni kontrollin frame nga toolbox dhe vendosni frame-in ne forms. 2. Zgjidhni kontrollin buton opsional(option button) nga toolbox dhe vendoseni brenda frame-it 3. Perserisni hapin 2 per cdo buton qe doni te shtoni ne frame Ndertimi ne fillim i Frame-it dhe pastaj i cdo kontrolli opsional brenda tij ju lejon te zhvendosni frame-in dhe butonat njekohesisht. Shenim Nqs keni kontrolle ekzistuese qe doni ti gruponi tashme ne nje frame, ju mund t’i zgjidhni te gjithe ata, dhe pastaj te zbatoni funksionin cut dhe Paste brenda nje frame ose picture box.

Mbajtesit e kontrolleve Megjithese kontrollet jane objekte te pavarura, nje relacion meme-bije ekziston ndermjet formseve dhe kontrolleve. Figura 3.12 demostron se si nje buton opsional mund te jete brenda nje formsi ose brenda nje kotrolli frame.

- 40 -


Mësimi i gjuhes Visual BASIC Per te kuptuar konceptin e nje mbajtesi kontrollesh, duhet te keni te qarte se te gjitha kontrollet, jane bije te formsit ne te cilin jane vizatuar. Gati te gjithe kontrollet, kane nje veti Parent, qe ka vleren e formsit ne te cilin ndodhet kontrolli. Vetite Top dhe Left te kontrollit jane te lidhura me formsin meme, dhe kontrollet nuk mund te levizin jashte kontureve te objektit meme. Zhvendosja e nje mbajtesi, zhvendos edhe kontrollet brenda.

Zgjedhja e butonave opsionale. Nje buton opsionale mund te aktivizohet(zgjidhet): •

Duke e klikuar ate ne run time me mouse. • Duke levizur me TAB neper forms derisa te pozicionohemi ne grupin e opsioneve dhe pastaj duke levizur me shigjetat e drejtimit derisa te zgjidhet opsioni i deshiruar. • Duke i dhene vetise Value te tij, vleren True ne kod. optZgjedh = True

Per te bere nje buton opsional qe te jete butoni implicit ne grup, i japim vetise Value te tij, vleren True ne dritaren e vetive. Ai qendron i zgjedhur derisa perdoruesi te zgjedhi nje buton tjeter.

Aplikim me butona Opsionale Formsi i shfaqur ne figuren 3.13 perdor butona opsionale per te percaktuar tipin e procesorit dhe sistemin operativ per nje kompjuter te prishur. Kur perdoruesi zgjedh nje buton ne ndonjerin grup, vetia Caption e etiketes, ndryshohet per te reflektuar zgjedhjen e bere. Shikoni formsin Options.frm ne aplikimin Controls.vbp

- 41 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.13 Shembuj butonash opsionale.

Tabela e meposhtme, liston vetite e vendosura per objektet e perdorura ne aplikim.

Objekti Etikete Buton komandash Butoni i pare opsional Butoni i dyte opsional

Butoni i trete opsional Frame Butoni i katert opsional Butoni i peste opsional

Vetia Name Caption Name Caption Name Caption Name Caption Value Name Caption Name Caption Name Caption Name Caption Value

Vlera lblDisplay (Bosh) cmdClose &Close opt486 &486 opt586 &Pentium True opt686 P&entium Pro fraSystem &Operating System optWin95 Windows 95 optWinNT Windows NT True

Ngjarjet ne aplikimin me butona opsionale. •

Ngjarja Click per tre butonat e pare, i jep nje variabli string strComputer, i deklaruar ne nivel formsi, nje pershkrim korrespondues.

- 42 -


Mësimi i gjuhes Visual BASIC •

Ngjarja Click per dy butonat e fundit, i jep nje variabli tjeter string strSystem, i deklaruar ne nivel formsi, nje pershkrim korrespondues.

Pra ketu jane perdorur dy variabla te tipit string strComputer dhe strSystem, qe permbajne vlera te ndryshme string, ne varesi te butonave te zgjedhur. Sa here qe zgjidhet nje buton i ri, vlera e variablit perkates, ndryshon. Private Sub opt586_Click() strComputer = "Pentium" Call DisplayCaption End Sub

Pastaj thirret nje procedure, e quajtur DisplayCaption, qe bashkon permbajtjet e dy variablave dhe ndryshon vetive Caption te etiketes. Sub DisplayCaption() lblDisplay.Caption = "You selected a " & _ strComputer & " running " & strSystem End Sub

Procedura e mesiperme eshte perdorur sepse, procedura e ndyshimit te vetise Caption te etiketes eshte e njejte per te peste butonat opsionale, ndryshon vetem vlera e variablave. Keshtu nuk eshte e nevojshme te perseritet pese here i njejti kod ne te pese ngarjet Click

Perdorimi i listave dhe i kombove. Listat dhe kombot(combo box), paraqesin nje liste mundesish zgjedhjeje para perdoruesit. Ne menyre implicite, zgjedhjet paraqiten vertikalisht ne nje kolone te vetme, megjithate ato mund te ndertohen edhe me disa kolona. Nqs numri i zgjedhjeve e kalon ate qe mund te afishohet ne nje liste apo kombo, atehere shfaqen automatikisht ashensoret, dhe perdoruesi mund te shikoje te gjithe elementet e listes apo kombos. Figura 3.14, paraqet nje liste me nje kolone te vetme.

- 43 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.14 Liste me nje kolone.

Nje kontroll kombon kombino cilesite e nje kutie teksti me nje liste. Ky kontrolll u lejon ose te zgjidhni nje element nga lista ose te shtypni vete elementin e listes. Figura 3.15 paraqet nje kombo. Figure 3.15 Kombo

Ndryshej nga kontrollet e tjera qe permbajne nje vlere te vetme, psh vetia Caption e etiketes ose vetia Text e kutise se tekstit, listat dhe kombot permbajne disa vlera ose nje koleksion vlerash. Ato suportojne metoda per te shtuar, hequr ose konsultuar vlerat nga koleksioni i tyre ne run-time. Per te shtuar disa elemente ne nje liste te quajtur List1, kodi do te ishte si me poshte: List1.AddItem "Paris" List1.AddItem "New York" List1.AddItem "San Francisco"

Listat dhe kombot jane nje menyre e shkelqyer per te paraqitur nje sere mundesi zgjedhjesh para perdoruesit ne nje hapesire te kufizuar ne forms.

•

Perdorimi i ashensoreve ne rrethana futje te dhenash. Megjithese ashensoret ne shumicen e rasteve perdoren ne dritare apo kuti teksti per te levizur neper to, shpesh here do ti shihni ato te perdorura gjate

- 44 -


MĂŤsimi i gjuhes Visual BASIC futjes se te dhenave. Meqenese ashensoret mund te tregojne pozicionin korent ne nje objekt te shkallezuar, ata mund te programohen per te kontrolluar volumin e zerit ose ngjyrat ne nje figure. Kontrollet HScrollBar (horizontal) dhe VScrollBar (vertikal) operojne ne menyre te pavarur nga kontrollet e tjera dhe kane vetite, metodat dhe ngjarjet e tyre. Kontrollet Scroll bar(ashensoret) nuk jane njesoj si ashensoret qe mund te lidhen me kutite e teksteve listat apo kombot.

Kontrollet per afishimin e figurave dhe grafikeve Meqenese Windows eshte nje GUI(graphical user interface), eshte shume e rendesishme te afishoni imazhe grafike ne aplikimet tuaja. Visual Basic ofron kater kontrolle per te punuar me grafiken: kontrolli picture box, kontrolli image, kontrolli shape dhe kontrolli line. Kontrollet image, shape dhe line shpesh quhen si kontrolle grafike "lightweight". Ata kerkojne me pak cilesi te sistemit, dhe perdoren per te afishuar imazhe, me shpejt se kontrolli Picture. Ata kane nje nenbashkesi te vetive, ngjarjeve dhe metodave te kontrollit Picture. Qellimi

Kontrolli qe perdoret

Nje mbajtes kontrollesh te tjere Zbatim metodash printimi ose grafike. Afishim figurash Afishim elementesh te thjeshte grafik

Picture box Picture box kontroll Image ose picture box kontroll Shape ose line

•

Puna me kontrollin Pikture (Picture box) Qellimi kryesor i perdorimit te kontrollit pikture eshte per te afishuar figura para perdoruesit. Figura qe afishohet percaktohet nga vetia Picture. Vetia Picture permban emrin e skedarit(e specifikuar bashke me rrugekalimin nqs eshte e nevojshme), per skedarin qe mban figuren qe duhet afishuar. Shenim Formsi ka gjithashtu nje veti Picture qe mund te perdoret per te afishuar nje figure ne sfondin e formsit. Per te afishuar ose zevendesuar nje figure ne run-time, ju mund te perdorni funksionin LoadPicture, per te vendosur vetine Picture. Ju duhet te specifikoni emrin e skedarit qe mban figuren si parameter te funksionit LoadPicture: picMain.Picture = LoadPicture("VANGOGH.BMP")

Kontrolli pikture, ka nje veti AutoSize, qe nqs ka vleren True, shkakton ridimensionimin automatik te figures. Duhet te keni shume kujdes gjate vizatimit te formsit nqs perdorni nje kontroll pikture me vetine AutoSize me vlere true, sepse meqenese piktura do te ridimensionohet ne varesi te - 45 -


MÍsimi i gjuhes Visual BASIC permbajtjes se saj, ajo mund t’ju mbuloje kontrollet e tjera ne forms.

Perdorimi i kontrolleve Pikture si mbjajtes kontrollesh te tjere. Kontrolli pikture mund te perdoret gjithashtu edhe si mbajtes kontrollesh te tjere. Njesoj si me nje frame, ju mund te vizatoni kontrolle te tjera brenda tij. Kontrollet e vendosura brenda tij, levizin bashte me kontrollin pikture, dhe vetite Top dhe Left te tyre jane te lidhura me kete kontroll. Nje perdorim i kontrollit pikture si mbajtes, eshte duke e perdorur ate si toolbar ose status bar. Ju mund te vendosni kontrolle image ne te per ti perdorur si butona, ose te shtoni etiketa per ta perdorur si status bar. Figura 3.16 shfaq nje kontroll pikture me vetine Align me vlere Bottom. Ai permban dy etiketa qe mund te perdoren per te afishuar mesazhin e gjendjes. Figure 3.16 Kontroll pikture, i perdorur si status bar

Kontrolle Label

Kontroll Pikture

Perdorime te tjera te kontrollit Pikture Kontrolli pikture, ka nje sere metodash qe e bejne ate te perdorshem per qellime te tjera. Nje kontroll i thjeshte mund te perdoret per te afishuar tekst, grafik ose edhe animacione te thjeshta Metoda Print ju lejon juve per ta afishuar tekst ne kontrollin pikture. Shume veti te fontit qe jane te vlefshme kontrollojne karakteristikat e tekstit te afishuar me metoden print. Metoda Cls mund te perdoret per te pastruar afishimet e bera. Metodat Circle, Line, Point dhe Pset mund te perdoren per te vizatuar grafike te ndryshem ne nje kontroll pikture.Vetite si DrawWidth, FillColor, dhe FillStyle ju lejojne te persosni pamjen e grafikes se ndertuar. Duke perdorur metoden PaintPicture, mund te krijohen animacione brenda kontrollit picture. - 46 -


Mësimi i gjuhes Visual BASIC

Kontrollet grafike “Lightweight” Kontrollet image, shape dhe line konsiderohen si kontrolle “lightweight”;Quhen te tilla pasi ato kane vetem nje nenbashkesi te vetive, metodave dhe ngjarjeve te kontrollit pikture. Per kete arsye ato kane me pak kerkesa dhe bejne ngarkimin e figurave me shpejt se kontrolli pikture.

Perdorimi i kontrollit Imazh(Image) ne vend te kontrollit Pikture Kontrolli imazh eshte i ngjashem me kontrollin pikture, por perdoret vetem per te afishuar figura. Ai nuk ka vetine per te sherbyer si mbajtes kontrollesh te tjera, dhe nuk ka disa nga metodat e kontrollit pikture. Figurat ngarkohen ne kontrollin imazh njesoj si ne kontrollin pikture. Ne dritaren e vetive, vendosni vetine Picture me emer skedari dhe rrugekalim; ne run-time perdorni funksionin LoadPicture Kontrolli imazh ka nje veti Stretch nderkohe qe kontrolli pikture ka vetine AutoSize. Sic e thame te kontrollet pikture, nqs vetise AutoSize i japim vleren True, kontrolli merr permasat e figures, ndersa nqs vetise AutoSize i japim vleren False, shkokton prerjen e figures, vetem nje pjese e saj do te shihet. Nqs ne kontrollin imazh, vetise Stretch te tij i japim vleren False(implicite), shkakton kontrollin te marre permasat e figures, ndersa kur kjo veti ka vleren False, atehere figura merr permasat e kontrollit imazh, gje qe mund te shkaktoje prishjen e cilesise se figures.

Perdorimi i kontrollit imazh per te krijuar butona personale. Kontrolli imazh, suporton ngjarjen click, keshtu qe ju mund ta perdorni ate edhe si buton komandash. Kjo eshte nje menyre e pershtatshme per te krijuar nje buton me nje figure, ne vend te Caption-it. Grupimi i disa kontrolleve imazh sebashku, horizontalisht ne krye te ekranit-ju lejun juve te krijoni nje toolbar ne aplikimin tuaj. Per te krijuar nje kontur perreth kontrollit imazh, vendosni vetise BorderStyle 1-Fixed Single. Shenim Ndryshej nga kontrollet e butova te komandave, kontrolli imazh nuk duket i shtypur kur shtypet, kjo do te thote se nqs ju nuk ndryshoni figuren ne ngjarjen MouseDown, shtypja e ketyre kontrolleve kur perdoren si butona, nuk dallohet

Perdorimi i kontrolleve Shape dhe Line - 47 -


MĂŤsimi i gjuhes Visual BASIC Kontrollet Shape dhe line perdoren per vizatimin e elementeve grafike ne siperfaqen e nje formsi. Keto kontrolle nuk suportojne ndonje ngjarje; ata perdoren kryesisht per qellime dekori. Vetite e shumta qe ata suportojne, kontrollojne pamjen e kontrollit Shape. Duke vendosur vetine Shape, ai mund te afishohet si drejtkendesh, katror, rreth, drejtkendesh i rrumbullakosur, ose katror i rrumbullakosur. Vetite BorderColor dhe FillColor mund te vendosen per ti ndryshuar ngjyren, vetite BorderStyle, BorderWidth, FillStyle, dhe DrawMode kontrollojne se si eshte vizatuar ai. Kontrolli line eshte i ngjashem me kontrollin shape por mund te perdoret vetem per te vizatuar vija te drejta.

•

Aplikim me imazhe. Formsi i paraqitur ne Figuren 3.18 perdor kater kontrolle imazhe, nje kontroll shape,nje kontroll pikture , dhe nje buton komande. Kur perdoruesi klikon nje simbol letrash bixhozi, kontrolli shape ndricon simbolin dhe nje mesazh afishohet ne kontrollin pikture. Shikoni shembullin Images.frm ne aplikimin Controls.vbp.

- 48 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.18 Shembull me kontrolle imazhe dhe shape.

Tabela e meposhtme, liston vetite e vendosura per objektet e perdorura ne aplikim. Object Kontroll Pikture Kontrolli imazh i pare Kontrolli imazh i dyte Kontrolli imazh i trete Kontrolli imazh i katert Kontrolli Shape

buton komande

Property Name Align Name Picture Name Picture Name Picture Name

Setting picStatus Bottom imgClub Spade.ico imgDiamond Diamond.ico imgHeart Heart.ico imgSpade

Picture Name Shape BorderWidth Height Width Name Caption

Spade.ico shpCard 4-Rounded Rectangle 2 735 495 cmdClose &Close

Ngjarjet ne aplikimin me imazhe •

Ngjarja Click ne cdo kontroll imazh, vendos vetine Left te kontrollit te barabarte me me vleren e vetise Left te vete kontrollit imazh, duke e levizur kontrollin shape ne krye te imazhit.

- 49 -


Mësimi i gjuhes Visual BASIC •

Metoda Cls e kontrollit pikture provokohet per te fshire afishimin korent nga “status bar”. • Metoda Print e kontrollit pikture provokohet, per te printuar(afishuar) mesazhin e ri ne “status bar” Kodi ne ngjarjen Click te kontrollit imazh eshte si me poshte Private Sub imgHeart_Click() shpCard.Left = imgClub.Left picStatus.Cls picStatus.Print "Selected: Club" shpCard.Visible = True End Sub

Nje instruksion tjeter interesant ne kete aplikim eshte ne ngjarjen Form_Load event. shpCard.Visible = False

Duke i dhene vetise Visible te kontrollit shape vleren False, kontrolli shape eshte i fshehur derisa te klikohet kontrolli i pare.

Kontrolle te tjera shtese. Shume kontrolle te tjera, perfshihen ne kutine toolbox standarte te Visual Basic. Disa kontrolle perdoren per te punuar me sasi te medha te dhenash, te ndodhura ne nje baze te dhenash. Disa te tjera mund te perdoren per te konsultuar skedaret e sistemit te Windows-it. Ju mund te perdorni gjithashtu kontrollet ActiveX, qe ne versionet e meparshme jane quajtur kontrolle OLE, ne nje aplikim Visual Basic, ne te njejten menyre si kontrollet standarte.

Kontrollet e konsultimit te te dhenave. Ne biznesin e sotshem, shumica e informacionit rezervohet ne nje ose disa baza te dhenash. Visual Basic suporton nje sere kontrollesh per konsultimin e shumices se formateve te bazave te dhenave si Microsoft Access dhe SQL. • Kontrolli data perdoret per tu lidhur me nje baze te dhenash. Vetite, metodat dhe ngjarjet e tij ju lejojne juve te navigoni, dhe manipuloni te dhenat nga aplikimi juaj. • Kontrolli DBList eshte i ngjashem me kontrollin liste(list box). i kombinuar me nje kontroll data, kontrolli DBList mund te mbushet automatikisht me - 50 -


Mësimi i gjuhes Visual BASIC vlerat e nje fushe nje te baze te te dhenash. • Kontrolli DBCombo eshte si nje kombinim i kontrolleve DBList me nje kuti teksti. Teksti i zgjedhur ne kutine e tekstit mund te modifikohet. • Kontrolli DBGrid afishon te dhenat ne nje gride ose tabele. I kombinuar me nje kontroll data, ai paraqet te dhena te modifikueshme nga shume fusha te nje baze te dhenash. • Kontrolli MSFlexGrid eshte nje kontroll unik per te paraqitur disa pamje te dhenash. Ai mund te konsiderohet si kombinim i nje kontrolli gride me nje kontroll tree ose outline. Ne run-time, perdoruesi mund te riorganizoje kolonat dhe rreshtat per te marre pamje te ndryshme te dhenash.

Kontrollet e skedareve te sistemit Visual Basic ka tre kontrolle per komunikimin me skedaret e sistemit, qe perdoren te kombinuar se bashku. • Kontrolli DriveListBox ngjan me nje kontroll kombo. ai paraqet nje kombo me emrat e disqeve qe mund te zgjedhe perdoruesi. • Kontrolli DirListBox ngjan me nje kontroll liste, me vecorine qe afishon listen e direktorive te diskut te zgjedhur • Kontrolli FileListBox gjithashtu ngjan me nje kontroll liste, dhe afishon listen e skedareve te direktorise se zgjedhur. Shenim Keto kontrolle jane suportuar ve Visual Basic 5.0, per kompabilitet me aplikimet e krijuara ne versionet e meparshme te Visual Basic. Kontrolli Common Dialog, ofron me shume komoditet dhe metoda me te lehta per lidhjen dhe komunikimin me skedaret e sistemit. Per me shume informacion rreth kontrollit common dialog, shikoni “Kontrollet Mikse”, me poshte ne kete kapitull.

Kontrollet mikse Visual Basic, suporton edhe shume kontrolle te tjera standarte. •

Kontrolli timer mund te perdoret per te krijuar nje ngjarje ne aplikimin tuaj qe duhet te shkaktohet pas nje intervali te caktuar. • Kontrolli common dialog shton kuti dialogu ne aplikimin tuaj per zgjedhjen e skedareve te sistemit, ngjyrave, fonteve dhe funksionet e printimit.

Kuptimi i Fokusit Ne menyre qe me nje objekt te mund te komunikoje perdoruesi, qe ai te mund te marre te dhena, ai duhet te kete fokus. Ne nderfaqesin e Microsoft Windows, disa plikime mund te ekzekutohen njekohesisht, por vetem

- 51 -


MĂŤsimi i gjuhes Visual BASIC aplikimi me fokus, e ka shiritin e titullit te aktivizuar, dhe mund te marre te dhena nga perdoruesi. Ne nje forms Visual Basic me disa kuti teksti, vetem kutia e tekstit qe ka fokus do te afishoje tekstin e futur me tastiere. Ngjarjet GotFocus dhe LostFocus ndodhin kur nje objekt merr ose humbet fokusin. Formset dhe shumica e kontrolleve i suportojne keto ngjarje.

Objektet qe kane fokus dallohen. Psh, kur nje buton komandash ka fokus, ai shfaqet me nje kontur te ndritshem perreth tekstit qe ai afishon. (Figure 3.19). Figure 3.19 Nje buton komandash me fokus.

Ky buton komandash ka fokus

Nje objekt mund te marre fokus, vetem kur vetite Enabled dhe Visible te tij jane True. Vetia Enabled lejon objektin tu pergjigjet ngjarjeve te shkaktuara nga perdoruesi si ngjarjet e tastieres apo mouse-it. Vetia Visible percakton nese nje objekt mund te shfaqet ne ekran Shenim Kontrollet Frame, Etiketat, menu, line, shape, imazh, dhe timer nuk mund te marrin fokus. Nje forms mund te marre fokus vetem nqs nuk permban ndonje kontroll qe mund te marre fokus.

•

Vendosja e Tab Order Tab Order eshte rradha sipas te ciles perdoruesi kalon nga nje kontroll ne nje tjeter duke shtypur tasten TAB. Ne pergjithesi, tab order eshte rradha sipas te ciles jane vendosur kontrollet ne forms. Per shembull, supozojme se krijoni dy kuti teksti, Text1 dhe Text2, pastaj nje

- 52 -


MĂŤsimi i gjuhes Visual BASIC buton komandash Command1. Kur ekzekutohet aplikimi, Text1 ka fokusin. Duke shtypur TAB fokusi zhvendoset neper objekte sipas rradhes qe ata u krijuan, si ne Figuren 3.20. Figure 3.20 Shembull i Tab Order Shtypja e TAB kalon fokusin ne Text2

Shtypja e TAB kalon fokusin ne Command1

Per te ndryshuar tab order per nje kontroll ndryshoni vetine TabIndex. Vetia TabIndex e nje kontrolli, percakton pozicionin e tij ne tab order. Ne menyre implicite, kontrolli i vizatuar i pari, ka vleren e TabIndex 0, i dyti e ka 1 e me rradhe. Kur ju ndryshoni pozicionin e nje kontrolli ne tab order, Visual Basic rinumeron automatikisht pozicionet ne tab order te kontrolleve te tjera per te reflektuar ndryshimet e bera.. Psh, nqs ju vendosni te parin Command1 ne tab order, vetia TabIndex e kontrolleve te tjera do te ndryshohet si ne tabelen me poshte Kontrolli Text1 Text2 Command1

TabIndex para ndryshimit 0 1 2

TabIndex pas ndryshimit 1 2 0

Shenim Kontrollet qe nuk mund te marrin fokus, nuk e kane vetine TabIndex dhe nuk perfshihen ne tab order.

Perjashtimi i nje kontrolli nga Tab Order Ne pergjithesi, Duke shtypur tab ne run-time, zgjithet cdo kontroll ne tab order. Ju mund ta perjashtoni nje kontroll nga tab order duke vendosur vleren e vetise TabStop, False (0). Shenim Nje grup butonash opsionale ka vetem nje tab stop. Butoni i zgjedhur i grupit, automatikisht, ne vetine e tij TabStop ka vleren True ndersa butonat e tjere ne vetine e tyre TabStop kane vleren False.

Menute Nqs doni qe aplikimi juaj te kete nje bashkesi komandash, menute ofrojne - 53 -


MĂŤsimi i gjuhes Visual BASIC nje menyre te pershtatshme per ti grupuar komandat dhe nje menyre te lehte per perdoruesit per ti konsultuar ato. Figura 3.21 ilustron elementet e nje nderfaqesi menush ne nje forms pa titull.

- 54 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.21 Elementet e nje nderfaqesi menush ne nje forms Visual Basic Titulli i menuse Element menuje

Shiriti i menuse

Shiriti ndares Menuja

Per ta bere aplikimin tuaj me te lehte ne perdorim, ju duhet ti gruponi elementet e menuve(komandat), sipas funksionit te tyre. Per shembull ne figuren 3.21, komandat qe kane te bejne me skedaret jane perfshire ne menune Skedar. Disa elemente te menuve e kryejne funksionin menjehere, psh elementi Exit nga menuja file mbyll aplikimin. Disa elemente te teje menushe, afishojne nje kuti dialogu - nje dritare qe i kerkon perdoruesit informacion shtese per te kryer veprimin. Keto elemnte te menuve ndiqen nga simboli (...). Psh kur ju zgjidhni komanden Save As... nga menuja File, shfaqet kutia e dialogut Save As. Nje kontroll menu eshte nje objekt, dhe si objektet e tjera ka vetite e tij, qe mund te perdoren per te percaktuar pamjen dhe sjelljen e tij. Ju mund te vendosni vetite Caption, Enabled, Visible, Check dhe shume te tjera gjate ndertimit te menuse. Kontrollet menu kane vetem ngjarjen Click, qe provokohet kur zgjidhet elementi i menuse me mouse ose tastiere.

- 55 -


MĂŤsimi i gjuhes Visual BASIC Menute Pop-Up Nje menu pop-up eshte nje menu e shkurter qe afishohet mbi nje forms, ne menyre te pavarur nga shiriti i menuve te aplikimit, sic duket ne figuren 3.22. Elementet e shfaqur ne menune pop-up, varen nga vendi ku shtypet butoni i djathte i mouse-it. Ndryshej menute pop-up quhen edhe menu shortcut. Nje menu qe ka te pakten nje element menuje, mund te afishohet si menu pop-up ne run-time. Per te afishuar nje menu pop-up, perdoret metoda PopupMenu

Perdorimi i editorit te Menuve. Me editorin e menuve, mund te shtoni komanda te reja ne menute ekzistuese, te zevendesoni komanda ekzistuese me komanda te tjera, dhe te krijohen menu te reja. Avantazhi kryesor i perdorimin te editorit te menuve eshte lehtesia ne perdorim. Per te afishuar editorin e menuve: • Nga menuja Tools , zgjidhni Menu Editor. Keshtu hapet editori i menuve, si ne Figuren 3.23

- 56 -


Mësimi i gjuhes Visual BASIC Figure 3.23 Editori i menuve

Vetite e kontrollit Menu

Lista e kontrolleve menu

Nje sere vetishe te kontrollit menu, mund te vendosen ne editorin e menuve, por gjithashtu te gjitha vetite mund te vendosen edhe nga dritarja e vetive. Normalisht mund te krijoni nje menu ne editorin e menuve, dhe per te ndryshuar nje veti mund te perdorni dritaren e vetive.

Komunikimi me perdoruesit me kuti dialogu. Ne aplikimet nen Windows, kutite e dialogut perdoren per te komunikuar me perdoruesin, per te futur te dhena ose per te afishuar mesazhe informacioni. Kutite e dialogut jane tipe speciale formsesh qe mund te krijohen: •

Kutite e dialogut e percaktuara, mund te krijohen nga programuesi me kod, me ndihmen e funksioneve MsgBox ose InputBox. • Kutite e dialogut e personalizuara mund te krijohen duke perdorur nje forms standart ose duke personalizuar nje kuti dialogu ekzistuese. • Kutite e dialogut standarte, si Print dhe File Open, mund te krijohen duke perdorur kontrollin common dialog. Figura 3.24 afishon nje kuti dialogu te percaktuar.

- 57 -


MĂŤsimi i gjuhes Visual BASIC Figure 3.24 Nje kuti dialogu e percaktuar.

Kodi qe afishon kutine e dialogut ne figuren 3.24: MsgBox "Gabim gjate hapjes se skedarit," & vbCrLf & "Provojeni rishtas", bExclamation, "Editor teksti"

- 58 -


MĂŤsimi i gjuhes Visual BASIC KAPITULLI 4. Administrimi i projektit Per te krijuar nje aplikim me Visual Basic, ju duhet te punoni me projekte. Nje projekt eshte koleksioni i skedareve qe perdorni per te krijuar aplikimin. Kur krijoni nje aplikim, zakonisht krijoni formse te reja, por mund te perdorni dhe modifikoni edhe formse te perdorura nga projekte te tjera. E njejta gje mund te thuhet edhe per modulet e tjera ose skedaret qe mund te perfshihen ne aplikimin tuaj. Pasi te keni bashkuar te gjithe skedaret ne nje projekt, kompilohet projekti dhe krijohet nje skedar i ekzekutueshem

Struktura e nje projekti ne Visual Basic Seksioni i meposhtem pershkruan tipet e ndryshme te skedareve dhe objekteve qe mund te inkludohen ne nje projekt. Modulet Forms Modulet Forms (me prapashtesen .frm) formsit dhe te kontrolleve te tij, perfshire permbajne gjithashtu dhe deklarimet variablave, procedurave te jashtme, procedurave te pergjithshme.

mund te permbajne pershkrime te ketu dhe vetite e tyre. Ato mund te ne nivel formsi te konstanteve, procedurave te ngjarjeve dhe

Modulet Klasa Klas modulet (me prapashtesen .cls) jane te ngjashem me formset me perjashtim te faktit se ato nuk jane te dukshem nga ana vizuale. Ju mund ti perdorni klas modulet per te krijuar objekte perfshi ketu kodet dhe vetite e tyre. Modulet standarte Modulet standarte (me prapashtesen .bas) mund te permbajne konstante, variabla publike ose ne nivel moduli si dhe procedura te jashtme dhe publike. Skedaret burim Skedaret burim (me prapashtesen .res) permbajne bitmaps, tekste, dhe te dhena te tjera te cilat mund ti ndryshoni pa qene nevoja te modifikoni kodet ne program. Per shembull, nqs ju planifikoni te nderoni programin tuaj ne nje gjuhe te huaj ju mund te grumbulloni tere stringjet dhe bitmap-et ne nje skedar burim te cilin ju mund ta perdorni ne vend te aplikimit. Nje projekt nuk mund te permbaje me shume se nje skedar burim.

- 59 -


MĂŤsimi i gjuhes Visual BASIC Dokumentet ActiveX Dokumentet ActiveX (.dob) jane te ngjashem me formset por jane te afishueshem vetem ne nje program Interneti sic eshte psh Internet Explorer. Komponentet Krahas skedareve dhe moduleve ne nje projekt mund te shtohen dhe disa komponente te tjere. Kontrollet ActiveX Kontrollet ActiveX (me prapashtesen .ocx) jane kontrolle opsionale (jo te detyrueshem) te cilat mund te shtohen ne toolbox dhe te perdoren me pas ne forms. Kur behet instalimi i Visual Basic-ut skedaret qe permbajne kontrollet e Visual Basic-ut kopjohen ne nje direktori te caktuar (ne nendirektorine \Windows\System te Windows 95). Kontrollet shtese ActiveX jane shume te dobishem. Ju mund te krijoni kontrolle te tilla vete duke perdorur Visual Basic Profesional. Objetet e shtueshem Objektet e shtueshem, si Microsoft Excel Worksheet-et, jane komponente te cilet ju mund ti perdorni fare mire ne aplikimin tuaj per te trajtuar ne te, te dhena te krijuara ne nje aplikim tjeter. Referencat Mund te shtoni gjithashtu referenca te nje kontrolli te jashtem ActiveX qe mund te perdoret nga aplikimi juaj. Ju mund te shtoni referencat duke shfrytazuar komanden Reference te menuse Project. Ndertuesit e Kontolleve ActiveX Ndertuesit e kontrolleve ActiveX jane mjete per ndertimin e klasave prej te cilave mund te krijohen objekte te ndryshme. Kontrollet Standarde Kontrollet Standarde jane kontrollet te cilat bejne pjese ne Visual Basic. Te tile jane psh Komand butonet ose frame-t etj. Pra ato qe bejne pjese gjithmone ne toolbox, ndryshe nga kontrollet ActiveX te cilet jane objekte qe shtohen ose hiqen nga toolbox-i.

Krijimi, hapja dhe ruajtja e nje projekti

- 60 -


MĂŤsimi i gjuhes Visual BASIC Kater komandat e menuse File ju lejojne te krijoni, hapni dhe ruani nje projekt. Komanda New Project

Open Project

Save Project

Save Project As

Pershkrimi Mbyll projektin korent dhe kerkon nga ju te ruani skedaret qe kane ndryshuar. Me pas ju mund te zgjidhni tipin e projektit qe do te krijoni me ndihmen e dritares se dialogut New Project. Ne kete menyre Visual Basic-u krijon nje projekt te ri me nje skedar te vetem. Mbyll projektin korent dhe kerkon nga ju te ruani skedaret qe kane ndryshuar. Me pas hapet nje projekt ekzistues me tere formset, modulet dhe kontrollet ActiveX qe bejne pjese ne kete projekt (.vbp). Ruan te tera ndryshimet e bera ne projektin korent perfshi ketu formset, modulet standarte dhe klas modulet. Ruan ndryshimet e bera ne projekt ne nje skedar emrin e te cilit duhet ta vendosni ju ne kete moment. Gjithashtu kerkohet nga ju ruajtja e te tera formseve dhe moduleve qe gjate kesaj kohe kane persuar ndryshime.

Ekziston gjithashtu mundesia qe nje skedar (forms ose modul) te beje pjese ne projekte te ndryshme (pra ne me shume se nje projekt). Nderkohe duhet patur kujdes se ndryshimet e bera ne kete skedar (forms ose modul) ne nje nga projektet ku ai ben pjese do te reflektohen dhe ne projektet e tjera. Puna me disa Projekte njeheresh Ne versionin Profesional te Visual Basic-ut eshte e mundur te mbahen hapur disa projekte ne te njejten kohe. Kjo eshte mjaft e dobishme sidomos ne rastet kur duhen ndertuar apo testuar kontrollet apo komponentet e tjere te ndertuar nga vete programuesi. Kur jane ngarkuar me shume se nje projekte shiriti i titullit ne dritaren Project Explorer do te ndryshoje tashme ne Project Group dhe ne kete dritare do te shfaqen te tere komponentet e projekteve te ngarkuara. Shtimi i nje projekti ne nje projekt grup 1. Nga menuja File, zgjidhni Add Project. Afishohet dritarja e dialogut Add Project. 2. Zgjidhni nje projekt ekzistues ose nje te ri e me pas klikoni ne butonin Open. Heqja e nje projekti nga nje projekt grup 1. Zgjidhet projekti ose nje nga komponentet e tij ne dritaren Project Explorer.

- 61 -


MĂŤsimi i gjuhes Visual BASIC 2. Nga menuja File, zgjidhni Remove Project.

Shtimi, heqja dhe ruajtja e skedareve

Te punosh me skedaret brenda nje projekti eshte njesoj si te punosh me vete projektin. Shtimi i nje skedari ne nje projekt 1. Zgjidhet menuja Project, komanda Add tipskedari (ku tipskedari eshte nje nga tipet e objekteve ne Visual si Form, MDI Form, Module, Class Module etj). Dritarja e dialogut Add tipskedari paraqitet ne Figuren 4.2 . 2. Zgjidhet nje skedar ekzistues ose nje i ri dhe klikohet ne butonin Open.

- 62 -


MĂŤsimi i gjuhes Visual BASIC Figure 4.2 Dritarja e dialogut Add Form

Kur ju shtoni nje skedar ne nje projekt ju nuk beni gje tjeter vecse krijoni nje lidhje midis skedarit dhe projektit, pra ju nuk shtoni nje kopje te ketij skedari ne kete projekt. Si rrjedhoje e kesaj nqs ju e ndryshoni kete skedar ndryshimet e bera do te reflektohen ne te gjithe projektet qe permbajne kete skedar. Per te shmangur kete ruajtja e ndryshimeve ne kete skedar behet duke zgjedhur se pari kete skedar ne dritaren Project Explorer e me pas komanden Save emerskedari As nga menuja File, keshtu ky skedar ruhet me nje emer te ri. Heqja e nje skedari nga nje projekt 1. Zgjidhet skedari ne dritaren Project Explorer. 2. Nga menuja Project, zgjidhet komanda Remove emerskedari. Ne kete menyre skedari hiqet nga projekti por jo nga disku. Nqs ju hiqni nje skedar nga nje projekt, Visual Basic-u e regjistron kete fakt ne skedarin e projektit kur behet ruajtja e tij. Nqs ju fshini nje skedar jashte mjedisit te Visual Basic-ut ai nuk eshte ne gjendje ta reflektoje kete ndryshim ne skedarin e projektit, keshtu nqs ju tentoni te hapni nje projekt te cilit i eshte fshire nje nga skedaret e tij, do te shfaqet nje mesazh gabimi qe ju lajmeron se nje nga skedaret e projektit mungon. Ruajtja e nje skedari pa ruajtur projektin 1. Zgjidhet skedari ne dritaren Project Explorer. 2. Nga menuja File, zgjidhet komanda Save emerskedari. - 63 -


MĂŤsimi i gjuhes Visual BASIC Bashkimi i teksteve Ju mund te shtoni gjithashtu nje tekst ekzistues ne kodet e moduleve tuaja. Kjo eshte shume e dobishme kur ju duhet te shtoni psh nje liste konstantesh ose nje pjese kodi te cilin e keni ruajtur ne nje skedar tekst. Shtimi i tekstit ne kodet e projektit 1. Nga dritarja Project, zgjidhet formsi ose moduli ne te cilin do te shtoni kodin. 2. Zgjidhet butoni View Code, dhe pozicionohet kursori ne editorin e kodeve pikerisht ne piken ku do te shtoni kodin. 3. Nga menuja Edit, zgjidhet Insert File. 4. Zgjidhet emri i skedarit tekst te cilin do te shtoni dhe me pas klikohet te butonin Open.

Shtimi i kontrolleve ne nje projekt

Bashkesia e kontrolleve te toolbox-it mund te personalizohet per cdo projekt. Cdo kontroll duhet te ndodhet ne shiritin Toolbox para se ai te shtohet ne nje nga formset e projektit. Fillimisht ne te ndodhen vetem te ashtuquajturat kontrolle standarde per te cilat folem ne kapitullin "Formset, Kontrollet, dhe Menute." Shtimi i nje kontrolli ActiveX ne nje projekt Ju mund te shtoni nje kontroll ActiveX ne nje projekt vetem pasi ta shtoni ate ne shiritin toolbox. Shtimi i nje kontrolli ne shiritin toolbox 1. Nga menuja Project, zgjidhet komanda Components. Afishohet dritarja e dialogut Components ashtu sic tregohet ne Figuren 4.3. Elementet e listes se kesaj dritareje dialogu perfshijne kontrollet ActiveX, objektet e shtueshem ndertuesit ActiveX. 2. Shtimi i nje kontrolli (me prapashtese .ocx) ne toolbox behet pasi zgjidhet kutia e zgjedhjes (check box) majtas emrit te kontrollit. Per te pare listen e kontrolleve me prapashtese .ocx zgjidhet tabi Controls. Per te pare listen e objekteve te shtueshem si psh Microsoft Excel Chart, zgjidhet tabi Insertable Objects. 3. Per te mbyllur dritaren e dialogut Components zgjidhet butoni OK. Te gjithe kontrollet ActiveX qe ju keni zgjedhur shfaqen ne shiritin toolbox. Figure 4.3 Dritarja e dialogut Components

- 64 -


MĂŤsimi i gjuhes Visual BASIC

Per te shtuar nje kontroll ActiveX ne listen e dritares se dialogut Components, klikohet ne butonin Browse dhe pasi te jeni pozicionuar ne direktorine e duhur zgjidhet skedari perkates me prapashtesen .ocx. Shenim Cdo kontroll ActiveX perfaqesohet nga nje skedar me prapashtesen .oca. Heqja e kontrolleve nga nje projekt Heqja e nje kontrolli nga nje projekt 1. Nga menuja Project, zgjidhet komanda Components. Afishohet dritarja e dialogut Components. 2. Pastrohet kutia e zgjedhjes (check box) majtas cdo kontrolli qe do te hiqet. Pas ketij veprimi ikona e kontrollit ne fjale zhduket nga shiriti toolbox. Shenim Ju nuk mund te hiqni nje kontroll nga shiriti toolbox nqs nje kopje e ketij kontrolli eshte perdorur qofte dhe nje here ne nje nga formset e projektit tuaj. Perdorimi i objekteve te aplikimeve te tjera Mund te perdoren edhe objekte nga aplikime te tjera si ato te inkluduara ne librarine e objekteve te Microsoft Excel ashtu si kontrollet e toolbox-it ose si objektet e programuara me kod. - 65 -


MĂŤsimi i gjuhes Visual BASIC Per te bere te vlefshem objektet e aplikimit tuaj ne kod, por jo si kontrolle, vendosni nje reference tek libraria e objekteve te ketij aplikimi. Per te shtuar nje reference tek nje librari objektesh e nje aplikimi tjeter: 1. Nga menuja Project, zgjidhni References. Kutia e dialogut References afishohet si ne figuren 4.4. 2. Zgjidhni kutine e kontrollit te cdo reference qe doni te shtoni ne projekt. Per te shtuar referenca tek aplikimet qe nuk jane te listuara ne kutine e dialogut References, zgjidhni butonin Browse, dhe pastaj zgjidhni aplikimin. 3. Zgjidhni OK per te shtuar referencat e zgjedhura ne projektin tuaj

- 66 -


MĂŤsimi i gjuhes Visual BASIC Figure 4.4 Kutia e dialogut References

Krijimi dhe ekzekutimi i nje skedari EXE

Ju mund te krijoni nje skedar te ekzekutueshem (.exe) nga Visual Basic-u duke ndjekur kete procedure. Krijimi i nje skedari te ekzekutueshem (.exe) ne Visual Basic 1. Nga menuja File, zgjedhim komanden Make emerprojekti .exe ku emerprojekti eshte emri i projektit. 2. Shkruajme emrin e skedarit ose zgjedhim nje skedar ekzistues nqs duam ta mbivendosim ate me te riun. 3. Duke klikuar ne butonin Options, afishohet dritarja Project Properties (Figura 4.5) ne te cilen mund te specifikojme numrin e versionit te programit si dhe detaje te tjera mbi skedarin e ekzekutueshem.

- 67 -


MĂŤsimi i gjuhes Visual BASIC Figure 4.5 Dritarja Project Properties

4. Nqs doni te modifikoni numrin e versionit te projektit vendosni numrat perkates ne tekst bokset Major, Minor, dhe Revision. Nqs zgjidhni Auto Increment atehere numri Revision rritet me nje njesi sa here ekzekutohet komanda Make emerprojekti .exe. 5. Per ti vene nje emer te ri aplikimit nen Application, shtypim emrin e ri ne tekst boksin Title, ndersa nqs duam te zgjedhim nje ikone per aplikimin zgjedhim nje te tille ne listen icon. 6. Mund te vendosim gjithashtu nen Version Information komente te ndryshme mbi versionin e programit, emrin e kompanise, informacion mbi copyright etj. 7. Klikojme ne butonin OK per te mbyllur dritaren Project Properties dhe perseri klik ne OK ne dritaren Make emeraplikimi .exe per te kompiluar dhe linkuar programin per te krijuar keshtu skedarin e ekzekutueshem .exe. Ne kete menyra ju tani mund te ekzekutoni programin tuaj njelloj si cdo program tjeter Windows-i mjafton te dubel-klikoni ne iconen e tij.

Vendosja e opsioneve ne nje projekt

Visual Basic-u ju lejon te personalizoni cdo projekt duke percaktuar nje bashkesi vetish per te. Per kete mjafton te ekzekutojme komanden Project Properties te menuse Project. Afishohet dritarja e dialogut Project - 68 -


MĂŤsimi i gjuhes Visual BASIC Properties (Figure 4.6). Te gjitha vetite e percaktuara ne kete dritare ruhen ne skedarin e projektit (.vbp). Figure 4.6 Dritarja Project Properties

Tabela e meposhteme pershkruan disa nga opsionet qe mund te percaktoni. Opsioni Startup Object Project Name se Help File

Pershkrimi Formsi qe aktivizohet i pari sapo ekzekutohet projekti ose procedura Sub Main( ). Emri i projektit ne kod. Nuk mund te permbaje pike (.) hapsira, ose te filloje me nje karakter jo alfabetik dhe fundi nuk mund te kete me shume se 37 karaktere. Emri i skedarit te helpit qe i bashkangjitet projektit.

Perdorimi i wizardeve dhe add-ins

Visual Basic ju lejon te zgjidhni dhe te menaxhoni add-ins, te cilat jane disa shtesa te Visual Basic. Keto shtesa rrisin aftesine e Visual Basic ne zhvillimin e projekteve. Microsoft dhe kompani te tjera kane krijuar add-ins te cilat ju mund ti perdorni ne aplikimet tuaja. Wizards-et jane nje tip add-in qe mund te thjeshtojne shume disa kategori punesh si psh krijimin e formseve. Disa wizards-e jane perfshire ne Visual Basic. Perdorimi i Add-In Manager-it Ju mund te shtoni ose te hiqni nje add-in ne projektin tuaj duke perdorur - 69 -


MĂŤsimi i gjuhes Visual BASIC Add-In Manager-in, i cili aktivizohet ne menune Add-Ins. Dritarja Add-In Manager ( Figure 4.7) pemban listen e tere add-ins. Kutia e zgjedhjes (check box) ne te majte te secilit add-in tregon nese add-in perkates eshte apo jo i zgjedhur apo i instaluar. Figure 4.7 Dritarja Add-In Manager

Instalimi i nje add-in 1. Nga menuja Add-Ins zgjidhet komanda Add-In Manager. 2. Zgjidhet kutia e zgjedhjes (check box) ne te majte te add-in nese duam ta shtojme, ose pastrohet ajo nese duam ta heqim add-in perkates. 3. Mbasi te keni mbaruar zgjedhjet tuaja klikoni ne butonin OK. Shenim Zgjedhja e nje add-in mund ta shtoje ate ne menune Add-Ins te Visual Basic-ut. Perdorimi i Wizards Wizards e bejne punen me Visual Basic shume te thjeshte mbasi jane ato qe kryejne shume pune ne vendin tuaj. Psh Application Wizard (Figura 4.8) (qe perfshihet ne Visual Basic ju ndihmon ju qe te krijoni nje aplikim duke ju paraqitur nje seri pyetjesh ose zgjedhjesh. Ai krijon per ju formset dhe kodet brenda tyre ne varesi te zgjedhjeve qe ju keni bere. Ajo qe ju mbetet te beni eshte shtimi i kodeve suplementare ne varesi te specifikave te problemit tuaj. Versioni Profesional i Visual Basic perfshin dhe wizards-e te tjera, perfshi ketu nje Data Form Wizard per krijimin e formseve qe perdorin nje databaze, nje ActiveX Document Wizard per konvertimin e formseve per perdorimin e tyre ne Internet. Figura 4.8 Application Wizard

- 70 -


MĂŤsimi i gjuhes Visual BASIC

Wizards-et instalohen ose cinstalohen duke perdorur Add-in Manager-in. Nsq ato jane te instaluara ato shfaqen ne menune Add-Ins. Disa wizards-e te tjera shfaqen si ikona ne dritare te ndryshme dialogu psh. Application Wizard perfaqsohet me nje ikone ne dritaren e dialogut New Project. Aktivizimi i Application Wizard Nga menuja Add-Ins, zgjidhet Application Wizard. - ose 1. Nga menja File, zgjidhet komanda New Project. 2. Klikohet ne ikonen Application Wizard.

- 71 -


Mësimi i gjuhes Visual BASIC KAPITULLI 5. Programimi ne Visual Basic 5.0 Ky kapitull permban komponentet kryesore te gjuhes se programimit Visual Basic. Pas ndertimit te nderfaqesit, duke perdorur formset dhe kontrollet, ju do te keni nevoje te shkruani kodet qe percaktojne sjelljen e aplikimit tuaj. Si nje gjuhe programimi moderne, Visual Basic, permban nje numer te madh komponentesh dhe elementesh te gjuhes. Visual Basic eshte nje gjuhe programimi e mbeshtetur ne objekte. Termi objekte ndoshta mund te frikesoje shume programues, por mos u shqetesoni, sapo te kuptoni konceptet baze, objektet do t’ju ndihmojne juve te programoni me shpejt dhe ne menyre me te lehte. Nqs keni programuar ne gjuhe te tjera, shumica e gjerave te shpjeguara ne kete kapitull, do t’ju duken te ngjashme me gjuhet e tjera. Nqs shumica e kontrokteve te gjuhes do t’ju duket e ngjashme me gjuhet e tjera, natyra e Visual Basic-ut si gjuhe e drejtuar nga ngjarjet do t’ju duket e ndryshme. Nqs nuk keni pervoje ne programim, ky kapitull do t'ju sherbeje juve si hyrje ne programim. Sapo te kuptoni elementet baze te programimit, ju do te jeni ne gjendje te krijoni aplikime te fuqishme duke perdorur Visual Basic-un.

Aplikimi shembull Vcr.vbp Shumica e kodeve shembuj te ketij kapitulli jane marre ne aplikimin Vcr.vbp qe ndodhet ne nendirektorine Vcr te direktorise se shembujve te Visual Basic (\Vb\Samples\Pguide\Vcr).

5.1 Struktura e nje aplikimi ne Visual Basic Nje aplikim nuk eshte asgje tjeter vecse nje bashkesi instruksionesh qe drejtojne kompjuterin te kryeje nje veprim te caktuar. Struktura e nje aplikimi eshte menyra sipas se ciles organizohen instruksionet, ku vendosen instruksionet dhe ne cfare menyre ekzekutohen ato. Aplikimet e thjeshta si shembulli klasik “Pershendetje”, kane nje strukture te thjeshte; organizimi nuk eshte shume i rendesishem ne aplikimet me nje kod me nje rresht. Per aplikimet me komplekse, nevoja e organizimit te struktures behet e nevojshme apo e domosdoshme. Per te kontrolluar ekzekutimin e aplikimit, struktura eshte e rendesishme per programistin. Meqe Visual Basic mbeshtetet ne objekte, struktura e kodit te tij, modelon paraqitjen e aplikimit ne ekran. Formsi qe ju shikoni ne ekran eshte nje paraqitje e vetive qe percaktojne pamjen dhe sjelljen e tij. Per cdo forms ne aplikim ka nje skedar(modul formsi)( me prapashtese .FRM) qe permban - 72 -


MĂŤsimi i gjuhes Visual BASIC kodin e tij. Figure 5.1 Nje forms dhe kodet e lidhura me te.

Cdo modul formsi, permban seksionin e procedurave ngjarje, ku futen instruksionet qe do te ekzekutohen ne pergjigje te ngjarjeve te ndryshme. Formset mund te permbajne kontrolle. Per cdo kontroll ne nje forms, ka nje bashkesi procedura ngjarjesh ne modulin forms. Gjithashtu modulet forms mund te permbajne procedura te pergjithshme qe thirren nga ndonje ngjarje procedure Kodi qe nuk lidhet me nje forms ose kontroll specifik, mund te vendoset ne nje tip tjeter moduli, modul standart(.BAS). Nje procedure qe mund te perdoret ne pergjigje te ngjarjeve te nje sere objekteve te ndryshme rekomandohet te vendoset ne nje modul standart, ne vend qe te dublikohet kodi ne ngjarjet procedure per cdo objekt. Nje modul klase (.CLS) perdoret per te krijuar objekte qe mund te perdoren nga procedurat brenda aplikimit tuaj. Ndersa nje modul standart permban vetem kode, nje modul klase permban edhe kode edhe te dhena. Ai mund te mendohet si nje kontroll pa paraqitje fizike.

- 73 -


MÍsimi i gjuhes Visual BASIC •

Si punon nje aplikim i drejtuar nga ngjarjet? Nje ngjarje eshte nje veprim qe njihet nga nje forms ose kontroll. Aplikimet e drejtuara nga ngjarjet, ekzekuatojne kode Basic-u, ne pergjigje te nje ngjarje. Cdo forms dhe kontrol ne Visual Basic ka nje numer ngjarjesh te percaktuar. Nqs nje nga keto ngjarje ndodh, dhe ka nje kod te lidhur me kete ngjarje, Visual Basic, ekzekuton kete kod. Kur ju doni qe nje kontroll ti pergjigjet nje ngjarje, atehere duhet te shkruani kodin ne proceduren ngjarje qe i korespondone ngjarjes. Tipet e ngjarjeve te njohura nga nje objekt, ndryshojne, por shumica jane te perbashketa per shumicen e kontrolleve. Psh, shumica e objekteve njohin ngjarjen Click - nqs nje perdorues klikon nje forms, kodi ne ngjarjen Click te formsit ekzekutohet; nqs nje perdorues klikon nje buton komandash, procedura ngjarje e Click e butonit te komandave ekzekutohet.

Perpara se te programoni, Kodi ne aplikimet Visual Basic, eshte organizuar ne menyre hierarkike. Nje aplikim tipik, konsiston ne nje ose disa module: nje modul formsi per cdo forms ne aplikim, module standarte opsionale, dhe module klase opsionale. Cdo modul permban nje ose disa procedura qe permbajne kode: procedure ngjarje, procedura Sub ose procedura Funksione dhe procedura Veti. Percaktimi se ne cfare moduli duhet te beje pjese nje procedure varet nga tipi i aplikimit. Ndertimi i aplikimit shembull per kete kapitull Vcr.vbp, bazohet ne objektet qe perbejne nje video-kasete dhe nje televizor. Aplikimi VCR konsiston ne dy module formse, nje modul standart dhe dy module klasash. Ju mund ta shikoni strukturen e projektit, nga dritarja e projektit. (Figure 5.2). Figure 5.2 Struktura e projektit VCR

- 74 -


MĂŤsimi i gjuhes Visual BASIC

Formsi kryesor i aplikimit(frmVCR) eshte nje paraqitje vizuale e nje videokasete me ekranin e televizorit (Figure 5.3). Ai formohet nga shume objekte. Nje grup butona komandash (cmdPlay, cmdRecord, e me rradhe) perdoren per te paraqitur butonat e nje video-kasete. Aplikimi VCR gjithashtu permban gjithashtu nje ore(lblTime), nje tregues kanali(lblChannel), tregues funksioni (shpPlay, shpRecord, e me rradhe), dhe nje kontroll pikture (picTV).

- 75 -


MĂŤsimi i gjuhes Visual BASIC Procedurat ngjarje per te gjitha keto objekte perfshihen ne modulun forms Vcr.frm. Figure 5.3 Formsi kryesor per aplikimin VCR.

Ne shume raste ka procedura qe jane te perbashketa per me shume se nje objekt. Per shembull, kur shtypen butonat Play, Rewind, ose Record, butonat Pause dhe Stop duhet te aktivizohen. Ne vend qe te perseritet i njejti kod ne procedurat ngjarje te te gjithe ketyre butonave, eshte me mire te krijohet nje procedure e perbashket qe thirret nga procedurat ngjarje te butonave ne fjale. Procedurat e perbashketa, perfshihen ne modulin standart Vcr.bas. Disa pjese te nje video-kasete nuk duken si psh puna per regjistrimin e nje programi televiziv. Keshtu edhe disa funksione te aplikimit VCR, nuk kane paraqitje vizuale. Keto jane implimentuar si dy module klasash Recorder.cls and Tape.cls. Kodi per te nisuar procesin e rregjistrimit perfshihet ne modulin clsRecorder; kodi qe kontrollon drejtimin dhe shpejtesine e kasetes perfshihet ne modulin clsTape. Klasat e percaktuara ne keto module nuk kane referenca direkte me ndonje objekt ne forms.

- 76 -


Mësimi i gjuhes Visual BASIC

Mekanizmi i Shkrimit te kodit Perpara se te filloni, eshte e rendesishme te kuptoni mekanizmin e shkrimit te kodit ne Visual Basic. Si gjuhet e tjera te programimit, Visual Basic ka rregullat e veta per organizimin, shkruarjen dhe formatimin e kodit.

Modulet kode Kodet ne Visual Basic ruhen ne module. Sic u tha ka tre lloje modulesh: formse, standarte, dhe klasa. Cdo modul forms, standart ose klase mund te permbaje: •

Deklarimet. Ju mund ti vendosni procedurat e deklarimeve te konstanteve, tipeve, variablave, dhe librarive DLL(Dinamic-Link Library) ne nivel moduli forms, standart ose klase. • Procedurat.Nje procedure Sub, Funksion Ose Veti, permban pjese kodi qe mund te ekzekutohet kur thirret nga ngjarje te ndryshme. Shikoni seksionin “Procedurat” me vone ne kete kapitull.

Modulet forms Modulet forms (.FRM) jane themelet e shumices se aplikimeve ne Visual Basic. Ata mund te permbajne kode qe u pergjigjen ngjarjeve te ndryshme, procedura te pergjithshme, Deklarime variablash, konstantesh, tipesh dhe procedurash ne nivel formsi. Kodi qe ju shkruani ne nje modul formsi, eshte specifik per aplikimin ne te cilin ben pjese formsi; ai mund ti referohet gjithashtu edhe formseve ose objekteve te tjera ne aplikimin tuaj.

Modulet standarte. Modulet standarte(.BAS) permbajne procedura dhe deklarime qe mund te kapen edhe nga module te tjera ne aplikimin tuaj. Ata mund te permbajne deklarime globale ose ne nivel moduli variablash, konstantesh, tipesh. Kodi qe ju shkruani ne nje modul standart, mund te perdoret edhe nga aplikime te jera, nqs ju nuk u referoheni kontrolleve ose formseve me emer.

Modulet klasa. Modulet klasa (.CLS) jane themelet e programimit me objekte te orientuara ne Visual Basic. Ju mund te shkruani kode ne modulet klasa, per te krijuar objekte te reja. Keto objekte mund te kene vetite dhe metodat tuaja personale.

- 77 -


MÍsimi i gjuhes Visual BASIC •

Perdorimi i editorit te kodit Editori i kodit ne Visual Basic eshte nje dritare ku ju shkruani kodin e aplikimit tuaj. Ai ngjan me nje program tekst-trajtues me nje numer cilesish qe e bejne shkrimin e kodit shume te lehte. Dritarja e editorit te kodit, shfaqet ne figuren 5.4. Figure 5.4 Dritarja e editorit te kodit.

- 78 -


MĂŤsimi i gjuhes Visual BASIC Kodi brenda cdo moduli, eshte i ndare ne seksione per cdo objekt qe perfshihet ne modul. Kalimi nga nje seksion ne tjetrin behet me ndihmen e listes se objekteve. Ne nje modul formsi, lista permban nje seksion te pergjithshem, nje seksion per vete formsin dhe nje seksion per cdo kontroll qe ndodhet ne forms. Per nje modul klase, lista permban nje seksion te pergjithshem dhe nje seksion klase. Per nje modul standart lista permban vetem nje seksion te pergjithshem. Cdo seksion kodi, permban disa procedura te ndyshme, qe merren duke perdorur listen e procedurave. Lista e procedurave per nje modul formsi permban nje seksion te vecante per cdo procedure ngjarje per formsin ose kontrollin. Per shembull lista e procedurave per nje kontroll etikete permban seksionet per ngjarjet Change, Click dhe DblClick ndermjet te tjerash. Lista emoduleve klasa liston vetem procedurat ngjarje per vete klasen - Initialize dhe Terminate. Modulet standarte nuk listojne ndonje procedure ngjarje, sepse nje modul standart nuk suporton ngjarje.

Plotesimi automatik i kodit. Visual Basic 5.0 e ben shkrimin e kodit mjaft te thjeshte me cilesine qe ka per te plotesuar automatikisht istruksionet e ndryshme me vetite, ngjarjet dhe argumentat e mundshem. Sapo ju shtypni kodin, editori afishon nje liste zgjedhjesh me veti, metoda apo vlera te mundshme, ne varesi te sintaksave qe pranon Visual Basic. Kur ju shtypni emrin e nje kontrolli, automatikisht shfaqet ne te djathte te emrit nje liste me vetite e vlefshme per kontrollin (Figure 5.5). Shtypni germat e para te vetise, dhe emri i vetise zgjidhet nga lista. Shtypja e tastes tab, e ploteson instruksionin. Figure 5.5

- 79 -


MĂŤsimi i gjuhes Visual BASIC

Ndarja e nje instruksioni ne disa rreshta. Nje intruksion i gjate ne Visual Basic, mund te ndahet ne disa rresht, duke perdoruar karakterin e vazhdueshmerise se rreshtit(nje hapesire e ndjekur nga nje underscore). Duke perdorur kete karakter ju mund ta beni kodin me te lexueshem.Kodi i meposhtem eshte ndare ne tre pjese.: Data1.RecordSource = _ "SELECT * FROM Titles, Publishers" _ & "WHERE Publishers.PubId = Titles.PubID" _ & "AND Publishers.State = 'CA'"

Ne rreshtin e ndare, nuk mund te vendoset nje koment pas karakterit te ndarjes.

Vendosja e disa instruksioneve ne nje rresht

- 80 -


MĂŤsimi i gjuhes Visual BASIC Zakonisht ne Visual Basic, ne nje rresht vendoset nje instruksion, dhe nuk ka simbol te perfundimit te instruksionit(sic jane ne PASCAL ose ne C++ shenja (;) Megjithate ju mund te vendosni me shume se nje instruksion ne nje rresht duke i ndare me karakterin (:) Text1.Text = "Hello" : Red = 255 : Text1.BackColor = _ Red

Vendosja e komenteve ne kod. Sic e keni vene re nepermjet shembujve qe keni pare deri tani, ju mund te vendosni komente te ndryshme ne kodin e aplikimit tuaj. Vendosja e komentit behet duke e paraprire me simbolin ( ‘ ). Ky simbol i tregon Visual Basic-ut te injoroje fjalet qe ndodhen pas tij ne ate rresht. Rregullat standarte te programimit rekomandojne programuesin te vendosi sa me shume komente ne kod, ne menyre qe te jete sa me e lehte nderhyrja ne program me vone. Per shembull 'Ky eshte nje koment. Text1.Text = "Pershendetje!"

' afishon nje pershendetje ne ' kutine e tekstit

Kuptimi i sistemeve te numerimit. Shumica e numrave ne kete liber jane dhjetore(decimal)( me baze 10). Por ne disa raste eshte e pershtatshme te perdoren numrat me baze 16 (hekzadecimal) ose me baze 8 (oktal). Vizual Basic i paraqet numrat hekzadecimal me prefiksin &H dhe numrat oktal me prefiksin &O. Tabela e meposhtme afishon te njejtet numra ne sistemet decimal, oktal dhe hekzadecimal. Decimal 9 15 16 20 255

Oktal &O11 &O17 &O20 &O24 &O377

Hekzadecimal &H9 &HF &H10 &H14 &HFF

Ne pergjithesi nuk eshte e nevojshme te mesohen sistemet oktale dhe hekzadecimale sepse kompjuteri punon me numrat e futur ne cdo sistem, por ne disa raste ju duhet te perdorni psh sistemet hekzadecimale per te vendosur ngjyrat e ekranit apo te kontrolleve etj.

Emertimet ne Visual Basic Kur shkruani nje kod ne Visual Basic, ju deklaroni dhe emeroni shume

- 81 -


Mësimi i gjuhes Visual BASIC elemente(Procedurat Sub ose Funksion, variablat, konstantet e me rradhe). Emrat duhet te plotesojne kushtet: •

Duhet te fillojne me nje germe. • Nuk duhet te permbajne karaktere speciale(karaktere qe tregojne tip te dhenash). •

Nuk duhet te jene me te gjate se 255 karaktere. Emrat e kontrolleve, formseve, klasave dhe moduleve deri ne 40 karaktere.

Nuk mund te jene fjale-kyce te gjuhes..

Formset dhe kontrollet mund te kene te njejten emer me nje fjale-kyce. Psh ju mund te keni nje kontroll me emrin Loop. Por ne kod nuk mund ti referoheni ketij kontrolli ne menyren e zakonshme. Psh ky kod shkakton nje gabim. Loop.Visible = True

' shkakton nje gabim

Per t’ju referuar nje formsi ose kontrolli me emrin e nje fjale-kyce, ju duhet ta cilesoni ate me emrin e formsit ose ta futni emrin e tij brenda kllapave katrore.: MyForm.Loop.Visible = True

' i cilesuar me emrin e formsit

[Loop].Visible = True

' i futur ne kllapa katrore.

Variablat, Konstantet dhe Tipet e te Dhenave Shpesh eshte e nevojshme qe gjate veprimeve te ndryshme, te ruahen vlera te ndyshme perkohesisht. Psh doni te llogaritni disa vlera, ti krahasoni ato, dhe te kryeni veprime te ndryshme me to, ne varesi te rezultateve te krahasimeve. Visual Basic, si edhe gjuhet e tjera te programimit, perdor variablat, per rezervimin ne kujtese te vlerave te ndryshme. Variablat kane nje emer(fjala me te cilen u referoheni nje variabli ne program) dhe nje tip te dhene(qe percakton llojin e te dhenave qe mund te rezervohen ne kete variabel). Gjithashtu perdoren edhe tabelat(vektoret, matricat etj) per te ruajtur nje koleksion te indeksuar te dhenash. Konstantet ruajne gjithashtu te dhena, por keto vlera mbeten konstante gjate ekzekutimit te programit. Perdorimi i konstanteve e ben programin me te lexueshem. Ne menyre implicite Visual Basic perdor tipin Variant te te dhenave, por ka disa tipe te dhenash te vlefshem qe ju lejojne ju te optimizoni shpejtesine e ekzekutimit dhe madhesine e kujteses qe do te zere aplikimi gjate ekzekutimit.

- 82 -


Mësimi i gjuhes Visual BASIC •

Variablat Variablat mund te mendohen si mbajtes memorie te nje vlere te caktuar, qe mund te ndryshohet gjate ekzekutimit te aplikimit. Psh, imagjinoni se po beni nje program per shitjen e molleve. Ju nuk dine cmimin e nje molle, ose sasine e shitur deri ne nje moment te caktuar. Ju mund te perdorni dy variabla per te mbajtur vlerat e panjohura. Le ti quajme ata ApplePrice dhe ApplesSold. Sa here qe ekzekutohet programi, perdoruesi jep vlerat e dy variablave. Per te llogaritur totalin e shitjeve, dhe per ta afishuar ate ne nje kuti teksti te quajtur txtSales, kodi mund te ishte: txtSales.text = ApplePrice * ApplesSold

Shprehja kthen nje total te ndryshem cdo here, ne varesi te vlerave qe fut perdoruesi. Variablat ju lejojne juve te beni llogaritjet pa patur nevoje per te ditur me perpara vlerat. Ne kete shembull, tipi i variablit ApplePrice eshte Currency, dhe tipi i variablit ApplesSold eshte integer.

Rezervimi i te dhenave ne variabla dhe konsultimi i tyre. Per te kryer veprime te ndryshme dhe per t'i dhene nje vlere te caktuar nje variable, perdoret instruksioni i vleredhenies: ApplesSold = 10

' variablit i jepet vlera 10 '

ApplesSold = ApplesSold + 1

' variabli eshte rritur me nje

Deklarimi i variablave Te deklarosh nje variabel, do te thote ta prezantosh kete variabel me programin. Variabli deklarohet me instruksionin Dim, me emrin e variablit mbrapa: Dim emer_variabli [As tip_variabli] Varablat e deklaruar me instruksionin Dim brenda nje procedure, ekzistojne vetem gjate ekzekutimit te procedures. Kur mbaron procedura, variblat “shuhen” nga memorja. Eshte per tu theksuar qe ju nuk mund ti drejtoheni nje variabli ne nje procedure, nga nje procedure tjeter. Per kete aresye ju mund te perdorni te njejtin emer variabli ne procedura te ndryshme, pa shkaktuar konflikte. Nje emer variabli: •

Duhet te fillojne me nje germe. • Nuk duhet te permbajne karaktere speciale(karaktere qe tregojne tip te dhenash).

- 83 -


Mësimi i gjuhes Visual BASIC •

Nuk duhet te jene me te gjate se 255 karaktere. • Nuk mund te jene fjale-kyce te gjuhes. • Duhet te jete unik pergjate kodit ku ai njihet. Instruksioni opsional [As tip-variabli], ju lejon te specifikoni tipin e te dhenes ose te objektit per variablin qe po deklaroni. Tipi i te dhenave percakton tipin e informacionit qe mund te ruaje variabli. Disa tipe te dhenash jane psh: String, Integer dhe Currency. Gjithashtu variablat mund te permbajne edhe objekte ne Visual Basic ose aplikime te tjera. Ka edhe menyra te tjera per te deklaruar variablat: •

Deklarimi i nje variabli ne seksionin Declarations te nje formsi, apo te nje moduli, e ben variablin te vlefshem ne te gjitha procedurat e formsit apo modulit

Deklarimi i nje variabli duke perdorur fjalen celes Public e ben ate te vlefshem ne te gjithe aplikimin • Deklarimi i nje variabli statik duke perdorur fjalen celes Static ruan vleren e tij edhe pasi mbaron ekzekutimi i procedures.

Deklarimi implicit. Ne Visual Basic, nuk eshte e nevojshme deklarimi i nje variabli para perdorimit te tij. Psh ju mund te shkruani nje funksion ku ju nuk keni nevoje te deklaroni variablin TempVal para perdorimit te tij. Function SafeSqr(num) TempVal = Abs(num) SafeSqr = Sqr(TempVal) End Function

Visual Basic krijon automatikisht nje variabel me kete emer, qe mund ta perdorni njesoj sikur ta kishit deklaruar ate. Megjithese kjo mund t’ju duket e pershtatshme, keshtu mund te shkaktohen gabime, nqs ju shtypni gabim emrin e nje varibli. Psh, supozojme se ne funsionin e mesiperm ju shkruat: Function SafeSqr(num) TempVal = Abs(num) SafeSqr = Sqr(TemVal) End Function

Ne pamje te pare, kjo duket njesoj. Por meqenese variabli TempVal eshte shtypur gabim ne rreshtin e dyte, funksioni kthen vleren zero. Kur Visual Basic has nje emer te ri variabli nuk kupton nese ai eshte e nje variabel i ri apo nje variabel ekzistues me emer te shtypur gabim.

- 84 -


Mësimi i gjuhes Visual BASIC Deklarimi eksplicit Per te shmangur problemin e mesiperm, ju mund ta detyroni Visual Basic-un tu paralajmeroje gjithmone kur ju perdorni nje variabel te ri te padeklaruar. Per te deklaruar variablat ne menyre eksplicite: •

Vendosni kete instruksion ne seksionin Declarations te nje moduli forms standart, apo klase. Option Explicit - ose nga menuja Tools zgjidhni Options, klikoni tabin Editor dhe zgjidhni opsionin Require Variable Declaration. kjo ben qe te futet automatikisht instruksioni i mesiperm ne cdo modul por jo ne modulet e krijuara me pare. Nqs do te ishte bere kjo ne shembullin e funksionit SafeSqr, Visual basic do ti konsideronte variablat TempVal dhe TemVal si variabla te padeklaruar dhe do te gjeneronte gabim per sejcilin prej tyre. Keshtu qe do tju duhet te deklaroni variablin TempVal:

Function SafeSqr(num) Dim TempVal TempVal = Abs(num) SafeSqr = Sqr(TemVal) End Function

Ne kete rast Visual Basic do te afishoje nje mesazh gabimi per variablin e shtypur gabim TemVal. Meqenese instruksioni Option Explicit ju ndihmon juve te shmangni gabime te tilla, eshte nje ide e mire perdorimi i tij ne cdo modul.

Kuptimi i jetes se nje variabli. Jeta e nje variabli percakton se ne c’pjese te kodit ai variabel e ruan ekzistencen. Kur ju deklaroni nje variabel brenda nje procedure, vetem kodi brenda kesaj procedure mund te kape ose ndryshoje vleren e ketij variabli. Ky variabel eshte lokal per kete procedure. Ne shume raste eshte e nevojshme perdormi i nje variabli me nje jete me te ”gjate”, per te kapur dhe manipuluar vleren e tij ne te gjitha procedurat e nje moduli. ose ne te gjitha procedurat e aplikimit. Visual Basic ju lejon juve te percaktoni jeten e variablit kur e deklaroni ate. Ne varesi se si eshte deklaruar variabli, varibli mund te kete ekzistence ne nivel procedure(lokal) ose ne nivel moduli.

Variablat e perdorur brenda nje procedure.

- 85 -


MĂŤsimi i gjuhes Visual BASIC Variablat ne nivel procedure, njihen vetem nga procedura ne te cilen deklarohen. Quhen ndryshej edhe variabla lokale. Deklarohen me fjalet-kyce Dim ose Static. Psh: Dim intTemp As Integer -

ose

-

Static intPermanent As Integer

Vlerat ne variablat lokale te deklaruar me Static ekzistojne gjithe kohes se ekzekutimit te aplikimit, ndersa per variablat e deklaruar me Dim, ekzistojne vetem gjate kohes se ekzekutimit te procedures.

Variablat e perdorur brenda nje moduli. Ne menyre implicite, nje variabel ne nivel moduli, eshte i vlefshem per te gjitha procedurat e moduli, por jo per kodet e moduleve te tjera. Ju i deklaroni variablat ne nivel moduli, duke i deklaruar ata me fjalen-kyce Private ne seksionin Declarations ne krye te nje moduli. Psh Private intTemp As Integer

Ne nivel moduli, nuk ka dallim midis Private and Dim, por Private eshte me e preferuar sepse ben kontrast me fjalen kyce Public, dhe e ben kodin me te kuptueshem..

Variablat e perdorur brenda nje moduli. Per ta bere nje variabel nivel-moduli, te vlefshem edhe per modulet e tjera, perdorni fjalen-kyce Public per te deklaruar variablin. Vlerat ne variablat public jane te vlefshme ne te gjitha procedurat e aplikimit tuaj. Si edhe variablat nivel-moduli edhe variablat publik, deklarohen ne seksionin Declarations ne krye te modulit. Psh: Public intTemp As Integer

Shenim Nje variabel publik, nuk mund te deklarohet brenda nje procedure por vetem ne seksionin Declarations ne krye te modulit.

•

Me shume per variablat Perdorimi i disa variablave me te njejtin emer. Nqs ne module te ndyshme perdoren variabla publik me te njejtin emer, eshte e mundur dallimi i tyre ne kod, duke ju referuar atyre me emer moduli dhe variabli. Psh, nqs keni nje variabel publik intX te deklaruar ne Form1 dhe in Module1 ju tju referoheni atyre si Module1.intX dhe Form1.intX per te marre vlerat korrekte. Per te provuar kete futni dy module standarte ne nje projekt te ri dhe vizatoni - 86 -


MĂŤsimi i gjuhes Visual BASIC tre butona komandash ne nje forms. Nje variabel, intX, deklarohet ne modulin e pare standart, Module1. Procedura Test i jep atij vleren: Public intX As Integer

' Deklarohet intX i Module1.

Sub Test() ' Vendos vleren per variablin intX ne Module1. intX = 1 End Sub

Variabli i dyte, qe ka te njejtin emer intX , deklarohet ne modulin e dyte standart Module2. Perseri nje procedure qe quhet test i jep atij vjeren Public intX As Integer

' Deklarohet intX i Module2.

Sub Test() ' Vendos vleren per variablin intX ne Module2. intX = 2 End Sub

Varaibli i trete intX deklarohet ne modulin forms Form1. dhe perseri nje procedure qe quhet Test i jep atij vleren Public intX As Integer

' Deklarohet intX i formsit.

Sub Test() ' Vendos vleren per variablin intX ne forms. intX = 3 End Sub

Sejcila prej ngjarjeve Click te butonave te komandave therret proceduren perkatese Test dhe perdor MsgBox per te afishuar vlerat e tre variablave. Private Sub Command1_Click() Module1.Test

' Therret Test ne Module1.

MsgBox Module1.intX

' Afishon intX e Module1.

End Sub Private Sub Command2_Click() Module2.Test

' Therret Test ne Module2.

MsgBox Module2.intX

' Afishon intX e Module2.

End Sub Private Sub Command3_Click() Test

' Therret Test ne Form1

MsgBox intX

' Afishon intX e Form1.

End Sub

- 87 -


MĂŤsimi i gjuhes Visual BASIC Ekzekutoni aplikimin dhe klikoni sejcilin prej butonave. Do te shikoni referencat e ndryshme tek tre variablat publik. Vini re qe ne ngjarjen klik te butonit te trete, nuk keni nevoje te specifikoni Form1.Test kur therritni proceduren e formsit ose Form1.intX, kur perdorni vleren e variablit te formsit intX. Nqs ka disa variabla me te njejtin emer, Visual Basic merre vlerat e variablave me te afert(me lokale). ne kete rast eshte variabli intX i formsit. Ju mund te keni gjithashtu nje variabel publik me te njejtin emer me nje variabel lokal. Psh, ju mund te keni nje variabel publik me emer Temp dhe pastaj ju mund te keni brenda nje procedure nje variabel me emrin Temp. Referencat tek emri Temp, nga brenda procedures, do te kapin variablin lokal; Referencat tek emri Temp, nga jashte procedures, do te kapin variablin publik. Variablat nivel-moduli mund te kapen nga brenda procedures duke specifikuar emrin e variablit me emrin e modulit. Public Temp As Integer Sub Test() Dim Temp As Integer Temp = 2

' Temp ka vleren 2.

MsgBox Form1.Temp

' Form1.Temp ka vleren 1.

End Sub Private Sub Form_Load() Temp = 1

' vendos 1 tek Form1.Temp.

End Sub Private Sub Command1_Click() Test End Sub

Ne pergjithesi, kur variablat kane emra te njejte, me shume prioritet kane variablat qe jane me shume lokale. Brenda moduleve forms, variablat lokale me te njejtin emer me kontrollet kane me shume prioritet sesa kontrollet. Per t’ju referuar nje kontrolli, emri i tij duhet paraprire nga fjala celes Me. Psh: Private Sub Form_Click () Dim Text1, BackColor ' Assume there is also a control on the form called ' Text1. Text1 = "Variable"

' variabli mbulon kontrollin.

Me.Text1 = "Control"

' duhet cilesuar me fjalen-kyce Me ' per te kapur kontrollin

Text1.Top = 0

' Shkakton nje gabim!

Me.Text1.Top = 0

' duhet cilesuar me Me per te kapur. ' kontrollin.

BackColor = 0

' variabli mbulon vetine.

- 88 -


Mësimi i gjuhes Visual BASIC Me.BackColor = 0

' duhet cilesuar me Me per te kapur. ' vetine e formsit.

End Sub

Perdorimi i Variablave dhe Procedurave me emer te njejte. Emrat e variablave private nivel-moduli dhe publik nivel-moduli mund te bien ne konflikt me emrat e procedurave. Nje variabel ne modul nuk mund te kete te njejtin emer me ndonje procedure ose ndonje tip te percaktuar ne modul. Ai mund te kete te njejtin emer me ndonje procedure publike, me tipet apo variablat e percaktuar ne modulet e tjera. Ne kete rast, kur variabli kapet nga ndonje modul tjeter, duhet specifikuar me emrin e modulit. Eshte ide e mire programimi per te mbajtuar emra te ndryshem variablash. Ne module formsesh, perpiquni te perdorni emra variablash qe jane te ndryshem nga emrat e kontrolleve ne formse. •

Variablat Statike Sic u tha per variablat lokale te deklaruar brenda nje procedure, vlerat e tyre ekzistonin vetem gjate kohes se ekzekutimit te procedures. Megjithate, keto vlera mund te ruhen duke e deklaruar nje variabel si statik. Perdorni fjalenkyce Static per te deklaruar nje ose disa variabla branda nje procedure njesoj sic veprohej me instruksionin Dim. Static Depth

Deklarimi i te gjithe variablave lokale si statike. Per te bere qe te gjthe variablat e nje procedure te jene statik, vendosni fjale-kyce Static ne fillim te kokes se procedures. Psh: Static Function RunningTotal(num)

Kjo ben qe te gjithe variablat e procedures RunningTotal te jene statik, pavaresisht nese jane deklaruar me Static, Dim, Private, ose te deklaruar ne menyre implicite. •

Konstantet Shpesh ju mund tju duhet qe ne kodin tuaj te perdorni vlera te ndryshme konstante. Gjithashtu mund t’ju duhet te perdorni ne kod numra te ndryshem qe eshte e veshtire te mbahen mend. Ne keto raste ju mund te permiresoni lexueshmerine e kodit, duke perdorur konstantet. Nje konstante ka nje emer(zakonisht kuptimplote) qe paraqet nje vlere numerike ose string, qe nuk ndryshon. Ndryshe nga variablat, konstanteve nuk mund tu ndryshohet vlera ose tu jepet nje vlere e re ne kod. Ne Visual Basic Kemi:

- 89 -


Mësimi i gjuhes Visual BASIC •

Konstante te sistemit, qe jane konstantet e deklaruara ne librarite e Visual Basic. Keto konstante mund te afishohen ne dritaren e objekteve. Edhe aplikime te tjera si Microsoft Excel dhe Microsoft Project kane nje liste me konstante qe mund te perdoren me objektet e tyre, me metodat, dhe vetite e tyre. • Konstante simbolike ose te percaktuara nga ju, deklarohen duke perdorur instruksionin Const. Konstantet simbolike, trajtohen me poshte. Ne Visual Basic, emrat e konstanteve jane ne nje format te tille: fillojne me nje prefiks qe tregon librarine ku eshte percaktuar konstantja. Konstantet e percaktuara ne librarine Visual Basic(VB) dhe ne librarine e Aplikimeve te Visual Basic(VBA) fillojne me vb, psh vbTileHorizontal. Konstantet nga libraria e perpunimit te te dhenave fillojne me db, psh dbRelationUnique.

Krijimi i konstanteve personale. Sintaksa per krijimin e nje konstanteje eshte: [Public|Private] Const emerkonstanteje[As tip] = shprehje Argumenti emerkonstanteje eshte nje emer simbolik (rregullat jane njesoj si ato te emerimit te variablave), dhe shprehje perbehet nga konstante string ose numerike dhe operatore aitmetike, por jo emra funksionesh. Nje instruksion Const mund te paraqese nje sasi aritmetike ose date/ore Const conPi = 3.14159265358979 Public Const conMaxPlanets As Integer = 9 Const conReleaseDate = #1/1/95#

Instruksioni Const mund te perdoret edhe per konstante string. Public Const conVersion = "07.10.A" Const conCodeName = "Enigma"

Ju mund te deklaroni me shume se nje konstante ne nje rresht te vetem, te ndara me presje. Public Const conPi = 3.14, conMaxPlanets = 9, _ conWorldPop = 6E+09

Shprehja ne te djathte ne pergjithesi eshte nje konstante, por mund te jete edhe nje kombinim konstantesh me operatore aritmetike: Const conPi = 3.14159265358979 Const conPi2 = conPi * 2

Kur deklaroni konstantet, ju mund ti vendosni ato ne kod, per ta bere ate me te lexueshem: Static SolarSystem(1 To conMaxPlanets)

- 90 -


Mësimi i gjuhes Visual BASIC If numPeople > conWorldPop Then Exit Sub

Jetegjatesia e konstanteve personale. Jetegjatesia e konstanteve eshte e ngjashme me ate te variablave, dhe ndiqen te njejtat rregulla: •

Per te krijuar nje konstante qe ekziston vetem ne nje provedure, deklarohet ai brenda procedures. • Per te deklaruar nje konstante te vlefshme per te gjithe modulin, por jo jashte modulit, deklarohet ne seksionin te modulit. •

Per te deklaruar nje konstante te vlefshme ne te gjithe aplikimin, deklarohet konstantja ne seksionin Declarations te nje moduli standart, me fjalen-kyce Public perpara. Konstantet publike nuk mund te deklarohen ne nje modul formsi ose klase.

Shmangja e cikleve gjate deklarimit te konstanteve. Meqenese sic u tha me lart, kur deklarojme nje konstante mund tu referohemi edhe konstanteve te tjera, duhet patur kujdes qe te mos futemi ne cikel. Cikli mund te ndodhe nqs perdorni dy konstante publike qe u referohen vlerave te njera-tjetres. Per Shembull: ' Ne Modulin 1: Public Const conA = conB * 2 ' e vlefshme ne te gjithe aplikimin ' Ne Modulin 2: Public Const conB = conA / 2 ' e vlefshme ne te gjithe aplikimin

Nqs futeni ne cikel, Visual Basic gjeneron nje gabim kur tentoni te ekzekutoni aplikimin, dhe aplikimi nuk mund te ekzekutohet derisa te zgjidhni problemin e cklit. Per te shmangur krijimin e cikleve, futni te gjitha konstantet ne nje modul te vetem, ose te shumten ne nje numer te vogel modulesh. •

Tipet e te Dhenave. Variablat jane mbajtes te te dhenave, dhe ata kane emer dhe tip te dhenash. Tipi i te dhenave te nje variabli percakton se si jane te vendosura ne memorje bitet e vleres se nje variabli. Kur deklaroni nje variabel, ju mund ti jepni nje tip te dhenash atij. Te gjithe variablat kane nje tip te dhenash qe percakton llojin e te dhenave qe ata mund te ruajne. Ne menyre implicite, variabli eshte i tipit Variant. Ai mund te te paraqese tipe te ndryshme te dhenash ne situata te ndryshme, pa putur nevoje konvertimi.

- 91 -


Mësimi i gjuhes Visual BASIC Deklarimi i Variablave me Tip te Dhenash Perpara perdorimit te nje variabli jo variant, ju duhet te perdorni instruksionet Private, Public, Dim ose Static per ta deklaruar ate si nje tip te caktuar. Psh, instruksionet e meposhtme deklarojne nje tip Integer, Double, String, dhe Currency respektivisht: Private i As Integer Dim Amt As Double Static YourName As String Public BillsPaid As Currency

Nje instruksion deklarimi mund te kombinoje disa deklarime si me poshte: Private i As Integer, Amt As Double Private YourName As String, BillsPaid As Currency Private Test, Amount, J As Integer

Tipet numerike. Visual Basic suporton disa tipe numerike-Integer, Long (long integer), Single, Double, dhe Currency. Duke perdorur nje te dhene numerike, ne pergjithesi zeme me pak vend ne memorje se me tipin Variant. Nqs jeni te sigurte se nje variabel do te ruaje gjithmone numra te plote, pa presje, deklarojeni ate si Integer ose si Long. Veprimet me numrat Integer, jane me te shpejta dhe konsumojne me pak vend te memorje. Ne vecanti jane te perdorshem ne ciklet For...Next Nqs variabli permban numra me presje, deklarojeni ate si variable Single, Double, ose Currency. Tipi Currency mund te permbaje numra me deri 4 shifra ne te djathte te presjes dhe deri 15 shifra pas presjes. Eshte i pershtatshem vecanarisht per llogaritjet monetare. Numrat Single dhe Double jane te nje rangu me te gjere se Currency, por mund te jene objekt i gabimeve te shpeshta. Shenim Numrat me presje mund te shprehen si mmmEeee ose mmmDeee, ku mmm eshte mantisa dhe eee eshte eksponenti (nje fuqi e 10). Vlera me e madhe pozitive e nje numri Single 3.402823E+38, ose 3.4 * 1038; Vlera me e madhe pozitive e nje numri Double eshte 1.79769313486232D+308, ose rreth 1.8 * 10308.

Tipi i te Dhenave Byte. Nqs variabli permban te dhena binare, deklarojeni ate si tabele me te dhena te tipit Byte.(Tabelat trajtohen me vone ne kete kapitull). Te gjithe operatoret qe punojne me numrat Integer, punojne edhe me tipin Byte. Meqenese tipi Byte eshte “tip unsigned” ne rangun 0 - 255, ai nuk mund te paraqese numer negativ.

- 92 -


MĂŤsimi i gjuhes Visual BASIC Tipi i te Dhenave String. Nqs keni nje variabel qe do te mbaje gjithmone nje string dhe kurre numer, ju mund ta deklaroni ate si tip String. Private S As String

Pastaj ju mund ti jepni vlere string ketij variabli, dhe te manipuloni me te duke perdorur funksione te ndryshme: S = "Database" S = Left(S, 4)

Ne menyre implicite, nje variabel String ose nje argument String, eshte nje string me gjatesi te caktuar. Stringu ngushtohet ose zgjerohet sa here qe ne i japim vlere variablit. Por nje variabel string mund te deklarohet me gjatesi te caktuar. Pra mund te specifikohet gjatesi fikse per stringun: String * size Per shembull per te deklaruar nje variabel me gjatesi 50 karaktere kodi do te ishte: Dim EmpName As String * 50 Nqs variabli EmpName permban nje string me te shkurter se 50 karaktere, pjesa bosh mbushet me hapesire. Nqs Nqs variabli EmpName permban nje string me te gjate se 50 karaktere, atehere do te kishim shkurtim te stringut.

Shkembimet ndermjet tipeve Numerike dhe String. Ju mund ti jepni nje variabli numerik vleren e nje variabli string, nqs ky i fundit permban vetem numra. E anasjellta eshte gjithmone e mundur. Psh, vendosni nje buton komandash, nje kuti teksti dhe nje liste ne nje forms. Shkruani kodin e meposhtem ne ngjarjen Click te butonit te komandave, ekzekutoni aplikimin dhe klikoni butonin. Private Sub Command1_Click() Dim intX As Integer Dim strY As String strY = "100.23" intX = strY

' Kalon nje string ne nje variabel ' numerik

List1.AddItem Cos(strY) ' Shton kosinusin e numrit ne stringun e

' listes. strY = Cos(strY)

' Kalon kosinusin ne variablin string

Text1.Text = strY

' variabli string ne kuti teksti.

- 93 -


MĂŤsimi i gjuhes Visual BASIC End Sub

Tipi i te dhenave Boolean. Nqs keni nje variabel qe do te permbaje gjithmone informacion te tipit Vertete/Fallso ose Po/Jo, ju mund ta deklaroni ate te jete i tipit Boolean. Vlera implicite e variablit Boolean eshte False. Ne shembullin e meposhtem, , blnRunning eshte nje variabel Boolean qe ruan nje vlere po/jo Dim blnRunning As Boolean If Recorder.Direction = 1 Then blnRunning = True End if

Tipi i te dhenave Object. Variablat objekt ruhen si adresa 32 biteshe(4-byte) qe u referohen objekteve ne aplikim ose objekteve te aplikimeve te tjera. Nje variabel i deklaruar si Object mund ti referohet nje objekti aktual qe njihet nga aplikimi me instruksionin Set.. Dim objDb As Object Set objDb = OpenDatabase("c:\Vb5\Biblio.mdb")

Kur deklarohet nje variabel object,perpiquni te perdorni kontrolle specifike. (si TextBox ne vend te Control ose, ne rstin e mesiperm, Database ne vend te Object) ne vend te objektit te pergjithshem.

Konvertimi i Tipeve te Dhenave Visual Basic suporton nje sere funksionesh konvertimi qe mund ti perdorni per te konvertuar vlerat nga nje tip ne nje tjeter. Psh, per te konvertuar nje vlere ne Currency, perdorni funksionin CCur: PayPerWeek = CCur(hours * hourlyPay)

Funksioni i konvertimit

Konverton nje shprehje ne

CBool CByte CCur CDate CDbl CInt CLng CSng CStr CVar

Boolean Byte Currency Date Double Integer Long Single String Variant

- 94 -


MĂŤsimi i gjuhes Visual BASIC CVErr

Error

Shenim. Vlerat e parametrave te nje funksioni konvertues, duhet te jene te vlefshme per tu konvetuar ne tipin destinacion, perndryshe ndodh gabim. Psh, nqs tentoni te konvertoni nje Long ne Integer, numri Long duhet te jete brenda kufijve te rangut te tipit Integer.

Tipi i te dhenave Variant. Nje tip variant eshte i vlefshem per te mbajtur te dhena te te gjitha tipeve. Me tipin Variant nuk ka nevoje te behen konvertime ndermjet tipeve. Visual Basic, i ben vete automatikisht konvertimet e nevojshme. Psh: Dim SomeValue

' Variant ne menyre implicite.

SomeValue = "17"

' SomeValue Permban "17" (nje string ' me dy karaktere).

SomeValue = SomeValue - 15

' SomeValue tani permban vleren ' numerike 2

SomeValue = "U" & SomeValue

' SomeValue tani permban ' "U2" (nje string ' me dy karaktere).

Vlera Bosh. Nganjehere keni nevoje te dini nese nje variabel ka marre vlere apo jo. Nje variabel Variant ka vleren Bosh(Empty) perpara se te marre ndonje vlere. Vlera Bosh eshte nje vlere e vecante, e ndryshme nga 0, nga stringu me gjatesi 0 ose nga vlera Null. Ju mund ta testoni vleren bosh me funksionin isEmpty: If IsEmpty(Z) Then Z = 0

Vlera Empty nuk eshte me tek nje variabel, sapo ai ka marre nje here vlere.(qofte edhe 0, string me gjatesi 0 apo Null). Ju mund ta ktheni perseri kete vlere ne nje tip variant me fjalen-celes Empty(duke i dhene variablit vleren Empty)

Vlera Null. Tipi i te dhenave Variant mund te permbaje edhe nje vlere tjeter speciale: Null. Null perdoret kryesisht ne aplikime baza te dhenash, per te treguar te dhena te panjohura ose qe mungojne. Gjithashtu ju mund ti jepni vleren Null nje variabli me fjalen-kyce Null: Z = Null

Mund te perdorni funksionin isNull per te provuar nese vlera e nje variabli - 95 -


MĂŤsimi i gjuhes Visual BASIC eshte Null: If IsNull(X) And IsNull(Y) Then Z = Null Else Z = 0 End If

•

Me shume per tipin Variant. Vlerat numerike ne variablat Variant. Nqs vendosni numra te plote ne nje variabel Variant, Visual Basic perdor menyren e paraqitjes se brendshme me kompakte te mundshme. Pas, nqs vendosni nje numer te vogel pa presje dhjetore, tipi Variant perdor paraqitjen e tipit Integer. Nqs pastaj vendosni nje numer me te madh, Visual Basic, do te perdore paraqitjen e tipit Long nqs numri eshte pa presje dhe te tipit Double nqs numri ka presje. Ndonjehere mund te doni te perdorni nje paraqitje te brendshme specifike per nje numer. Psh, mund te doni qe ne nje variabel Variant te ruani nje numer si Currency per te shmangur ndonje gabim me vone. Visual Basic suporton nje sere funksione konvertimi qe ju mund ti perdorni per te konvertuar vlerat. Per te konvertuar nje vlere ne Currency perdorni funksionin CCur: PayPerWeek = CCur(hours * hourlyPay)

Nqs tentoni te kryeni veprime matematike me ndonje variabel Variant qe nuk permban vlere numerike, do te ndodhe ndonje gabim. Psh ju nuk mund te kryeni ndonje veprim aritmetik me vleren U2, megjithese permban nje karakter numerik. Gjithashtu ju nuk mund te beni ndonje veprim aritmetik me vleren 1040EZ; por ju mund te kryeni veprime me vlerat +10 ose -1.7E6 sepse ato jane vlera numerike. Per kete arsye shpesh ju duhet te percaktoni nese nje varibel Variant permban vlere numerike apo jo. Per kete perdoret funksioni isNumeric: Do anyNumber = InputBox("Jepni nje numer") Loop Until IsNumeric(anyNumber) MsgBox "Rrenja katrore eshte: " & Sqr(anyNumber)

Kur Visual Basic konverton nje paraqitje te brendshme qe nuk eshte numerike(psh nje string qe permban nje numer) ne nje vlere numerike, ai perdor parametrat e vendosur ne Control Panel per te interpretuar ndarjet ne - 96 -


MĂŤsimi i gjuhes Visual BASIC mijeshe, simbolin monetar, simbolin e ndarjes dhjetore etj Psh nqs shteti i vendosur ne Windows Control Panel eshte United States, Canada, ose Australia, keto dy funksione do te kthejne vlere True: IsNumeric("$100") IsNumeric("1,560.50")

Ndersa dy funksionet e meposhtme vleren False. IsNumeric("DM100") IsNumeric("1.560,50")

Vlerat String ne variablat Variant. Ne pergjithesi, ruajtja dhe perdorimi i vlerave String ne tipin Variant, perban disa probleme. Duhet patur kujdes me veprimet me operatorin + sepse mund te jape veprim te padeshiruar. Nqs te dy tipet Variant permbajne vlera numerike, operatori + ben mbledhje aritmetike te vlerave, ndersa nqs te dy variablat permbajne string, operatori + ben bashkim stringjesh. Por nqs njeri variable paraqitet si numer kurse tjetri si situata behet me e komplikuar. Visual Basic, ne fillim tenton te konvertoje stringun ne numer. Nqs konverimi behet me sukses, operatori + ben mbledhje aritmetike; nqs konvertimi nuk behet, gjenerohet nje gabim Type mismatch . Per tu siguruar per bashkimin e dy stringjeve, pavaresisht nga paraqitja e vlerave te dy variablave, perdorni operatorin &. Per shembull, kodi i meposhtem: Sub Form_Click () Dim X, Y X = "6" Y = "7" Print X + Y, X & Y X = 6 Print X + Y, X & Y End Sub

jep kete rezultat ne forms. 67 13

67 67

Vlerat Date/Time ne tipin Variants Variablat Variant, mund te permbajne gjithashtu edhe vlera date/time. Nje sere funksionesh kthejne vlera date/time. Per shembull Funksioni DateSerial kthen numrin e diteve qe kane mbetur ne vit.

- 97 -


Mësimi i gjuhes Visual BASIC Private Sub Form_Click () Dim rightnow, daysleft, hoursleft, minutesleft rightnow = Now

' Now kthen daten dhe oren korente date/time.

daysleft = Int(DateSerial(Year(rightnow) _ + 1, 1, 1) - rightnow) hoursleft = 24 - Hour(rightnow) minutesleft = 60 - Minute(rightnow) Print daysleft & " Ditet e mbetura ne vit." Print hoursleft & " Oret e mbetura ne vit." Print minutesleft & " Minutat e mbetur ne vit." End Sub

Rangu i datave te ruajtura ne variabla Variant eshte 1 Janar 0100 deri ne #1 Dhjetor 9999. Ju mund ti perdorni vlerat date/time ne kod, duke i futur mes shenjave (#), ne te njejten menyre sic futet nje string ne thonjeza(“”). Psh mund te shkruani: If SomeDate > #3/6/93# Then ose: If SomeDate > #3/6/93 1:20pm# Then

Nqs nuk futni pjesen e ores ne nje variabel date/time, Visual Basic shton oren e mesnates(oren kur fillon dita). Nqs nuk futni pjesen e dates ne nje date/time, Visual Basic shton daten 30 Dhjetor 1899. Visual Basic prano formate te ndryshme date dhe ore: SomeDate = #3-6-93 13:20# SomeDate = #March 27, 1993 1:20am# SomeDate = #Apr-2-93# SomeDate = #4 April 1993#

Ne te njejten menyre, sic perdorej funksioni IsNumeric per te percaktuar nese nje variabel Variant permban nje vlere qe mund te konsiderohet numerike, mund te perdorni funksioni isDate per te percaktuar nese nje vlere qe permbahej ne nje variabel Variant mund te konsiderohet si Date apo Ore. Per shembull kodi i meposhtem teston vetine tekst te nje kutie teksti me funksioni isDate. Nqs kutia e tekstit permban tekst qe mund te konsiderohet si date, Visual Basic e konverton tekstin ne nje date dhe llogarit ditet deri ne fund te vitit: Dim SomeDate, daysleft If IsDate(Text1.Text) Then SomeDate = CDate(Text1.Text) daysleft = DateSerial(Year(SomeDate) + _ 1, 1, 1) - SomeDate

- 98 -


Mësimi i gjuhes Visual BASIC Text2.Text = daysleft & " days left in the year." Else MsgBox Text1.Text & " is not a valid date." End If

Tabelat Nqs keni programuar ne gjuhe te tjera, jeni i familjarizuar tashme me konceptin e tabelave. Tabelat ju lejojne juve t’ju referoheni nje serie variablash me te njejtin emer, duke perdorur nje indeks. Kjo ju ndihmon te krijoni kode te shkurtra dhe te thjeshta ne shume situata. Shenim. Tabelat e diskutuara ne kete kapitull jane tabela variablash, te deklaruara ne kod. Ato ndryshojne nga tabelat e kontrolleve qe specifikohen duke vendosur vetine Index te kontrolleve ne dritaren e vetive. Te gjithe elementet e nje tabele kane te njejtin tip te dhenash. Nqs tipi i te dhenave eshte Variant, elementet mund te jene te tipeve te ndryshme. Elementet e tabeles mund te permbajne tipe te ndryshme te dhenash (objekte, stringje, numerike, etj). Ne Visual Basic ekzistojne dy tipe tabelash: tabele me permasa fikse, qe ka gjithmone te njejten madhesi, dhe tabele Dinamike, madhesia e se ciles mund te ndryshoje ne kod.

Percaktimi i elementit te pare dhe te fundit.(tabele me permasa fikse) Gjate deklarimit te nje tabele,ndiqet emri i tabeles nga elementi i fundit ne kllapa. Ky element nuk mund ta kaloje rangun e tipit Long (-2,147,483,648 to 2,147,483,647). Per shembull: Dim Counters(14) As Integer

' 15 elemente.

Dim Sums(20) As Double

' 21 elemente.

per te krijuar nje tabele publike: Public Counters(14) As Integer Public Sums(20) As Double

Deklarimi i pare krijon nje tabele me 15 elemente, me indeks qe leviz nga 0 ne 14. Deklarimi i dyte, krijon nje tabele me 21 elemente me indeks nga 0 ne 20. Indeksi i elementit te pare, ne menyre implicite eshte 0 Per te specifikuar indeksin e elementit te pare, veproni si me poshte. Dim Counters(1 To 15) As Integer

- 99 -


MĂŤsimi i gjuhes Visual BASIC Dim Sums(100 To 120) As String

Ne shembujt e mesiperm indeksi varion nga 1 ne 15 ne tabelen e pare dhe nga 100 ne 120 ne tabelen e dyte.

Tabelat qe permbajne tabela te tjera. Shembulli i meposhtem krijon dy tabela, njera permban numra te plote dhe tjetra Stringje. Pastaj deklarohet nje tabele tjeter Variant, mbushet ajo me tabela me numra te plote dhe me stringje. Private Sub Command1_Click() Dim intX As Integer Dim countersA(5) As Integer For intX = 0 To 4 countersA(intX) = 5 Next intX Dim countersB(5) As String For intX = 0 To 4 countersB(intX) = "hello" Next intX Dim arrX(2) As Variant arrX(1) = countersA() arrX(2) = countersB() MsgBox arrX(1)(2) MsgBox arrX(2)(3) End Sub

Tabelat shumedimensionale Me Visual Basic, ju mund te deklaroni tabela shume dimensionale. Psh, shembulli i meposhtem krijon nje tabele dy-dimensionale 10-me-10, brenda nje procedure: Static MatrixA(9, 9) As Double

Gjithashtu mund te perdoret deklarimi: Static MatrixA(1 To 10, 1 To 10) As Double

ose: Dim MultiD(3, 1 To 10, 1 To 15)

Perdorimi i cikleve per te manipuluar tabelat. Ju mund te perdorni ciklin For..Next, per te bredhur elementet e nje tabele. Psh, instruksionet e meposhtme, inicializojne cdo element te matrices MatrixA me vleren e pozicionit te tij ne tabele: - 100 -


MĂŤsimi i gjuhes Visual BASIC Dim i As Integer, J As Integer Static MatrixA(1 To 10, 1 To 10) As Double For i = 1 To 10 For J = 1 To 10 MatrixA(I, J) = i * 10 + J Next J Next I

•

Tabelat Dinamike. Shpesh here nuk dihen qe ne fillim permasat e nje tabele. Keshtu qe lind nevoja e ndryshimit te madhesise se tabeles ne run-time. Nje tabele dinamike, mund te ridimensionohet ne run-time. Tabelat dinamike jane nga vecorite me te mira te Visual Basic, dhe ju ndihmojne ne manaxhimin e memorjes. Psh, jeni duke perdorur nje tabele me shume elemente, dhe vjen nje moment qe nuk te duhet me e tille, keshtu qe ti mund te lirosh memorjen nga elementet e tepert. Per te krijuar nje tabele dinamike: 1. Deklaroni tabelen me instruksionin Public, Dim ose Static sipas deshires, duke e lene bosh numrin e elmenteve ne kllapa. Dim DynArray() 2.

.Perdorni instruksionin ReDim per te ridimensionuar tabelen: ReDim DynArray(X + 1)

Instruksioni ReDim mund te perdoret vetem ne nje procedure, ndryshej nga instruksioni Dim ose Static. Sintaksa e instruksioni ReDim eshte e njejte me sintaksen e perdorur per deklarimin e tabelave me madhesi fikse. ReDim mund te ndryshoje numrin e elementeve dhe kufirin e siperm dhe te poshtem te indeksit, kurse numri i dimensioneve ne nje tabele nuk ndryshon(pra nqs nje tabele eshte dydimensionale, e tille do te mbetet gjithnje) ReDim DynArray(4 to 12)

Psh, Tabela dinamike Matrix1, eshte krijuar duke e deklaruar ate ne nivel Moduli Dim Matrix1() As Integer

Pastaj ne nje procedure, ridimensionohet. Sub CalcValuesNow () .

- 101 -


MĂŤsimi i gjuhes Visual BASIC . . ReDim Matrix1(19, 29) End Sub

Instruksioni ReDimne shembullin e mesiperm ridimensionon nje matrice 20 x 30 me numra te plote (gjithsej 600 elemente). Gjithashtu numri i elementeve te nje tabele mund te vendoset edhe variabel: ReDim Matrix1(X, Y)

Ruajta e permbajtjes se nje Tabele Dinamike. Sa here qe ekzekutohet instruksioni ReDim, te gjitha vlerat e elementeve te tabeles, humbasin. Visual Basic, rivendos vlerat Empty ne te gjithe elementet(per tabelat Variant), vleren Zero per tabelat numerike, vlerat string me gjatesi zero per tabelat string dhe asgje per tabelat e objekteve. Kjo vlen kur doni ta pergatisni tabelen per te dhena te reja, por shpesh here mund te doni te ndryshoni madhesine e nje tabele pa humbur te dhenat e vendosura ne te. Ju mund ta beni kete duke perdorur instruksionin ReDim me fjalen-kyce Preserve. Per Shembull, mund te rrisni me nje numrin e elementeve duke perdorur funksionin Ubound, pa i humbur te dhenat ekzistuese: ReDim Preserve DynArray(UBound(DynArray) + 1)

Ne nje tabele shumedimensionale, vetem numri i elementeve te dimensionit te fundit mund te ndryshohet kur perdoret instruksioni Preserve; Nqs ju ndryshoni nje nga dimensionet e tjera, shkaktohet gabim run-time. Psh, ju mund te perdorni kodin: ReDim Preserve Matrix(10, UBound(Matrix, 2) + 1)

Kurse kodi me poshte shkakton nje gabim: ReDim Preserve Matrix(UBound(Matrix, 1) + 1, 10)

Procedurat dhe Funksionet. Ju mund ta thjeshtezoni programimin duke e ndare programin ne komponente te vogla. Keto komponente quhen Procedura. Procedurat perdoren per te evituar perseritjen e kodeve te njejta, si llogaritje te shpeshta, manipulime me kontrolle te ndryshme apo veprime me baza te dhenash Dy jane cilesite me te mira te programimit me procedura.

- 102 -


Mësimi i gjuhes Visual BASIC •

Procedurat ju lejojne ta ndani programin ne njesi te vogla logjike, sejcilen prej te cilave mund ta manipuloni me mire se te gjithe programin. • Procedurat e perdorura ne nje program mund te sherbejne si blloqe perberese te programeve te tjera, zakonisht pa modifikime ose me modifikime te vogla. Ne Visual Basic perdoren disa lloje procedurash: •

Procedurat Sub, te cilat nuk kthejne vlere..

Procedurat Function te cilat kthejne nje vlere... • Procedurat Property mund te kthejne dhe te atashojne vlera, dhe te vendosin referenca ne objekte.

Procedurat Sub (Nenprocedurat) Nje nenprocedure eshte nje bllok kodi, qe ekzekutohet ne varesi te nje ngjarjeve. Duke e ndare kodin e nje moduli ne nenprocedura, eshte me e lehte per te gjetur dhe modifikuar kodin e programit me vone. Sintaksa per nje procedura Sub eshte: [Private|Public][Static]Sub emer_procedure (argumente) instruksione End Sub Sa here qe thirret nje procedure, ekzekutohen instruksionet midis fjalevekyce Sub dhe End Sub. Procedurat mund te vendosen ne module standarte, module klase apo formsi. Nenprocedurat ne menyre implicite jane Publike ne te gjitha modulet, gje qe do te thote se ato mund te thirren nga nje modul ne tjetrin.

Procedurat Funksion. Visual Basic suporton nje sere funksionesh te gatshme si Sqr, Cos ose Chr. Por ju mund te perdorni instruksioni Function per te krijuar funksione te reja. Sintaksa per nje procedure funksion eshte: [Private|Public][Static]Function emer_procedure (argumente) [As tip] instruksione End Function Si Nenprocedura edhe funksioni eshte nje procedure e ndare, qe merr argumentet prej nga thirret, kryen nje seri instruksionesh dhe ndryshon

- 103 -


Mësimi i gjuhes Visual BASIC vlerate argumenteve te tij. Ndryshe nga nenprocedura, funksioni mund te ktheje nje vlere tek procedura nga e cila u therrit. Ka tre ndryshime midis nenprocedurave dhe funksineve: •

Ne pergjithesi, ju therritni nje funksion duke futur emrin e kunksionit me argumentet e tij ne te djathte te nje shprehje.(vlera_kthyer = emer_funksioni()). • Funksionet kane tip te dhene, njesoj si edhe variablat. Kjo percakton tipin e vleres se kthyer, ne mungese te specifikimit te tipit, tipi i kthyer do te jete Variant. • Ju ktheni vleren nga funksini, duke i dhene brenda trupit te funksionit vleren emrit te funksionit emer_funksioni dhe pastaj kjo vlere i jepet shprehjes apo variablt vlera_kthyer . Per shembull ju mund te shkruani nje funksion qe llogarit vleren e hipotenuzes se nje trekendeshi kenddrejte, duke ditur vlerat e dy kateteve. Function Hypotenuse (A As Integer, B As Integer) _ As String Hypotenuse = Sqr(A ^ 2 + B ^ 2) End Function

Ju mund te therritni pastaj nje funksion njelloj sic mund te thirrej nje funksin tjeter ne Visual Basic: Label1.Caption = Hypotenuse(CInt(Text1.Text), _ CInt(Text2.Text)) strX = Hypotenuse(Width, Height)

Puna me Procedurat

Krijimi i procedurave te reja. Per te krijuar nje Procedure te re: •

Shtypni nje koke procedure ne dritaren e kodit dhe pastaj shtypni ENTER. Koka e nje procedure mund te jete nje Sub ose Function i ndjekur nga emri. Per shembull, Ju mund te futni nje koke si me poshte: Sub UpdateForm () Function GetCoord () Visual Basic pergjigjet duke e kompletuar proceduren.

Zgjedhja e procedurave ekzistuese.

- 104 -


MÍsimi i gjuhes Visual BASIC Per te shfaqur nje procedure ne modulin korent: •

Zgjidhni "(General)" nga lista e objekteve ne dritaren e kodit, dhe pastaj zgjidhni emrin e procedures nga lista e procedurave. Per te shfaqur nje procedure ne nje modul tjeter:

1

Nga menuja View zgjidhni Object Browser.

Zgjidhni projektin nga kutia Project/Library. 3 Zgjidhni modulin nga lista e klasave Classes, dhe proceduren nga Members of list. 4 Zgjidhni View Definition. 2

Thirrja e procedurave. Teknikat per thirrjen e procedurave variojne, ne varesi te tipit te procedures, vendit te saj, dhe si ajo perdoret ne aplikimin tuaj. Seksionet e meposhtme pershkruajne se si thirren nenprocedurat dhe funksionet.

Thirrja e nenprocedurave. Ka dy menyra per thirrjen e nje nenprocedure: 'Dy instruksionet e meposhtme therrasin proceduren e quajtur MyProc. Call MyProc (FirstArgument, SecondArgument) MyProc FirstArgument, SecondArgument

Thirrja e Funksioneve Zakonisht nje funksion i ndertuar ne Visual Basic thirret njesoj si funksionet e tij te gatshme, qe behet duke perdorur emrin e tij ne shprehje: ' Te gjitha instruksionet me poshte therrasin funksionin ' e quajtuar ToDec. Print 10 * ToDec X = ToDec If ToDec = 10 Then Debug.Print "Out of Range" X = AnotherFunction(10 * ToDec)

Nje funksion mund te thirret edhe njesoj si nenprocedurat: Call Year(Now) Year Now

Thirrja e procedurave nga module te tjera. Procedura publike te nje moduli, mund te thirren nga cdo modul tjeter i projektit. Thirrja behet duke specifikuar edhe modulin qe permban proceduren qe po therritni.

- 105 -


Mësimi i gjuhes Visual BASIC Proceduret ne Formse. Nqs nje procedure qe quhet SomeSub eshte ne nje modul formsi Form1, ju mund ta therritni kete procedure si me poshte: Call Form1.SomeSub(argumente)

Procedurat ne module standarte. Nqs emri i procedures eshte unik, nuk eshte e nevojshme te specifikohet emri i modulit para emrit te procedures. Nqs dy ose me shume module permbajne procedura me emer te njejte, atehere eshte e nevojshme te specifikohet edhe emri i modulit. Nje thirrje e nje procedure qe ekziston ne me shume se nje modul, do te therrase proceduren qe ndodhet ne modulin nga behet thirrja. Psh, me nje procedure te quajtur CommonName ne Module1 dhe Module2, nje thirrje tek CommonName nga Module2 do te ekzekutoje proceduren CommonName ne Module2, dhe jo proceduren CommonName ne Module1. Nqs doni te therritni proceduren CommonName ne Module2 nga Module1, perdorni: Module2.CommonName(argumente)

Kalimi i argumenteve ne nje procedure. Ne pergjithesi, kodi i nje procedure, kerkon ndonje informacion mbi gjendjen e programit per te realizuar veprimet e tij. Ky informacion i kalohet procedures kur ajo thirret, ne forme variablash. Kur nje variabel kalon ne nje procedure, ai quhet argument.

Tipet e te dhenave te argumenteve. Argumentet per procedurat qe ju shkruani jane te tipit variant ne menyre implicite, por ata mund te specifikohen. Psh funksionet e meposhtme, presin nje string dhe nje integer. Function WhatsForLunch(WeekDay As String, Hour _ As Integer) As String ' Kthen nje menu per dreke, ne varesi te dites dhe ores. If WeekDay = "Premte" then WhatsForLunch = "Peshk" Else WhatsForLunch = "Pule e pjekur" End If If Hour > 4 Then WhatsForLunch = "Teper vone" End Function

Kalimi i argumenteve “By Value” - 106 -


Mësimi i gjuhes Visual BASIC Vetem nje kopje e variablit kalohet kur nje argument kalohet me “by value”. Nqs procedura ndryshon vleren, ndryshymet nuk behen ne vete variablin. Perdorni fjalen-kyce ByVal per te treguar qe nje argument kalon me “by value” Per shembull: Sub PostAccounts(ByVal intAcctNum as Integer) .

..... ..... End Sub

Kalimi i argumenteve me reference. Kalimi i argumenteve me reference, ben qe procedura te manipuloje direkt me variablin, me vendin e tij ne memorje. Si rezultat, vlera e variablit mund te ndryshohet direkt nga procedura. Kalimi me reference, eshte implicit ne Visual Basic. Menyra me e thjeshte per te kaluar nje variabel ne nje shprehje eshte duke e futur ate ne kllapa. Psh , per te kaluar nje variabel te deklaruar si Integer ne nje procedure qe pret nje String si argument, ju mund te veproni si me poshte: Sub CallingProcedure() Dim intX As Integer intX = 12 * 3 Foo(intX) End Sub Sub Foo(Bar As String) MsgBox Bar

' vlera e variablit Bar eshte stringu "36".

End Sub

Perdorimi i nje numri te papercaktuar argumentesh. Ne pergjithesi, numri i argumentave ne thirrjen e procedures, duhet te jete i njejte me numrin e tyre ne proceduren e specifikuar. Perdorimi i fjales-kyce ParamArray ju lejon te specifikoni qe nje procedure do te prese nje numer arbitrar argumentesh. Kjo ju lejon juve te shkruani funksione si funksioni Sum: Dim x As Variant Dim y As Integer Dim intSum As Integer Sub Sum(ParamArray intNums()) For Each x In intNums

- 107 -


Mësimi i gjuhes Visual BASIC y = y + x Next x intSum = y End Sub Private Sub Command1_Click() Sum 1, 3, 5, 7, 8 List1.AddItem intSum End Sub

Strukturat e kontrollit ne Visual Basic Strukturat e kontrollit, lejojne programistin per te kontrolluar rrjedhen e ekzekutimit te programit. Megjithese disa programe shume te thjeshta mund te shkruhen pa perdorimin e ketyre strukturave, megjithese ne shume situata rrjedha e ekzekutimit mund te percaktohet nga vete perdoruesi, gjeja me e fuqishme e gjuheve te programimit, vjen nga aftesia e tyre per te ndryshuar rradhen e instruksioneve, duke perdorur strukturat dhe ciklet.

Strukturat e vendimit.. Procedurat Visual Basic, mund te testojne plotesimin e konditave te ndryshme dhe pastaj, ne varesi te rezultatit te testit, te kryejne veprime te ndryshme. Strukturat e vendimit qe suporton Visual Basic jane: •

If...Then • If...Then...Else •

Select Case

If...Then Perdorni strukturen If...Then per te ekzekutuar nje ose disa instruksione te kushtezuara. Ju mund te perdorni nje sintakse nje-rresht ose sintakse multirresht(bllok): If kondite Then instruksion If kondite Then instruksion End If

Kondite eshte zakonisht nje krahasim, por mund te jete edhe ndonje shprehje qe vlereson ne nje vlere numerike. Visual Basic e interpreton kete shprehje si te Vertete ose te Rreme (True/False) ;nje vlere numerike zero

- 108 -


Mësimi i gjuhes Visual BASIC eshte False, dhe ndonje vlere numerike jozero eshte True. Nqs Kondite eshte True, Visual Basic ekzekuton te gjitha instruksionet pas fjales-kyce Then. (Keta dy shembuj jane ekuivalente): If anyDate < Now Then anyDate = Now If anyDate < Now Then anyDate = Now End If

Shenojme qe sintaksa nje-rresht e struktures If...Then nuk perdor instruksion End If. Nqs doni te ekzekutoni me shume se nje instruksion nqs Kondite eshte True, ju duhet te perdorni sintaksen multi-rresht, te perfunduar me End If If anyDate < Now Then anyDate = Now Timer1.Enabled = False

' C’aktivizohet kontrolli Timer.

End If

If...Then...Else Perdorni bllokun If...Then...Else per te percaktuar disa blloqe me instruksione, njeri prej te cileve do te ekzekutohet: If kondite1 Then [bllokinstruksionesh-1] [ElseIf kondite2 Then [bllokinstruksionesh -2]] ... [Else [bllokinstruksionesh -n]] End If Visual Basic ne fillim teston kondite1. Nqs ajo eshte False, Visual Basic vazhdon te testoje kondite2, e keshtu me rradhe, derisa te gjeje nje kondite te vertete. Kur gjendet nje kondite e vertete, Visual Basic ekzekuton bllokun korespondues te instruksioneve dhe pastaj ekzekutohet End If. Ju mund te futni nje bllok instruksionesh Else, qe Visual Basic e ekzekuton nqs asnje nga konditat nuk eshte e vertete If...Then…ElseIf eshte nje rast i vecante i rastit If...Then...Else. Shenojme qe mund te vendoset nje numer blloqesh ElseIf, ose asnje. Ju mund te futni nje bllok Else pavaresisht nese keni perdorur Bllok ElseIf Per shembull, aplikimi juaj mund te kryeje veprime te ndryshme ne varesi te elementit te menuse qe eshte klikuar: Private Sub mnuCut_Click (Index As Integer) If Index = 0 Then CopyActiveControl

' Komanda Cut. ' Thirret nje procedure.

- 109 -


MĂŤsimi i gjuhes Visual BASIC ClearActiveControl ElseIf Index = 1 Then

' Komanda Copy.

CopyActiveControl ElseIf Index = 2 Then

' Komanda Clear.

ClearActiveControl Else

' Komanda Paste. PasteActiveControl

End If End Sub

Select Case Visual Basic suporton strukturen Select Case si nje alternative per If...Then...Else, per te seleksionuar nje bllok instreuksionesh ndermjet disa blloqeve. Nje instruksion Select Case eshte i ngjashem me strukturen If...Then...Else, por e ben kodin tuaj me te lexueshem kur ka shume degezime Nje strukture Select Case punon me nje shprehje te thjeshte testi qe vleresohet nje here, ne krye te struktures. Pastaj Visual Basic krahason rezultatin e kesaj shprehjeje me vlerat e cdo Case ne strukture. Nqs njera nga vlerat korrespondon me vleren e shprehjes test, ekzekutohet blloku korrespondues: Select Case shprehjetesti [Case liste_vlere1 [bllokinstruksionesh-1]] [Case liste_vlere2 [bllokinstruksionesh -2]] . . . [Case Else [bllokinstruksionesh -n]] End Select Cdo liste_vlere eshte nje liste nje apo disa vlerash. Nqs ka me shume se nje vlere ne nje liste te tille, vlerat ndahen me presje. Cdo bllokinstruksionesh permban zero ose disa instruksione. Nqs me shume se nje vlere gjendet ne strukture, atehere vetem blloku i instruksioneve qe lidhet me rastin e pare do te ekzekutohet. Supozojme se ne shembullin e struktures If...Then...Else ju shtuat edhe nje element tjeter ne menune Edit. Ju mund te shtoni edhe nje tjeter ElseIf, ose perdorni strukturen Select Case: Private Sub mnuCut_Click (Index As Integer) Select Case Index

- 110 -


Mësimi i gjuhes Visual BASIC Case 0 CopyActiveControl ClearActiveControl Case 1 CopyActiveControl Case 2 ClearActiveControl Case 3 PasteActiveControl Case Else frmFind.Show End Select End Sub

Shenojme se struktura Select Case vlereson shpehjen nje here ne krye te struktures. Ndersa struktura If...Then...Else mund te vleresoje shprehje te ndryshme ne cdo intruksion ElseIf. Ju mund te zevendesoni nje strukture If...Then...Else me nje strukture Select Case vetem nqs instruksioni If dhe cdo instruksion ElseIf vlereson te njejten shprehje. •

Struktura me cikle. Strukturat me cikle ju lejojne juve te ekzekutoni nje ose disa instruksione ne menyre te perseritur. Strukturat me cikle qe suporton Visual Basic jane: •

Do...Loop

For...Next • For Each...Next

Do...Loop Perdorni nje cikel Do loop per te ekzekutuar nje bllok instruksionesh nje numer te papercaktuar heresh. Ka variante te ndryshme te ciklit Do...Loop, por sejcili vlereson nje shprehje numerike per te percaktuar nese do te vazhdoje apo jo cikli. Ashtu si tek If...Then, kondita duhet te jete nje shprehje me vleren False ose(zero) ose True(jozero). Ne ciklin e meposhtem, instruksioni Do...Loop, ekzekutohet sa here qe kondita eshte e vertete: Do While kondita instruksione Loop Kur Visual Basic ekzekuton kete cikel Do loop,ne fillim testohet kondita. Nqs kondita eshte False (zero), te gjitha instruksionet e ciklit kapercehen pa u ekzekutuar. Nqs ajo eshte True (jozero), Visual Basic ekzekuton

- 111 -


MĂŤsimi i gjuhes Visual BASIC instruksionet dhe pastaj kthehet mbrapsht tek vleresimi i kondites perseri. Ne menyre te njepasnjeshme, cikli mund te ekzekutohet disa here, derisa te plotesohet kondita. Instruksionet e ciklit nuk ekzekutohen asnjehere, nqs kondita ishte False qe ne fillim. Per shembull kjo procedure numeron sa here haset nje string brenda nje stringu tjeter: Function CountStrings (longstring, target) Dim position, count position = 1 Do While InStr(position, longstring, target) position = InStr(position, longstring, target) + 1 count = count + 1 Loop CountStrings = count End Function

Nqs stringu nuk gjendet ne stringun e gjate, atehere funksioni InStr kthen 0, dhe cikli nuk ekzekutohet. Nje variant tjeter i instruksionit Do...Loop ekzekuton ne fillim bllokun e instruksioneve dhe pastaj testohet kondita, pas cdo ekzekutimi. Ky variant na garanton ekzekutimin te pakten nje here te Do instruksione Loop While kondite

Dy variante te tjera qe jane analoge me dy variantet me siper, me perjashtimin qe ato ekzekutohen sa here qe kondita eshte False Cikli kryhet zero ose me shume here Do Until kondite instruksione Loop

Cikli kryhet te pakten nje here Do instruksione Loop Until kondite

.

For...Next Ciklet Do perdoren kur ju nuk e dini sa here do te perseritet cikli. Kur ju e dini se sa here do te perseritet cikli, pra do ta ekzekutoni bllokun e instruksioneve nje numer te caktuar heresh, perdorni ciklin For‌Next loop si zgjidhje me te mire. Ndryshe nga ciklet Do, nje cikel For perdor nje variabel te quajtur numerues, qe rritet ose zvogelohet me nje vlere te caktuar pas cdo perseritjeje te ciklit. Sintaksa eshte: For counter = start To end [Step increment] instruksione Next [numerues]

- 112 -


MĂŤsimi i gjuhes Visual BASIC Argumentet counter, start, end, dhe increment jane te gjithe numerike. Shenim Argumenti increment mund te jete pozitiv ose negativ. Nqs increment eshte pozitiv, start duhet te jete me i vogel ose i barabarte se end ose blloku i instruksioneve ne cikel nuk do te ekzekutohet, nqs increment eshte negativ, start duhet te jete me i madhe ose i barabarte se end ne menyre qe trupi i ciklit te ekzekutohet. Nqs Step nuk eshte specifikuar, atehere increment implicit do te jete 1. Ky kod printon emrat e te gjitha fonteve te vlefshme te ekranit Private Sub Form_Click () Dim i As Integer For i = 0 To Screen.FontCount Print Screen.Fonts(i) Next End Sub

Ne shembullin VCR, Procedura HighlightButton perdor nje cikel For...Next si me poshte: Sub HighlightButton(MyControl As Variant) Dim i As Integer For i = 0 To frmVCR.Controls.Count - 1 If TypeOf frmVCR.Controls(i) Is Shape Then If frmVCR.Controls(i).Name = MyControl Then frmVCR.Controls(i).Visible = True Else frmVCR.Controls(i).Visible = False End If End If Next End Sub

For Each...Next Cikli For Each...Next eshte i ngjashem me ciklin For...Next, por ai perserit nje grup instruksionesh per cdo element ne koleksionin e objekteve, ose ne nje tabele ne vend qe te perseriten blloqet e instruksioneve nje numer te caktuar heresh. Kjo eshte vecanerisht e vlefshme kur ju nuk e dini ekzaktesisht sa elemente jane ne nje koleksion. Sintaksa e ciklit For Each...Next: For Each element In grup instruksione Next element Per shembull, Nenprocedura e meposhtme hap bazen e te dhenave

- 113 -


Mësimi i gjuhes Visual BASIC Biblio.mdb dhe shton emrin e cdo tabele ne nje liste. Sub ListTableDefs() Dim objDb As Database Set objDb = OpenDatabase("c:\vb\biblio.mdb", _ True, False) For Each TableDef In objDb.TableDefs() List1.AddItem TableDef.Name Next TableDef End Sub

Kini parasysh shenimet e meposhtme kur perdorni nje cikel For Each...Next: •

Per koleksionet, element mund te jete vetem nje variabel variant, nje variabel objekt ose nje objekt i listuar ne dritaren e objekteve. • Per tabelat, element mund te jete vetem nje variabel Variant.

Puna me strukturat e kontrollit. Nderfutja e strukturave te kontrollit. Ju mund te vendosni struktura kontrolli, brenda strukturave te tjera te kontrollit(si nje bllok If...Then brenda nje cikli For...Next). Strukturat e kontrollit mund te nderfuten sa nivele te doni. Eshte ide e mire qe strukturat e nderfutura te shtyhen me nga nje TAB per ta bere programin sa me te lexueshem. Per shembull, kjo procedure printon emrat e te gjitha fonteve qe jane te perbashketa per ekranin dhe printerin Private Sub Form_Click() Dim SFont, PFont For Each SFont In Screen.Fonts() For Each PFont In Printer.Fonts() If SFont = PFont Then Print SFont End If Next PFont Next SFont End Sub

Shenojme qe Next i pare mbyll ciklin me te brendshem dhe Next i fundit mbyll ciklin e jashtem.

Dalja nga nje strukture kontrolli. Instruksioni Exit ju lejon juve te dilni direkt nga nje cikel For, nga nje cikel Do, nga nje nenprocedure ose funksion. Sintaksa per instruksionin Exit eshte e thjesht: Exit For mund te futet sa here te doni ne nje cikel For, dhe Exit Do - 114 -


MĂŤsimi i gjuhes Visual BASIC mund te futet sa here te doni ne nje cikel Do. For counter = start To end [Step increment] [bllokinstruksionesh] [Exit For] [bllokinstruksionesh] Next [counter[, counter] [,...]] Do [{While | Until} kondite] [bllokinstruksionesh] [Exit Do] [bllokinstruksionesh] Loop Instruksioni Exit Do perdoret per te gjitha variantet e ciklit Do. Exit For dhe Exit Do perdoren sepse shpesh here duhet te dilet nga cikli imediatisht, pa kryer iteracione te tjera ose instruksione te tjera brenda ciklit. Psh ne shembullin e mesiperm qe printonte fontet e perbashketa te ekranit dhe printerit, kodi krahason fontet e printerit me nje font ekrani te dhene edhe nqs nje font i tille eshte gjetur ne fontet e meparshme te printerit. Nje vesion kodi me efikas mund te bente daljen nga cikli, sapo te gjendet nje font qe e ploteson kushtin e kerkuar. Private Sub Form_Click() Dim SFont, PFont For Each SFont In Screen.Fonts() For Each PFont In Printer.Fonts() If SFont = PFont Then Print Sfont Exit For End If Next PFont Next SFont End Sub

Sic ilustron edhe ky shembull, nje instruksion Exit duhet perdorur gati gjithmone brenda nje instruksioni If ose Select Case, kur keta ndodhen brenda nje cikli.

Dalja nga nje nenprocedure ose funksion. Juve mund t’ju duhet shpesh te dilni nga nje nenprocedure ose funksion. Per kete perdoren instruksionet Exit Sub dhe Exit Function sintaksa e te cileve eshte e ngjashme me sintaksen e Exit For dhe Exit Do. Exit Sub dhe Exit Function perdoren kur procedura ka bere gjithcka qe eshte e nevojshme, dhe mund te kthehet tashme. Psh, nqs doni te ndryshoni

- 115 -


Mësimi i gjuhes Visual BASIC shembullin e mesiperm ne menyre qe te printoje vetem fontin e pare te perbashket te ekranit dhe printerit, perdorni instruksionin Exit Sub: Private Sub Form_Click() Dim SFont, PFont For Each SFont In Screen.Fonts() For Each PFont In Printer.Fonts() If SFont = PFont Then Print Sfont Exit Sub

' Dalje nga procedura..

End If Next PFont Next SFont End Sub

Puna me objektet. Kur krijoni nje aplikim me Visual Basic, ju punoni me objekte work. Ju mund te perdorni objektet qe suporton Visual Basic - si kontrollet, formset dhe objektet e kapjes se te dhenave. Ju mund te perdorni gjithashtu objekte te aplikimeve te tjera, nga aplikimi juaj. Por me Visual Basic, ju mund te krijoni edhe objektet tuaja, dhe te percaktoni vetite dhe metodat per to.

C’jane objektet?

Nje objekt eshte nje kombinim kodi dhe te dhenash, dhe mund te trajtohet si njesi e vetme. Objekti mund te jete pjese aplikimi, si nje kontroll ose forms. Nje aplikim i tere, mund te konsiderohet gjithashtu si objekt.

Nga Vijne Objektet? Cdo objekt ne Visual Basic percaktohet nga nje klase. Dy shembuj te relacioneve midis nje objekti dhe klases se tij e bejne kete me te qarte. •

Kontrollet ne Toolbox ne Visual Basic paraqesin klasat. Objekti i njohura si kontroll, nuk ekziston para se ta vizatoni ne forms. Kur krijoni nje kontroll, ju krijoni nje kopje te klases se kontrollit. Kjo kopje e klases eshte objekti te cilit i referoheni ne aplikimin tuaj. • Formsi me te cilin punoni gjate ndertimit te nderfaqesit eshte nje klase. Ne run-time, Visual Basic krijon nje kopje te klases se formsit. Dritarja e vetive, afishon klasen dhe emrin e objekteve ne aplikimin Visual Basic.

- 116 -


Mësimi i gjuhes Visual BASIC •

Si jane te lidhur objektet me njeri tjetrin? Kur futni dy butona komandash ne nje forms, ata ne fakt jane objekte te ndara, me emrat dhe vetite e tyre. (Command1 dhe Command2), por kane te njejten klase - CommandButton. Gjithashtu ata kane te njejten karakteristike qe jane ne te njejtin forms. Keni pare qe nje kontroll ne nje forms, permbahet nga formsi. Kjo ben qe kontrollet te kene nje fare hierarkike. Per t’ju referuar nje kontrolli, mund t’ju duhet ti referoheni formsit ne fillim, ne te njejten menyre sic mund t’ju duhet te shtypni prefiksin e shtetit ose te qytetit kur beni nje telefonate jashte qytetit. Hierarkia e objekteve percakton se si jane te lidhur objektet me njeritjetrin, dhe si mund t’ju referoheni ju atyre.

Puna me koleksionet e objekteve. Koleksionet e objekteve kane vetite dhe metodat e tyre. Objektet ne nje koleksion konsiderohen si pjesetar te koleksionit. Cdo pjesetar i koleksionit numerohet me nje numer qe fillon nga 0. Ky eshte numri indeks i pjesetarit. Per shembull, koleksioni i kontrolleve permban te gjitha kontrollet ne nje forms, si ne figuren 5.6. Figure 5.6 Koleksion kontrollesh

Te gjitha kontrollet ne nje forms jane ne koleksionin e kontrolleve

- 117 -


Mësimi i gjuhes Visual BASIC Per shembull, kodi i meposhtem manipulon koleksionin e kontrolleve dhe liston emrat e te gjithe pjesetareve ne nje liste. For Each Control In Form1.Controls ' Per cdo kontroll, shtohet emri i tij ne liste. List1.AddItem Control.Name Next Control

Aplikimi i vetive dhe metodave ne pjesetaret e nje koleksioni. Jane dy teknika qe mund te perdoren per t’ju referuar nje pjesetari te nje koleksioni objektesh: •

Specifikoni emrin e pjesetarit. Shprehjet e meposhtme jane ekuivalente: Controls("List1") Controls!List1

Perdorni numrin index te pjesetarit: Controls(3)

Meqenese ju jeni ne gjendje tu adresoheni te gjithe pjesetareve te koleksionit apo edhe nje pjesetari te vetem, ju mund te aplikoni vetite dhe metodate e tyre: ' Vendos vetine Top te kontrollit liste, 200. Controls!List1.Top = 200

-

ose

-

For Each Control In Form1.Controls() ' Vendos vetine Top te cdo pjesetari, 200. Control.Top = 200 Next Control

Koleksione te perbashketa ne Visual Basic Ekzistojne disa raste ne Visual Basic, ku nje objekt permban objekte te tjera. Tabela e meposhtme pershkruan shkurt koleksionet me te perdorshme ne Visual Basic. Koleksioni Pershkrimi Forms Controls Printers

Permban formset e ngarkuara.. Permban kontrollet ne nje forms. Permban objektet e vlefshme te printimit.

Vetia Container Ju mund te perdorni vetine Container pet te ndryshuar mbajtesin e nje

- 118 -


Mësimi i gjuhes Visual BASIC objekti ne nje forms. Kontrollet e meposhtme mund te permbajne kontrolle te tjera: •

Kontrolli Frame • Kontrolli Picture box •

Kontrolli Toolbar

Ky shembull demostron zhvendosjen e butonave te komandave nga nje mbajtes ne nje tjeter ne forms. Hapni nje projekt te ri dhe vizatoni nje kontroll Frame, nje picture box, dhe nje buton komande ne forms. Kodi i meposhtem ne ngjarjen Click te formsit rrit nje variabel(Counter) dhe perdor nje strukture Select Case per te levizur butonin e komandave nga nje mbajtes ne nje tjeter. Private Sub Form_Click() Static intX as Integer Select Case intX Case 0 Set Command1.Container = Picture1 Command1.Top= 0 Command1.Left= 0 Case 1 Set Command1.Container = Frame1 Command1.Top= 0 Command1.Left= 0 Case 2 Set Command1.Container = Form1 Command1.Top= 0 Command1.Left= 0 End Select intX = intX + 1 End Sub

Krijimi i objekteve.

Menyra me e lehte per te krijuar nje objekt eshte duke bere double-click ne nje kontroll ne Toolbox. Megjithate, per te realizuar gjithe funksionalitetin e gjithe objektit ne Visual Basic dhe nga aplikime te tjera, mund te perdorni vecorite e programimit ne Visual Basic, per te krijuar objekte ne run-time. •

Ju mund te krijoni referenca ne nje objekt, me variablat objekte. - 119 -


Mësimi i gjuhes Visual BASIC •

Mund te krijoni objektet tuaj, me modulet klasa.. • Mund te krijoni koleksionet tuaj me objektin koleksion.

Perdorimi i variablave objekte. Pervec funksionit te ruajtes se vlerave, nje variabel mund te perdoret per tu referuar tek nje objekt. Ju mund te atashoni nje objekt tek nje variabel, per te njejten arsye qe atashonit nje vlere tek nje variabel: •

Emrat e variablave jane shpesh te shkurter dhe eshte me lehte te mbahet mend emri se vlera e tij.(ose ne kete rast objekti te cilit i referohen) • Variablat mund ti atashohen objekteve te ndryshme, gjate ekzekutimit te programit. • Referimi ne nje variabel qe permban nje objekt eshte me eficent se seferimi ne menyre te perseritur tek vete objekti. Perdorimi i variablave objekte eshte i ngjashem me perdorimin e variablave, por me nje ndryshim- atashimi i nje objekti tek variabli: •

Ne fillim ju e deklaroni ate: Dim variabel As klase

Pastaj atashoni nje objekt ne te: Set variabel = objekt

Deklarimi i variablave objekte. Ju deklaroni nje variabel objekt, ne te njejten menyre si edhe variablat e tjere, me Dim, ReDim, Static, Private, ose Public. Ndryshimet e vetme jane fjalet-kyce opsionale New dhe orgumenti klase. Sintaksa eshte: {Dim | ReDim | Static | Private | Public} variabel As [New] klase Per shembull, deklaroni nje variabel objekt qe i referohet nje formsi ne aplikimin e quajtur frmMain: Dim FormVar As New frmMain

' Deklaron nje variabel objekt ' te tipit frmMain.

Gjithashtu mund te deklaroni nje variabel objekt qe i referohet ndonje formsi ne aplikim: Dim anyForm As Form

Ne menyre te ngjashme, mund te deklaroni nje variabel objekt qe mund ti referohet ndonje kutie teksti ne aplikimin tuaj: Dim anyText As TextBox

' mund te referohet tek ndonje kuti ' teksti,(por vetem kuti teksti)

- 120 -


MĂŤsimi i gjuhes Visual BASIC Mund te deklaroni gjithashtu nje variabel objekt qe i referohet nje kontrolli te cfaredoshem. Dim anyControl As Control

Shenojme se ju mund te deklaroni nga variabel Forms qe i referohet nje formsi specifik, por nuk mund te deklaroni nje variabel kontroll qe i referohet nje kontrolli specifik. Ju mund te deklaroni nje variabel kontroll qe i referohet nje tipi specifik kontrolli (si TextBox ose ListBox), por jo tek nje kontroll i vecante i ketij tipi (si txtEntry ose List1). Megjithate ju mund te atashoni nje kontroll te vecante te ketij tipi tek variabli kontroll. Per shembull, per nje forms me nje liste qe quhet lstSample, mund te shkruani: Dim objDemo As ListBox Set objDemo = lstSample

Atashimi i variablave objekt. Nje objekt mund te atashohet tek nje objekt variabel me instruksionin Set: Set variable = object Perdorni instruksionin Set kur deshironi qe nje variabel objekt, ti referohet nje objekti. Ndonjehere mund te perdorni variablat objekt, dhe ne menyre te vecante variablat kontrolle, per te thjeshtesuar dhe shkurtuar kodin qe duhet te shkruani. Psh, mund te shkruani nje kod si me poshte: If frmAccountDisplay!txtAccountBalance.Text < 0 Then frmAccountDisplay!txtAccountBalance.BackColor = 0 frmAccountDisplay!txtAccountBalance.ForeColor = 255 End If

Ky kod mund te shkurtohet duke perdorur variablat kontroll: Dim Bal As TextBox Set Bal = frmAccountDisplay!txtAccountBalance If Bal.Text < 0 Then Bal.BackColor = 0 Bal.ForeColor = 255 End If

Tipet objekte specifike dhe te pergjthshme. Variablat objekte specifik duhet te referohen tek nje tip specifik objekti ose klase. Nje forms variabel specifik mud te referohet vetem tek nje forms ne aplikim. Ne menyre te ngjashme, nje variabel kontroll specifik mud te referohet tek vetem nje tip i vecante kontrolli ne aplikimin tuaj si TextBox ose

- 121 -


MĂŤsimi i gjuhes Visual BASIC ListBox. Per te pare nje shembull te kesaj, hapni nje projekt te ri, dhe ne forms vendosni nje kuti teksti. Shtoni kodin e meposhtem ne forms: Private Sub Form_Click() Dim anyText As TextBox Set anyText = Text1 anyText.Text = "Pershendetje" End Sub

Ekzekutoni aplikimin dhe klikoni formsin. Vetia text e kutise se tekstit do te behet the application, and click the form. The Text property of the text box will be changed to "Pershendetje." Variablat objekte te pergjithshem, mund te referohen ne disa tipe specifike objektesh. Nje variabel forms i pergjithshem mund te referohet tek cdo forms ne aplikim.; nje variabel kontroll i pergjithshem mund te referohet tek cdo kontroll i nje formsi cfaredo ne aplikim. Per te pare nje shembull, hapni nje projekt te ri, dhe vendosni disa Frame, etiketa(label) dhe butone komandash ne nje forms, ne nje renditje cfaredo. Shtoni kete kod ne forms: Private Sub Form_Click() Dim anyControl As Control Set anyControl = Form1.Controls(3) anyControl.Caption = "Pershendetje" End Sub

Ekzekutoni aplikimin dhe klikoni formsin. Vetia Caption e kontrollit qe vendoset te tretin ne forms, do te behet "Pershendetje." Generic object Variablat objekte te pergjithshme perdoren kur nuk dihet tipi specifik i variablit objkte te cilit do ti referoheni ne run-time.

Formset si Objekte Formset perdoren ne shumicen e rasteve, per ndertimin e nderfaqesit per aplikimin, por ato jane edhe objekte qe mund te thirren nga module te tjera te aplikimit. Formset jane te lidhura ngushte me modulet klasa. Ndryshimi me i madh ndermjet formseve dhe moduleve klasa eshte se formset mund te jene objekte te dukshme kurse modulet e klasave nuk kane nderfaqes te dukshem.

Shtimimi i metodave dhe vetive. Ju mund te shtoni metodat dhe vetite tuaja tek formset dhe ti kapni dhe manipuloni ato nga module te tjera ne aplikim. Per te krijuar nje metode te re, shtoni nje procedure, te deklaruar duke perdorur Public. ' Metode e re ne Form1 Public Sub LateJobsCount() .

- 122 -


MĂŤsimi i gjuhes Visual BASIC . ' <instruksione> . End Sub

Kete procedure tashme mund ta therrisni nga ndonje modul tjeter duke perdorur instruksionin: Form1.LateJobsCount

Krijimi i nje vetie te re per nje forms mund te jete po aq e thjeshte sa deklarimi i nje variabli publik ne modulin e formsit: Public IDNumber As Integer

Tashme ju mund ti jepni vlere dhe te manipuloni kete vlere nga ndonje modul tjeter duke perdorur instruksionet: Form1.IDNumber = 3 Text1.Text = Form1.IDNumber

Gjithashtu mund te perdoren procedurat Property(procedurat e vetive) per te shtuar vetite tuaja ne nje forms.. Shenim. Mund te thirret nje variabel, nje metode personale, ose te vendoset nje vlere personale ne forms pa e ngarkuar formsin ne memorje. Kjo ju lejon te ekzekutoni kodin e nje formsi, pa e ngarkuar ate ne memorje.

Perdorimin i fjales-kyce New Perdorni fjalen-kyce New per te krijuar nje objekt te ri ashtu sic eshte percaktuar ne kalsen e tij. New mund te perdoret per te krijuar objekte Forms, klasa te percaktuara ne modulet klase, dhe koleksione.

Perdorimin i fjales-kyce New me formset Cdo forms qe ju krijoni gjate ndertimit te nderfaqesit eshte nje klase. Fjalakyce New mund te perdoret per te krijuar objekte te tilla ne run-time. Per te pare kete, vizatoni nje buton komande dhe disa kontrolle te tjera ne nje forms. Vendosni vetine Name te formsit, Sample, ne dritaren e vetive. Shkruani kodin e meposhtem ne ngjarjen Click te butonit te komandave: Dim x As New Sample x.Show

Ekzekutoni aplikimin, dhe klikoni butonin disa here. Mqenese nje forms eshte nje klase me nje interface te dukshem, ju mund te shihni kopjet e saj. Cdo forms ka te njejtet kontrolle, ne te njejtin pozicion ashtu sic u ndertuan ne formsin origjine gjate ndertimit te tij.

- 123 -


MĂŤsimi i gjuhes Visual BASIC Instruksioni New mund te perdoret edhe me instruksionin Set. Shkruani kodin e meposhtem ne ngjarjen Click te nje butoni komandash: Dim f As Form1 Set f = New Form1 f.Caption = "Pershendetje" f.Show

Perdorimi i instruksionit New me instuksionin Set eshte me i shpejte dhe rekomandohet.

Perdorimi i fjales-kyce New me objekte te tjera. Instruksioni New, mund te perdoret per te krijuar koleksione dhe objekte nga klasat qe ju krijoni ne modulet e klasave.Per te shpjeguar me mire kete, le te ilustrojme shembullin e meposhtem. Ky shembull demostron se si instruksioni New krijon instanca te nje klase. Hapni nje projekt te ri, dhe vizatoni nje buton komandash ne nje forms. Nga menuja Project, zgjidhni Add Class Module per te shtuar nje modul klase ne projekt. Vendosni vetine Name te modulit me ShowMe. Kodi i meposhtem ne modulin Form1, krijon nje instance te re te klases ShowMe, dhe therret proceduren qe permbahet ne modulin klase. Public clsNew As ShowMe Private Sub Command1_Click() Set clsNew = New ShowMe clsNew.ShowFrm End Sub

Procedura ShowFrm ne modulin klase, krijon nje instance te re te klases Form1, afishon formsin dhe e minimizon ate. Sub ShowFrm() Dim frmNew As Form1 Set frmNew = New Form1 frmNew.Show frmNew.WindowState = 1 End Sub

Per te perdorur shembullin, ekzekutoni aplikimin dhe pastaj klikoni butonin e komandave disa here. Do te shikoni nje ikone formsi te minimizuar ne sfond.

Perjashtime te instruksionit New. Tabela e meposhtme tregon se cfare nuk mund te behet me instruksionin New.

- 124 -


MĂŤsimi i gjuhes Visual BASIC Nuk duhet perdorur New per te krijuar

Shembull i nje instruksioni qe nuk lejohet

Variabla te tipeve themelore Variabel te nje tipi kontroll te pergjithshem Variabel te nje tipi kontroll specifik Variabel te nje tipi kontroll specifik

Dim X As New Integer Dim X As New Control Dim X As New ListBox Dim X As New lstNames

Kalimi i objekteve ne procedura. Ne Visual Basic, mund te kalohen objekte ne nje procedure. Ne kodin e meposhtem, supozohet se kemi nje forms me nje buton komande: Private Sub Command1_Click() ' thirret procedura Demo, dhe kalohet formsi ne te Demo Form1 End Sub Private Sub Demo(x As Form1) ' Behet qenderzimi i formsit. x.Left = (Screen.Width - x.Width) / 2 End Sub

Eshte e mundshme gjithashtu te kalohet nje objekt ne nje argument me reference, dhe pastaj brenda procedures, vendoset argumenti ne nje objekt tjeter. Per te provuar kete, hapni nje projekt, dhe futni nje forms te dyte. Vendosni nga nje Pikture ne cdo forms. Tabela e meposhtme afishon vlerat e vetive qe duhen ndryshuar: Objekti Piktura ne forms2

Vetia Name Picture

Vlera Picture2 c:\vb\icons\arrows\arw01dn.ico

Procedura Form1_Click therret proceduren GetPicture ne Form2, dhe kalon nje pikture boshe ne te. Private Sub Form_Click() Form2.GetPicture Picture1 End Sub

Procedura GetPicture ne Form2 vendos vetine Picture te piktures Picture2 ne Form2, tek piktura bosh e Form1. Private objX As PictureBox Public Sub GetPicture(x As PictureBox) ' Vendos pikturen e kaluar ne nje variabel objekt. Set objX = x ' Vendos vleren e vetise Picture te piktures se kaluar objX.Picture = picture2.Picture

- 125 -


MĂŤsimi i gjuhes Visual BASIC End Sub

- 126 -


Mësimi i gjuhes Visual BASIC

KAPITULLI 6. Manipulimi i te dhenave Gati te gjitha aplikimet kerkojne rujtje dhe manipulim te dhenash, dhe Visual Basic suporton nje numer strumentesh per keto nevoja, duke perfshire kontrollin data, kontrollin data-bound, objektet e kapjes se te dhenave DAO(data access objects) etj. Shembujt Biblio.vbp Shume kode te ketij kapitulli jane marre nga shembulli i bazes se te dhenave Biblio.vbp. Nqs instaloni aplikimet shembuj, ky aplikim do te instalohet ne nendirektorine \Biblio te direktorise se shembujve te Visual Basic (\Vb\Samples\PGuide). Baza Biblio.mdb e perdorur ne kete aplikim ndodhet ne direktorine kryesore te Visual Basic (\Vb).

Kapja e bazave te dhenave me kontrollin Data. Kontrolli Data mund te perdoret per te krijuar aplikime qe afishojne dhe modifikojne informacion nga shume tipe baza te dhenash, duke perfshire Microsoft Access, Btrieve, dBASE, Microsoft FoxPro®, dhe Paradox. Gjithashtu mund te perdoret per te kapur skedare ne Microsoft Excel, Lotus 1-2-3, dhe skedare teksti ASCII cikur ata te ishin skedare baza te dhenash. Gjithashtu kontrolli Data ju lejon te kapni dhe manipuloni baza te dhenash ODBC (Open Database Connectivity) si SQL Server dhe Oracle. •

Cfare mund te beni me objektin Data. Kontrolli Data mund te perdoret per te krijuar aplikime te thjeshta me baza te dhenash, pa shkruar kode. Ju mund ta perdorni ate gjithashtu duke futur edhe kode ne Visual Basic per te krijuar aplikime me cilesore qe u japin juve nje shkalle te larte kontrolli mbi sjelljen e aplikimit tuaj. Kontrolli Data mund te perdoret per qellimet e meposhtme pa perdorur kode: •

Lidhje me nje baze te dhenash lokale ose te larget.

Hapje te tabele te nje baze te dhenash specifike ose percaktimin e nje grupimi rekordesh bazuar ne instruksionet e gjuhes (SQL).

Kalim fushash te dhenash ne kontrolle te ndryshme me qellim per ti afishuar ose modifikuar vlerat e tyre.

Shtim rekordesh te reja ose modifikim te nje baze te dhenave te bazuar ne ndonje ndryshim qe ju beni ne te dhenat e afishuara ne kontrolle te ndryshme. - 127 -


Mësimi i gjuhes Visual BASIC •

Trajtim gabimesh qe mund te ndodhin gjate futjes se te dhenave • Mbyllje te bazes se te dhenave. Per te krijuar nje aplikim te theshte me baza te dhenash veproni: 1. Shtoni kontrollin data ne nje forms. 2. Vendosni vetite e tij, per te percaktuar bazen dhe tabelen nga te cilat deshironi te merrni informacionin. 3. Shtoni kontrollet (si kuti teksti, lista, dhe kontrolle te tjera qe doni te lidhni me kontrollin data). 4. Vendosni vetite e kontrolleve qe perdorni per afishim per te percaktuar te dhenat dhe fushen qe doni te afishoni.

Vetite e kontrollit Data Si gjithe kontrollet e tjera ne Visual Basic, edhe kontrolli Data ka disa veti qe duhet te vendosen ne dritaren e vetive gjate ndertimit te formsit. Shume nga keto veti, mund te vendosen gjithashtu me kod. Per te perdorur kontrollin Data, te pakten duhet te keni vendosur vetite DatabaseName dhe RecordSource. Sapo te keni vendosur vetine DatabaseName property, Visual Basic do te marre emrat e tabelave dhe kerkesave te vlefshme ne kete baze te dhenash dhe do ti afishoje ato ne listen e mbylluar per vetine RecordSource. Nqs doni te hapni nje baze te jashtme (FoxPro, Btrieve, Paradox, dBASE, Microsoft Excel, Lotus 1-2-3, Text, ose ODBC), duhet te vendosni gjithashtu vetine Connect ne dritaren e vetive. Sapo te zgjidhni nje emer tabele ose kerkese nga lista, ju mund te zgjidhni emrat e fushave qe do te afishoni ne kontrollet e vendosuara ne forms per kete qellim, duke vendosur vetine DataField per kontrollin perkates. •

Krijimi i nje aplikimi te thjeshte me baza te dhenash Procedura e meposhtme ju jep nje pembledhje te shkurter se si perdoret nje kontroll data ne nje aplikim Visual Basic. Shembulli perdor bazen e te dhenave Biblio.mdb. To use the data control in an application 1. Zgjidhni kontrollin data ne Toolbox, dhe vendoseni ne nje forms 2. Ne dritaren e vetive, vendosni vetine Connect ne tipin e bazes qe doni te perdorni. 3. Ne dritaren e vetive, vendosni vetine DatabaseName ne emrin e skedarit ose direktorise tek i cili doni te lidheni. Vendosni vetine RecordSource me emrin e tabeles se bazes qe doni te kapni

- 128 -


MĂŤsimi i gjuhes Visual BASIC Vendosni nje text box ne forms, per te afishuar informacionin e bazes. Ky kontroll do te perdoret per te afishuar dhe modifikuar nje fushe te zgjedhur te bazes se te dhenave. Mund te perdoret gjithashtu edhe ndonje kontroll tjeter, si kuti kontrolli, pikture, etikete, liste, kombo ose gride.

4.

5. Ne dritaren e vetive, vendosni vetine DataSource per Text1 me emrin e kontrollit data (Data1). kjo lidh kutine e tekstit me kete baze. 6.

Shtoni nje etikete(label) dhe vendosni vetine Caption te saj me emrin e fushes qe kutia e tekstit do te afishoje.

7.

Vendosni vetine DataField per Text1 me emrin e fushes ne tabelen e bazes, qe deshironi te afishoni ose modifikoni. Shembulli perdor fushen Title te tabeles Titles.

•

8.

Perseritni hapat 5, 6, 7, dhe 8 per cdo fushe qe doni te kapni ne forms. Ne shembullin tone, jane zgjedhur fushat Title, ISBN, dhe Year Published nga tabela Titles.

9.

Ekzekutoni aplikimin. Mund te perdorni kater butonat shigjete ne kontrollin data per te kaluar ne fillim te te dhenave, ne fund te te dhenave ose nga nje rekord ne tjetrin.

Kuptimi i struktures dhe ndertimit te nje baze te dhenash Kontrolli data ofron nje nderfaqes relacional me skedaret e te dhenave. Nje baze te dhenash relacionale ishte ajo qe permban tabela, te ndertuara nga kolona dhe rreshta. Ne Visual Basic, kolonat quhen fusha, dhe rreshtat quhen rekorde.

Tabelat Nje tabele eshte nje grupim logjik i nje informacioni te vendosur ne rreshta dhe kolona, si ne nje tabele spreadsheet. Per shembull, nje tabele mund te permbaje nje liste me informacion rreth autoreve, si emri, datelindja, adresa dhe fotografia.

Fushat. Cdo kolone ne nje tabele quhet fushe. Tabelat percaktohen nga fushat qe permbajne. Gjate krijimit te bazave te te dhenave, per cdo fushe te tabelave vendoset tipi i te dhenes, gjatesia maksimale dhe atribute te tjera. Fushat mund te permbajne karaktere, numra, ose grafike. Psh, tabela Authors mund te kete ne fushat emri dhe adresa te dhena te tipit karakter, datelindja te tipit date, dhe fotografia e autorit e tipit grafik.

- 129 -


MĂŤsimi i gjuhes Visual BASIC Rekordet Informacioni rreth autoreve te vecante, mbahet ne rreshtat te tabeles qe quhen rekorde. Ne pergjithesi, rekordet e tabelave krijohen te tilla qe dy rekorde te mos jene te njejta. Kjo do te thote qe nuk mud te kete dy autore me te njejtin emer, me te njejten adrese, dhe te njejten ditelindje.

Indekset Per ta shpejtuar kapjen e te dhenave, shumica e bazave te te dhenave perdorin indekse. Indekset e tabelave jane lista te renditura, qe e shpejtojne kerkimin neper tabela. Nqs kerkimi ne nje tabele behet sipas nje indeksi, procesi i kerkimit behet me i lehte dhe me i shpejte.

Structured Query Language (SQL) Kur te dhenat ruhen ne nje baze te dhenash, marrja e tyre eshte e thjeshte duke perdorur nje gjuhe te ngjashme me anglishten, qe quhet Structured Query Language, ose SQL.. Perdoruesi ben kerkesa te ndryshme me SQL. Kjo kerkese quhet query. Baza e te dhenave pergjigjet duke kthyer ndonje rresht nga tabelat qe e ploteson kerkesen e bere. Kerkesa ne pergjithesi perdor emrat e tabelave ku behet kerkimi dhe emrat e fushave qe do te kthehen Per shembull, nje kerkese SQL ne tabelen Authors mund te ishte: "Select Name, Picture from Authors where Date_of_Birth = #2/7/1947# "

Kjo kerkese SQL do te ktheje emrat dhe fotografite e autoreve ditelindja e te cileve eshte 7 Shkurt 1947. Per te dhene nje shpjegim me te qarte per ndertimin dhe strukturen e bazave te dhenave, mund te ekzekutoni aplikimin Visdata(ne menune AddIns) per te ekzaminuar strukturen e bazave ekzistuese dhe per te ekperimentuar krijimin e bazave vete. •

Kuptimi i Grup-Rekordeve(Recordsets) Visual Basic version 5.0 merr dhe afishon rekordet e bazave te dhenave duke perdorur objektin Recordset. Nje objekt Recordset paraqet rekordet ne nje tabele ose rekordet qe krijohen nga ekzekutimi i ndonje kerkese. Tabela e meposhme liston tre llojet e objekteve Recordset objects te vlefshme ne kontrollin Data

Tipi i Recordset Recordset tip-Table

Recordset tip-Dynaset

Pershkrimi (dbOpenTable) Nje grup rekordesh qe paraqesin nje tabele te thjeshte qe mund ta perdorni per te shtuar, ndryshuar ose fshire rekorde. (dbOpenDynaset) Nje grupim dinamik rekordesh qe paraqesin nje tabele ose nje rezultat te nje kerkese qe

- 130 -


MĂŤsimi i gjuhes Visual BASIC

Recordset tip-Snapshot

permban fusha nga nje ose disa tabela. Ju mund te shtoni, ndryshoni ose fshini rekorde nga nje recordset i tipit dynaset-type Recordset, dhe ndryshimet do te reflektohen direkt ne tabelat e lidhura me te (dbOpenSnapshot) Nje kopje statike e nje grupi rekordesh qe mund te perdoren per te kerkuar te dhena ose per te gjeneruar reporte. Nje recordset tip snapshot mund te permbaje fusha nga nje ose disa tabela por nuk mund te modifikohet.

Tipi i objektit recordset mund te percaktohet duke perdorur vetine RecordsetType. Vlera implicite e tij eshte vbDynasetType. Objektet Recordset tip-Dynaset dhe tip-snapshot ruhen ne memorjen lokale. Nqs nuk doni te zgjidhni fusha me shume se nje tabele, dhe po punoni me nje burim jo ODBC, Recordset tip-table mund te jete me eficent te shpejtesi dhe ne perdorim memorje Objektet Recordset te krijuara me kod mund te atashohen ne vetine Recordset te nje kontrolli data, duke perdorur instruksionin Set: Set Data1.Recordset = MyRecordset

Ne menyre te ngjashme, nje objekt Recordset i krijuar nga nje kontroll data mund te afishohet ne nje tjeter kontroll data ne run-time. •

Perdorimi i kontrollit Data-Bound Kontrollet Data-bound jane kontrollet me te cilat ju kapni informacionin ne nje baze te dhenash. Kur nje kontroll lidhet me nje kontroll data, Visual Basic i aplikon vlerat e fushes me te cilen eshte lidhur, nga rekordi korent. Si rezultat kontrolli afishon te dhenat dhe pret ndryshimet tuaja. Nqs ju ndryshoni te dhenat ne nje kontroll bound, keto ndryshime reflektohen automatikisht ne bazen e te dhenave sapo te kaloni ne nje rekord tjeter. Shumica e kontrolleve bound karakterizohen nga tre veti: DataChanged, DataField, dhe DataSource.

Vetia DataChanged

Pershkrimi Tregon kur njevlere e afishuar ne nje kontroll bound ndryshohet Specifikon emrin e nje fushe ne objektin recordset te krijuar nga kontrolli data Specifikon emrin e kontrollit data me te cilin kontrolli bound do te lidhet.

DataField DataSource

- 131 -


Mësimi i gjuhes Visual BASIC

Tipet e kontrolleve Bound Visual Basic suporton nje sere kontrollesh me te cilat mud te lidheni me kontrollin data, si edhe nje sere kontrollesh ActiveX (.ocx) controls (me pare te quajtura kontrolle OLE).

Kontrollet bound standarte. Kontrollet standarte bound qe mund te perdorni me kontrollin data jane(po japim emrat e tyre ashtu sic shfaqen ne ambientin e Visual Basic): • Check box • Image • Label • Picture box • Text box • List box • Combo box

Kontrollet ActiveX Pervec kontrolleve bound standarte, Visual Basic gjithashtu suporton edhe kontrollet e meposhtme ActiveX qe mund te shtohen ne projektet tuaja: • Data-bound list box • • • •

Data-bound combo box MSFlexGrid Apex Data-Bound Grid (DBGrid) MaskedEdit

Per nderfaqesa me te komplikuar, disa nga keto kontrollet ActiveX kane nje sere funksionesh qe ju lejojne juve te afishoni te gjitha rekordet. Ketu futen kontrollet list box, combo box, and MSFlexGrid. Shenim Perpara perdorimit te kontrolleve ActiveX, ju nevoitet te shtoni kontrollet ne projekt, duke perdorur kutine e dialogut References nga menuja Project. Gjithashtu duhet te rregjistroni librarine DAO (Data Access Object) duke perdorur kutine e dialogut References.

Shtimi, modifikimi dhe fshirja e rekordeve Duke perdorur kontrollet data dhe kontrollet bound, mund te shtoni, modifikoni dhe fshini rekorde automatikisht. Per kontrolle me te sakta dhe me fleksibel, mund te shkruani kode ne Visual Basic per kete qelli, duke

- 132 -


MĂŤsimi i gjuhes Visual BASIC perdorur metodat e objektit Recordset.

Shtimi i rekordeve te reja Per te shtuar rekorde ne nje baze te dhenash me kontrollin data, duhet te vendosni vleren e vetise EOFAction me 2, qe ju lejon te shtoni rekorde te reja ne fund te Recordset-it. EOFAction dhe BOFAction jane veti te kontrollit data qe percaktojne se cfare ndodh kur kaloni pas fillimit ose fundit te kontrollit Data. Vlerat e mundshme per vetine EOFAction jane listuar ne tabelen e meposhtme: Vlera e vetise vbEOFActionMoveLast vbEOFActionEOF

vbEOFActionAddNew

Veprimi Eshte perdorur metoda, duke bere rekord aktiv rekordin e fundit ne recordset Ben rekord korent rekordin e pavlefshem (EOF) dhe caktivizon butonin MoveNext button ne kontrollin data Ben te vlefshem rekordin e fundit dhe automatikisht provokon metoden AddNew dhe pozicionon kontrollin data ne rekordin e ri.

0 1

2

Me vetine EOFAction me vlere vbEOFActionAddNew, kur perdoruesi kalon rekordin e fundit, kontrolli data do te krijoje automatikisht nje rekord te ri dhe lejon perdoruesin te fuse te dhena. Nqs nje e dhene e re eshte futur, levizja nga rekordi korent(i ri) do te provokoje automatikisht ruajtjen e rekordit te ri ne baze. Nqs perdoruesi zhvendoset nga rekordi i ri pa futur te dhena, rekordi i ri do te anullohet.

Modifikimi ose fshirja e rekordeve Per te modifikuar ose fshire rekorde duke perdorur kontrollin data, pozicionohuni ne rekordin e deshiruar dhe modifikoni ose fshini ate ne ndonje kontroll bound ne te cilin afishohet. Pasi rekordi eshte modifikuar ose fshire, perdorni kontrollin data per tu zhvendosur ne nje rekord tjeter. Kontrolli data reflekton automatikisht ndryshimin e bere ne rekord.

Perdorimi i kontrolleve Data-Bound List Box dhe DataBound Combo Box. Kontrollet data-bound list box dhe data-bound combo box jane si kontrollet liste dhe kombo te trajtuara me pare, por ka disa ndryshime thelbesore midis tyre, qe i ben ato me fleksibel dhe me te perdorshem per aplikimet me baza te dhenash. Ata mund te mbushen automatikisht me vlerat e nje fushe nga

- 133 -


Mësimi i gjuhes Visual BASIC objekti Recordset i kontrollit data. •

Vendosja e vetive per Data-Bound-et Lista dhe Kombo Ndryshe nga kontrollet e tjera bound, kontrollet data-bound list box dhe databound combo box kane pese veti te vecanta qe percaktojne lidhjen e tyre me bazen. Keto veti jane te listuara ne tabelen me poshte.

Vetia DataSource

Pershkrimi Emri i kontrollit data tek i cili lidhet kontrolli data-bound list box ose data-bound combo box control Emri i nje fushe ne recordsetin e specifikuar nga vetia DataSource. Kjo fushe do te perdoret per te percaktuar cili element ne liste do te ndricohet. Nqs behet nje zgjedhje e re, kjo fushe do te modifikohet kur te kaloni ne nje rekord te ri. Emri i kontrollit data qe do te perdoret per te mbushur listen. Emri i nje fushe ne recordset-in e percaktuar nga vetia RowSource. Kjo fushe duhet te jete e te njejtit tip si edhe DataField qe do te perdoret per te pasqyruar ndryshimet ne liste. Emri i fushes ne recordset-in e specifikuar nga vetia RowSource qe do te perdoret per te mbushur listen.

DataField

RowSource BoundColumn

ListField

Shembull me Data-Bound-in Kombo Shembulli i meposhtem perdor kontrollin data-bound combo box control per te krijuar nje forms per futje te dhenash, per tabelen Titles te bazes se dhenave Biblio.mdb. Ai lejon perdoruesin per te futur tituj te rinj dhe i lidh ata me publikues ekzistues, duke konsultuar nje tabele “lookup” me emrat e te gjithe publikuesve. Kur perdoruesit duhet te fusin emrin e publikuesit, ata mund ta zgjedhin ate ne nje liste. Kur ata zgjedhin nje publikues, kjo vlere e fushes PubID kopjohet ne fushen PubID te tabeles Titles. Per te krijuar nje tabele lookup me kontrollin data-bound combo box 1. Shtoni nje kontroll data-bound combo box dhe dy kontrolle data ne formsin tuaj. 2. Ne dritaren e vetive, vendosni vetite e kontrollit data te pare (Data1) per te krijuar nje recordset tip-table me tabelen Titles.

- 134 -


MĂŤsimi i gjuhes Visual BASIC 3. Vendosni vetite e kontrollit data te dyte (Data2) per te krijuar nje Recordset tip-snapshot nga tabela Publishers, duke perdorur kerkesen e meposhtme: SELECT PubID, Name FROM Publishers ORDER BY PubID

4. Vendosni vetine DataSource per kontrollin data-bound combo box me kontrollin e pare data (Data1). Vetia DataField duhet te vendoset me fushen PubID te tabeles Titles. 5. Vendosni vetine RowSource per kontrollin data-bound combo box me kontrollin e dyte data (Data2). 6. Vendosni vetine BoundColumn per kontrollin data-bound combo box me fushen PubID te tabeles Publishers. Kjo ben qe kontrolli data-bound combo box te perdore fushen PubID te recordset-it te kontrollit te dyte data (Publishers) kur ai azhurnon DataField-in e recordset-it te kontrollit te pare data (Titles). 7. Vendosni vetine ListField me fushen Name te tabeles Publishers. Figura 6.1 shfaq vetite e kontrollit data-bound combo box per kete shembull. Figure 6.1 vetite e kontrollit data-bound combo box per kete shembull

Fushat DataField dhe BoundColumn duhet te jene te njejta, por ne tabela te ndryshme; kjo do te thote qe keto dy fusha duhet te reflektojne nje relacion midis dy tabelave. Kur te ekzekutoni programin, kontrolli data-bound combo box mbushet me nje liste me emra publikuesish. Kur zgjidhni nje nga rekordet e tabeles Titles duke perdorur kontrollin e pare data, do te shikoni qe emri i publikuesit te ketij titulli do te afishohet ne pjesen e tekstit te kontrollit data-bound combo box. Ripoziciononi kontrollin e pare data ne nje rekord tjeter, dhe pastaj kthehuni perseri tek rekordi qe ishit. Do te shihni qe emri i afishuar eshte ndryshuar, gje qe tregon se fusha PubID ne tabelen Titles table tani permban fushen PubID te publikuesit te zgjedhur ne kontrollin data-bound combo box.

Perdorimi i kontrollit DBGrid Kontrolli DBGrid (Apex Data-Bound Grid) eshte nje kontroll i tipit spreadsheet qe afishon nje seri me rreshta dhe kolona qe paraqesin rekordet dhe fushat e nje objekti recordset. Kur te vendosni vetine DataSource te kontrollit DBGrid ne nje kontroll data, kontrolli DBGrid mbushet automatikisht dhe kokat e kolonave merren nga te dhenat e objektit recordset te kontrollit data.. Kjo ju jep nje mjet te shpejte per te naviguar neper rekordet e nje tabele ose kerkese. - 135 -


Mësimi i gjuhes Visual BASIC Perdoruesit mund ti japin focus nje qelize te vecante dhe te modifikoje te dhenat direkt ne qelize. Gjithashtu perdoruesit mund te zgjedhin rreshta te tere, ose qelizat e nje kolone te tere. Gjate ndertimit te kontrollit DBGrid, mund te vendosen gjeresia e kolonave dhe lartesia e rreshtave dhe mund te deklaroni ndonje kolone si te fshehur. Kontrolli DBGrid varet nga dy objekte te tjera: • Objekti Recordset i kontrollit data • Koleksioni i kolonave te kontrollit DBGrid DBGrid eshte aktualisht nje koleksion kolonash, sejcila prej tyre me nje numer variabel rreshtash. Cdo kolone i korespondon nje fushe ne tabelen ose kerkesen e bazes se dhenave, nderkohe qe cdo rresht paraqet nje rekord. Vetia Count e koleksionit te kolonave, percakton numrin e kolonave dhe vetia RecordCount percakton numrin e rreshtave Vetite, Row dhe Col specifikojne qelizen korente ne nje gride. Mund te specifikoni qelizen korente ne kod, ose ate mund ta ndryshoje perdoruesi ne run-time me mouse ose tastat shigjete. Kur perdoruesi ndryshon qelizen korente, kontrolli i data i lidhur me te do te ripozicionohet automatikisht ne rekordin qe permban qelizen. •

Navigimi neper nje Baze me DBGrid Kontrolli DBGrid mund te perdoret per te afishuar dhe naviguar lehtesisht rekordet e nje tabele ose kerkese, dhe kjo mund te realizohet per disa minuta, pa shkruar kode. Perpara se ta perdorni kontrollin DBGrid, duhet te siguroheni se ky kontroll eshte i vlefshem ne projekt. Nqs eshte e nevojshme shtojeni ate duke zgjedhur tabin Controls ne kutine e dialogut Components nga menuja Project. Per te perdorur kontrollin DBGrid per te afishuar dhe naviguar neper nje tabele baze te dhenash, ndiqni hapat: 1. Shtoni nje kontroll data ne nje forms te ri, dhe pastaj vendosni vetite e saj DatabaseName dhe RecordSource ne bazen e te dhenave dhe tabelen qe deshironi te navigoni 2. Shtoni nje kontroll DBGrid ne forms, dhe vendosni vetine e tij DataSource ne kontrollin data qe krijuat. 3. Ekzekutoni aplikimin

- 136 -


Mësimi i gjuhes Visual BASIC •

Veprimet me kontrollin DBGrid ne run-time Kontrolli DBGrid afishon rekordet e tabeles apo kerkeses se lidhur me te, gjate ekzekutimit te programit. Ne cdo rast eshte nje rekord korent, edhe nqs jane zgjedhur disa rreshta. Rekordi korent korespondon me rekordin korent te kontrollit data Ashtu si edhe me kontrollet e tjera bound, nqs ndryshoni nje rekord ose ndonje fushe te rekordit ne DBGrid, tabela apo kerkesa e lidhur me te azhurnohet kur te kaloni ne nje rekord tjeter(ne nje rresht tjeter), duke supozuar qe eshte i azhurnueshem dhe vetia AllowUpdate e kontrollit BDGrid ka vleren True. Perndryshej shkaktohet nje gabim. Nqs vetia RecordSelectors ka vleren True, perdoruesi mund te zgjedhi nje rresht te tere duke klikuar ikonen e zgjedhesit te rekordit per kete rresht.

Zgjedhja e Qelizave, Kolonave, Rreshtave dhe Zonave Kur zgjidhni nje qelize, vetite Col dhe Row marrin vlere te re. Vetite Text dhe Value te objektit Column referojne tek permbajtja e qelizes korente. Te dhenat ne rreshtin e zgjedhur mund te merren duke perdorur vetine Bookmark, qe na jep lidhjen me rekordin korent te tabeles apo kerkeses se lidhur. •

Puna me zonat ne nje kontroll DBGrid Kontrolli DBGrid ju lejon te zgjidhni zona qelizash, si ne nje flete pune te zakonshme. Megjithate nuk suporton ndonje funksionalitet te automatizuar per te punuar me zona. Nqs doni te shtoni funksionalitete te tilla, ju duhet te shkruani kode. Informacioni rreth zonave te zgjedhura, merret ne dy menyra: •

Kolona e pare dhe e fundit e zgjedhjes merren nga vetite SelStartCol dhe SelEndCol. • Markimet e rreshtave te zgjedhur merren nga koleksioni i suportuar nga vetia SelBookmarks. Per shembull, per te fshire nje zone te zgjedhur me rekorde: 1. Bridhni koleksionin SelBookmarks, duke perdorur vetine Count per te percaktuar kufijte e koleksionit. 2. Ne cdo rradhe te ciklit, vendosni vetine Bookmark te objektit recordset te kontrollit data si me poshte: Private Sub DeleteRows_Click () Do While DataGrid1.SelBookmarks.Count <> 0

- 137 -


MĂŤsimi i gjuhes Visual BASIC Data1.Recordset.Bookmark _ = DataGrid1.SelBookmarks(0) Data1.Recordset.Delete Loop End Sub

Manipulimi i rekordeve me kode. Megjithese kontrolli data ofron nje sere funksionesh per manipulimin e nje baze te dhenash pa shkruar kode, shpesh here, per te kryer funsione specifike gjate manipulimit te nje baze te dhenash lind nevoja e kodeve te shkruara, sidomos kur duam te rrisim shkallen e kontrollit dhe te funksionalitetit te te dhenave. •

Navigimi neper rekorde Navigimi ka te beje me levizjen perreth rekordeve ose ndryshimin e rekordit korent ne nje recordset. Tashme keni pare se si kalohet nga nje rekord ne tjetrin, duke perdorur butonat shigjete ne nje kontroll data. Keto shigjeta u korrespondojne ngjarjeve qe ju mund ti perdorni per te kryer te njejtin funksion me kod. Shigjetat e thjeshta ne nje kontroll data u korespondon metodave MoveNext dhe MovePrevious, ndersa shigjetat dyshe u korespondojne ngjarjeve MoveFirst dhe MoveLast.

The Current Record Kontrolli data perdor konceptet e rekordit korent, per te percaktuar se cili rekord ne recordset eshte per momentin i kapshem. Ne nje moment te caktuar vetem nje rekord eshte rekord korent, dhe eshte pikerisht ky rekord qe do te afishohet ne kontrollet e lidhura me kontrollin data. Vetite BOFAction dhe EOFAction te diskutuara tashme me pare ne kete kapitull, ju japin juve disa kontrolle mbi kete gjendje, dhe mund te shkruani edhe kode per te testuar vetite BOF dhe EOF. Gjendja e ketyre dy vetive percakton pozicionin e rekordit korent si ne tabele: Vlerat e vetive BOF/EOF te objektit recordset BOF dhe EOF te dyja False

BOF = True

- 138 -

Kuptimi Shenjuesi i rekordit korent eshte i vlefshem derisa te kaloni pas rekordit te fundit Rekordi korent eshte pozicionuar te krye te te dhenave. Shenjuesi i rekordit korent eshte jo i vlefshem.


Mësimi i gjuhes Visual BASIC EOF = True

Rekordi korent eshte pozicionuar ne fund te te dhenave. Shenjuesi i rekordit korent eshte jo i vlefshem. Nuk ka asnje rekord ne recordset. Shenjuesi i rekordit korent eshte jo i vlefshem.

BOF dhe EOF te dyja True

Zhvendosja ne rekordin e pare ose te fundit. Per tu zhvendosur ne fillim te objektit Recordset, perdorni metoden MoveFirst: Data1.Recordset.MoveFirst

Per tu zhvendosur ne fund te objektit Recordset, perdorni metoden MoveLast: Data1.Recordset.MoveLast

Zhvendosja nga nje rekord ne tjetrin. Metoda MoveNext ben rekordin pasardhes ne recordset si rekord korent. Ne pergjithesi, MoveNext perdoret per te naviguar neper rreshtat e nje recordset-i. Nqs vetite BOFAction EOFAction kane vlere 1 (respektivisht “BOF” dhe “EOF”) ju nuk mund te zhvendoseni me ne kete recordset. Nqs perdorni nje metode Move qe zhvendos BOF ose EOF, Visual Basic gjeneron nje gabim. Per kete arsye, gjate perdorimit te metodes Move duhet te siguroheni duke perdorur nje cikel te vlefshem: ' Supozohet se EOFAction = 1 Do While Data1.Recordset.EOF = False Data1.Recordset.MoveNext ' instruksione qe manipulojne rekordin... Loop

Kalimi ne rekordin paraardhes Metoda MovePrevious ben rekordin paraardhes si rekord korent. Kjo metode punon si metoda MoveNext, me ndryshimin qe ajo e zhvendos rekordin korent drejt fillimit te Recordset-it.

Metoda te tjera per tu zhvendosur neper Recordset Pervec metodave Move te trajtuara me siper, mund te perdoret metoda move me nje argument numer te plote, per tu zhvendosur ne nje numer rreshti specifik para ose pas rekordit korent. Mund te perdoren vetite

- 139 -


Mësimi i gjuhes Visual BASIC AbsolutePosition dhe PercentPosition zhvendosur neper recordset.

te

objektit

Recordset

per

tu

Gjetja e rekordeve specifike Metodat Move ju lejojne te navigoni neper rekordet e nje recordseti, nje e nga nje. Shpesh here lind nevoja te kerkojme per nje rekord te caktuar. Per te lokalizuar rekorde specifike, mund te perdoret metoda Find per objektet recordset te tipit dynaset dhe snapshot Recordset objects, dhe metoden Seek per objektet recordset tip-tabele.

Perdorimi i metodes Find Mund te perdoren metodat e meposhtme per te lokalizuar nje rekord ne nje recordset tip-dynaset ose tip-snapshot. Visual Basic suporton kater metoda Find: •

Metoda FindFirst gjen rekordin e pare qe ploteson kriterin e specifikuar • Metoda FindLast gjen rekordin e fundit qe ploteson kriterin e specifikuar. • Metoda FindNext gjen rekordin pasardhes qe ploteson kriterin e specifikuar. • Metoda FindPrevious gjen rekordin paraardhes qe ploteson kriterin e specifikuar. Metoda Find perdoret duke specifikuar nje kriter kerkimi, qe eshte nje shprehje, emri i nje fushe me vleren perkatese. Per shembull, kodi i meposhtem ilustron se si mund te gjendet rekordi i pare ne tabelen Titles ku fusha AU_ID ka vleren 5: Data1.Recordset.FindFirst "AU_ID = 5"

Perdorimi i metodes Seek. Mund te perdoret metoda Seek per te lokalizuar nje rekord ne nje recordset te tipit tabele, Metoda Seek punon vetem me recordset te tipit tabele, sepse Visual Basic perdor indeksin korent te tabeles, te percaktuar nga vetia index. Sintaksa per metoden Seek eshte: tabele.Seek krahasim, celes1, celes2 ... Ku tabele eshte nje variabel recordset qe referon ne nje tabele neper te cilen po kerkoni. krahasim eshte nje string qe percakton llojin e krahasimit qe po behet, argumentet celesn jane vlerat e fushes celes ne indeksin korent. Tabela e meposhtme liston stringjet e krahasimit qe mund te perdoren me metoden Seek.

- 140 -


Mësimi i gjuhes Visual BASIC Stringu i krahasimit “=” “>=” “>” “<=” “<”

Pershkrimi E barabarte me vleren e specifikuar ne Celes Me e madhe ose e barabarte me vleren e specifikuar ne Celes Me e madhe se vlera e specifikuar ne Celes Me e vogel ose e barabarte me vleren e specifikuar ne Celes Me e vogel se vlera e specifikuar ne Celes

Shembulli i meposhtem perdor nje kontroll data recordseti i te cilit eshte nje tabele me emrin Products, dhe perdor metoden Seek per te lokalizuar rekordin e pare qe permban vleren 1 ne fushen Supplier ID (qe eshte nje fushe indeks jonumerike). Ai ndryshon 1 me 2 dhe ruan ndryshimet me metoden Update. Pastaj kerkohen rekordet e tjera qe e plotesojne kriterin e sprcifikuar: Dim MyTable As Recordset 'vendos objektin data ne variablin Recordset. Set MyTable = Data1.Recordset Percaktohet indeksi korent. MyTable.Index = "Supplier ID" 'kerkohet rekordi. MyTable.Seek "=", 1 Do Until MyTable.NoMatch

' deri ne fund te tabeles

' behet i mundshem modifikimi. MyTable.Edit ' Ndryshihet Supplier ID. MyTable("Supplier ID") = 2 ' Ruhen ndryshimet. MyTable.Update ' Kerkohet rekordi tjeter. MyTable.Seek "=", 1 Loop

Perdorimi i nje shenjuesi per tu pozicionuar ne nje rekord te caktuar Shenjuesit ju lejojne te ruani pozicionin e nje rekordi dhe te ripozicionoheni direkt tek nje rekord specifik. Vetia Bookmark permban nje shenjues ne

- 141 -


MĂŤsimi i gjuhes Visual BASIC rekordin qe ju specifikoni, dhe ju mund te ripozicionoheni tek ky rekord, duke i dhene vetise Bookmark vleren e ruajtur ne kete shenjues. Kjo vlere mund te ruhet ne nje variabel variant ose string. Kodi i meposhtem ripozicionon rekordin korent ne nje shenjues te ruajtur me pare: Dim MyBookMark as Variant MyBookMark = Data1.Recordset.Bookmark

'ruan shenjuesin e ' rekordit korent

Data1.Recordset.MoveFirst

' zhvendoset nga rekordi

Data1.Recordset.Bookmark = MyBookmark

' kthim mbrapesht tek ' pozicioni i ruajtur

•

Azhornimi i rekordeve me kod. Per te azhornuar te dhenat e nje baze te dhenash, baza juaj dhe tabelat qe ajo permban duhet te jene te azhornueshme. Per te percaktuar kete, ekzaminoni vetine Updatable te bazes dhe te recordset-it. Nqs jeni duke perdorur nje Recordset tip-snapshot, rekordet jane te pa azhornueshme. Kodi i meposhtem kontrollon nese nje baze te dhenash mund te azhornohet:

If Data1.ReadOnly = True or Data1.Database.Updatable _ = False Or Data1.Recordset.Updatable = False Then MsgBox "This data cannot be altered" End If

Per te kontrolluar nese nje fushe mund te azhornohet duhet te ekzaminoni vetine Attributes dhe te testoni bitin dbUpdatableField. Per shembull: If Data1.Recordset.Fields("First_Name").Attributes _ And dbUpdatableField = 0 Then MsgBox "This field cannot be altered" End If

Shtimi i rekordeve te reja Kur te keni percaktuar qe baza dhe recordset-i jane te azhornueshme, ju mund shtoni rekorde te reja. Per te shtuar rekorde te reja ne recordsetin tuaj: 1 Krijoni nje rekord te ri bosh, me metoden AddNew. Shenjuesi i rekordit korent ruhet dhe pozicionohet ne rekordin e ri.

- 142 -


MĂŤsimi i gjuhes Visual BASIC 2 Jepni vlerat e fushave te rekordit te ri 3 Ruajeni rekordin e ri me metoden Update. Shenjuesi korent i rekordit restaurohet ne pozicionin e meparshem. Kodi i meposhtem shton nje rekord te ri ne tabelen Titles te bazes Biblio.mdb. Data1.DatabaseName = "Biblio.mdb" Data1.RecordSource = "Titles" Data1.Refresh ' Krijohet nje rekord i ri. Data1.Recordset.AddNew ' Jepen vlerat e fushave. Data1.Recordset("Title") = "Leksione te Visual Basic 5.0" Data1.Recordset("Year Published") = "1998" Data1.Recordset("AU_ID") = 37 Data1.Recordset("ISBN") = "2344456533" Data1.Recordset("PubID") = 43 ' shtohet rekordi. Data1.Recordset.Update

Ne shembullin e mesiperm, fusha PubID referon tek fusha PubID e tabeles Publishers. Kodi juaj duhet te verifikoje qe kjo vlere ekziston ne kete tabele apo jo.

Modifikimi i rekordit korent Per te ndryshuar te dhenat ne nje baze te dhenash, ne fillim duhet te pozicionoheni tek rekordi qe deshironi te modifikoni, dhe pastaj te behen modifikimet e deshiruara ne kontrollin bound te lidhur me te. Per te ruajtur ndryshimet kaloni shenjuesin korent te rekordeve ne nje rekord tjeter, ose perdorni metoden Update si ne shembullin e meparshem Per te modifikuar nje ose disa fusha ne rekordin korent: 1. Pozicionohuni ne rekordin qe doni te modifikoni. 2. Vendosni vlerat e reja ne fushat qe doni te ndryshoni 3. Perdorni metoden Update ose njeren nga metodat Move, Find, ose Seek Kodi i meposhtem tregon se si mund te modifikohen vlerat e fushes PubID ne rekordin e pare. Data1.DatabaseName = "Biblio.mdb" Data1.RecordSource = "Titles" Data1.Refresh

' hapet baza.

Data1.Recordset("PubID") = "12345"

' Ndryshohet vlera.

Data1.Recordset.Update

' Ruhen ndryshimet.

- 143 -


MÍsimi i gjuhes Visual BASIC Ndryshimi i vleres se nje fushe te caktuar. Nje rekordset mund te perbehet nga fusha, ku sejcila prej tyre eshte marre ne tabela te ndryshme. Bashkesia e te gjitha fushave te nje objekti recordset, konsiderohet si koleksion i fushave. Kodi i meposhtem, tregon nje numer menyrash per t’ju referuar nje fushe ne nje koleksion. Data1.Recordset.Fields(0).Value n=0 Data1.Recordset.Fields(n) Data1.Recordset.Fields("FName") string$ = "FName" Data1.Recordset.Fields(string$) Data1.Recordset("FName") Data1.Recordset(n)

' Refers to the value of the first field. ' Indirect reference by field index number. ' Refers to the value of the first field. ' Refers to the value of the FName field. ' Indirect reference by field name. ' Refers to the value of the FName field. ' Fields is the default collection of the ' Recordset, so it can be omitted. ' You can also reference Fields collection ' members by number.

Shembulli i meposhtem tregon se si mund te afishohen vlerat e te gjitha fushave te nje recordseti Dim Fld As Field For Each Fld In Data1.Recordset.Fields MyList.AddItem Fld

' shtohet vlera e fushes ne liste

Next Fld

Fshirja e rekordeve Per te fshire nje rekord te tere, pozicionohuni tek rekordi qe doni te fshini, dhe perdorni metoden Delete. Nqs doni te fshini disa rekorde duhet te perdorni metoden MoveNext per te ndryshuar rekordin korent Nje metode me efikase per fshirjen e disa rekordeve njeheresh eshte duke perdorur nje kerkese SQL DELETE si psh: "DELETE from Titles where [Year Published] < #1/1/1889#"

- 144 -


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.