Sei sulla pagina 1di 241

Page 1 of 239

Page 2 of 239








Visual Basic
Botimi i par






Gjergji Shaska
Electrical and Computer Engineering
Oakland University











Page 3 of 239







Mirserdht n kt botim t gjuhs s programimit n Visual Basic. Ky
tekst sht shkruar jo vetm pr fillestart q po futen n botn e madhe t
programimit, por gjithashtu dhe pr nivelet m t avancuara. Ky grshetim
sht mundsuar nga mnyra e dhnies s aplikimeve, ku shpesh
programet analizohen n detaje. Gjithashtu disa kapituj si: Databases apo
Web Applications, jan shkruajtur n mnyr t till q t pregatisin
lexusin pr t vazhduar me nivele m t avancuara. Ky libr sht i
mbushur me shembuj praktik nga jeta e prditshme, n mnyr q
studentt jo vetm t msojn t programojn n Visual Basic, por
gjithashtu t msojn se ku ti prdorin kto njohuri t fituara gjat studimit
t ktij libri.


Politika sht pr momentin, shkenca sht pr prjetsin
Albert Einstein








Page 4 of 239

Pak Histori rreth Visual Basic


Versioni i par i Visual Basic u krijua n vitin 1991. Arsyeja pse Visual
Basic u b shum shpejt nj prej gjuhve m t prdorshme sht se ai
shkurtoj n mnyr t jashtzakonshme kodin pr aplikime t ndryshme.
Kjo bri t mundur q pr programust ai t bhej shum i plqyer. Nse
m par ata duhet t shkruanin me qindra rreshta n gjuhn C pr nj
programim fare t thjesht, duke prdorur Visual Basic kjo arrihet vetm
n pak rreshta.
N 2002 Microsoft krijoi nj platform t re object-oriented software e
njohur si .NET. Disa prej t rejave q krijoi .NET n teknologji jan:
krijimi i programeve baz t Internetit dhe shrbimet n Web. Me krijimin
e softwarit .NET n 2002 Microsoft krijoi dhe nj version t ri t Visual
Basic i njojtur me emrin VB .NET 2002, Ky version i jepte mundsi
programusit t shkruante aplikime n Web pr platformn .NET.
Megjithse VB .NET ishte nj program shum i avancuar pr kohn, nj
dizavantazh i math ishte se programet e mparshme t shruara n Visual
Basic nuk funksiononin. Duke par kt mangsi Microsoft u mundua t
krijonte dika q mund t realizohej ky kalim, por nuk pati sukses pasi
ndryshimet n VB .NET ishin shum thelbsore.
N 2003 Microsoft krijoi nj version t ri me emrin VB .NET, por nuk pati
ndonj prmirsim t dukshm me versionin e mparshm. N 2005 nj
tjetr version krijohet nga Microsoft me emrin VB .NET 2005, i cili pati
shum prmirsime me versionet e mparshme. Ky libr sht shkruar
pikrisht me kt version, VB .NET 2005.






Page 5 of 239

Nj prshkrim i shkurtr pr do kapitull

Kapitulli 1: Hyrje n programim dhe Visual Basic
N kt kapitull jepet nj hyrje dhe disa nga konceptet baz q
nevoiten, pr t qen nj programus i mir jo vetm n Visual Basic
por dhe n programet e tjer. Ky kapitull sht menduar q t
ndimoj dhe ata t cilt nuk kan ndonj eksperienc t mparshme
me programimin.
Kapitulli 2: Krijimi i aplikimeve
Ju n kt kapitull do t krijoni aplikimin tuaj t par n Visual
Basic. N kt aplikim ju do t shfaqni imazhe grafike n form, do
t prdorni kontrollet dhe do t modifikoni vlerat e tyre.
Kapitulli 3: Variablat
Variablat, constants dhe data types n Visual Basic jan shpjeguar n
kt kapitull. Krijimi i variablave, mnyrat e ndryshme t deklarimit
t tyre, si dhe manipulimi i tyre do t jen disa nga konceptet
kryesore t ktij kapitulli.
Kapitulli 4: Fjalit e kushtzuara
Ky kapitull prqndrohet n shpjegimin e fjalive t kushtzuara. Ju
do t msoni n kt kapitull marrdhniet ndrmjet operatorve dhe
si t kontrolloni rrjedhn e programit duke prdorur fjalit e
kushtzuara If . . . Then, If . . . Else dhe If . . . Then . . . Else. N
vazhdim jan shpjeguar operatort logjik dhe fjalit Select Case.
Kapitulli 5: Fjalit loop
N kt kapitull lexusi do t gjej fjalit q prsriten pr aq koh sa
kushti qndron i vrtet. Nj shpjegim n detaje pr Do While, Do
Until dhe For . . . Next loop do t gjendet n kt kapitull. Fjalit
loop shum shpesh mund t mnjanohon nga prdorimi, por
prdorimi i tyre lehtson shum punn e programusit, kshtu q ato
jo vetm n Visual Basic por n t gjitha gjuht e programimit jan
shum t prdorshme.
Kapitulli 6: Arrays
Page 6 of 239

Ky kapitull diskuton si arrays me nj dimension ashtu dhe arrays me
shum dimensione. Shum teknika programimi duke prdorur arrays
jan dhn n kt kapitull si jan shuma e t gjith elementve t
array, shuma e rreshtave ose kollonave n arrays me dy dimensione,
krkimi i nj vlere n nj array dhe vendosja n rendin rrits e
elementve t array.
Kapitulli 7: Menus
N kt kapitull shpjegohen menut t cilat ne t gjith i prdorim
gjat gjith kohs q prdorim kompiuterin. Ne do t msojm si t
shtojm kto menu n form, t cilat jan shum t prdorshme jo
vetm gjat programimit, por edhe pr vet Visual Basic, pr
shembull File, Edit, View, Project, Help etj.
Kapitulli 8: Databases
Ky kapitull shpjegon konceptet baz n database ku ju do t msoni
si t shfaqni nj tabel database n nj DataGridView dhe t shkruani
aplikime. N kt kapitull do t msoni si ti shfaqni vlerat e database
n list boxes, text boxes, labels dhe combo boxes.
Appendix I: Logical Operators
N kt kapitull tregohen disa nga operatort m kryesor bazuar n
boolean algebra.
Appendix II: ASCII Kod
Ky kapitull do t shpjegoj ASCII Kod i cili prcakon karakteret bazuar n
alfabetin Anglisht. Ai prezanton tekstin n kompjuter, paisjet e komunikimit
dhe paisjeve t tjera q punojn me text. Karakteret ASCII prdoren n ditt
e sotme n t gjith kompiuterat.






Page 7 of 239

Prmbajtja

Kapitulli 1 Hyrje n programim dhe VB
1.1 Sistemi i komjuterit 10
1.2 Kontrolli n VB 17
1.3 Proesi i programimit 18
1.4 Krijimi i programimit n VB 21
Kapitulli 2 Krijimi i Aplikimeve
2.1 Krijimi i aplikimit drejtimi 30
2.2 Kodi pr aplikimin drejtimi 38
2.3 Kodi pr imazhet 47
Kapitulli 3 Variablat
3.1 Krijimi i variablave 50
3.2 Variablat string 55
3.3 Vlerat primitive 59
3.4 Projekti kalkulatori 64
3.5 Llogaritja e mimit pr nj dhom hoteli 68
Kapitulli 4 Fjalit e kushtzuara
4.1 Fjalia if 80
4.2 Krahasimi dhe testimi i string 91
4.3 Fjalit Case 99
4.4 Radio Buttons dhe Check Boxes 102
4.5 Variablat class-level 104
4.6 Projekti antart e palestrs 105
Kapitulli 5 Fjalit Loop
5.1 Fjalit Do While Loop 113
5.2 For . . . Next Loop 118
5.3 Nestet Loop 122
5.4 Input Boxes dhe List Boxes 123
5.5 Projekti kredia pr veturn 131

Page 8 of 239

Kapitulli 6 Arrays
6.1 Array me nj dimension 143
6.2 Arrays shumdimensionale 151
6.3 Random numbers 154
6.4 Sub procedures dhe funksionet me arrays 154
Kapitulli 7 Menus
7.1 Open menu 167
7.2 Save menu 175
7.3 Copy, Paste, Cut, Undo mesus 177
7.4 View TextBox menu 179
7.5 View Images menu 180
7.6 Manipulimi i string 184
7.7 Projekti axhensi turistike 186
Kapitulli 8 Databases
8.1 far sht nj database 201
8.2 Krijimi i database n VB 203
8.3 Structured Query Language 213
Appendix I Hyrje n programim dhe VB 215
Appendix II Hyrje n programim dhe VB 217


Page 9 of 239


KAPITULLI 1

HYRJE N PROGRAMIM DHE VISUAL BASIC

Microsoft Visual Basic sht nj software i cili prdoret pr krijimin e aplikimeve
n Windows. Visual Basic sht zhvilluar nga BASIC, i cili sht krijuar nga
Profesort John Kemeny dhe Thomas Kurts n mesin e viteve 1960. Q ather
shum versione t BASIC jan zhvilluar n GWBASIC, IBM BASICA, Apple
BASIC etj. Apple BASIC sht zhvilluar nga Steve Wozniak, nj ish punonjs i
Hewlett-Packard dhe nj shok i ngusht me Steve Jobs, t cilt s bashku n 1
Prill t 1976 formuan Apple Computer Company.
Me Visual Basic ne mund t krijojm aplikime me grafik windows, dialog boxes,
menus dhe t krijojm aplikime q punojn me data bases. Visual Basic sht nj
gjuh e plqyer nga programusit sepse ajo t krijon mundsin q n nj koh t
shkurtr t krijosh aplikime t rndsishme nga jeta e prditshme. Visual Basic
njihet si nj gjuh relativisht e thjesht pr tu kuptuar nga njerzit, pasi ajo sht
nj high level language. Fillimisht ne do t shpjegojm disa njohuri baz t
hardware dhe software dhe pastaj do t shpjegojm se si aplikimet Visual Basic
jan t organizuara.

1.1 SISTEMI I KOMPIUTERIT

Ne po e fillojm shpjegimin e nj sistem kompiuteri me disa terminologji
thelbsore dhe duke treguar se si sistemi i kompiuterit ndrlidhet.Nj system
kompiuteri sht i ndrtuar nga hardware dhe software. Jan kto dy komponent
q bashkpunojne me njri-tjetrin q na lejojn ne t prdorim kompiuterin.

1.1.1 Hardware
Hardware sht nj komponent fizik i sistemit t kompiuterit. Ai prfshin chips, telat,
keyboards, disks, kabllat, printers, monitors dhe shum paisje t tjera si kto. Ideja sht
Page 10 of 239

q nse ne mund ta prekim fizikisht dhe sht pjes e nj sistemi kompiuteri, ather ai
sht hardware.
Por nj hardwrare nuk mund t kryej asnj funksion pa disa urdhra q i tregojn atij se
far duhet t bj. Nj program sht nj seri urdhrash q hardwari duhet t ndjeki njri
pas tjetrit. Nj program sht ruajtur n memorien e kompiuterit n formn e nj numri
binary q quhet machine instructions. S bashku hardwari dhe software na japin ne
mundsin t zgjidhim probleme t ndryshme nga m t thjeshtt deri te m t
komplikuarit.
N nj sistem kompiuteri prbrsit kryesor t hardwarit jan:
1. Central processing unit (CPU)
2. Input/Output (I/O)
3. Main memory
4. Secondary memory device
Central processing unit (CPU) zbaton t gjitha komandat n nj program. Input/Output
(I/O) si pr shembull keybord, mouse, or monitor na lejon ne si prdorus t prdorim nj
kompiuter. T gjitha programet dhe data jan mbajtur n nj device t quajtur memory e
cila ndahet n dy kategori: main memory dhe second memory. Gjat kohs q CPU
thrret nj program, main memory thrret kt program nga hard disku dhe ky program
qndron n main memory pr aq koh sa ky program sht n prdorim. Secondary
memory device sht vendi ku ruhen softwaret. M i rndsishmi sht hard disku ku
ruhen t gjitha programet e nj kompiuteri. Floppy disk sht i ngjashm me hard diskun
vetm se ruan shum m pak informacione. Por floppy disk ka avantazhin se mund t
lvizet nga kompiuteri n kompiuter sipas nevojs.
Fig. 1.1 tregon se si informacioni lviz prgjat komponentave kryesor n hardware. Le
ta ilustrojm kt me nj shembull. Supozojm se ne duam t thrrasim nj program. Si
tham dhe m lart ky program sht i ruajtur n hard disk. Kur ne i krkojm
kompiuterit t thrrasi kt program, nj kopje e ktij programi sht sjell nga hard
disku n main memory. N kt moment CPU lexon urdhrat nga main memory dhe i
zbaton ato njra pas tjetrs derisa vjen n fund t programit. Gjat ktij proesi
programi mund t paraqesi data edhe n output si pr shembull n monitor. Ky proese
sht shum i rndsishm n mbarvajtjen e puns n nj kompiuter.

Page 11 of 239

Hardware
Hardware
Main
memory
CPU
Hard disk
Floppy disk
Keyboard
Monitor
.
Fig. 1.1 Nj version i thjeshtuar i nj sistem kompiuteri.
Central Processing Unit (CPU)
Computer architecture prshkruan se si prbrsit e kompiuterit jan vendosur s bashku.
N Fig. 1.1 sht paraqitur modeli i arkitekturs s nj kompiuteri. Duke pasur parasysh
dhe Fig. 1.1 (ne sugjerojm ta rishikoni kt figur) dy prbrsit m kryesor n nj
kompiuter jan CPU dhe main memory. Si ne e shpjeguam dhe m par, main memory
ruan programet dhe data q jan n prdorim dhe CPU i zbaton urdhrat e programit njri
pas tjetrit deri sa shkon n fund t tij.

Fig. 1.2 Modeli i arkitekturs n nj kompiuter.
N nj kompiuter t gjitha lvizjet jan te komanduara nga CPU i njojtur ndryshe si truri i
nj kompiuteri. CPU q quhet gjithashtu processor ndahet n dy pjes t mdha: datapath
dhe control unit Fig. 1.3.
Page 12 of 239

Control Unit
Datapath
Arithmetic
Logic Unit
Registers
Processor
CommonBus (address, data, &control)
Memory
Program
Storage
Data
Storage
Output
Units
Input
Units
Figure 1.1 Computer Organization

Fig. 1.3 Organizimi i nj Kompiuteri.
Datapath konsiston n register file dhe n arithmetic logic unit (ALU). Register file
konsiston n nj ose m shum registra, t cilat kan nj pozicion n CPU. Register file e
bn programin t punoj me m shum efikasitet dhe numri i register file ndryshon nga
kompiuteri n kompiuter. T gjitha vepimet arithmetike dhe vlersimet kryhen n ALU.
Kjo (ALU) merr data nga main memori and register file, kryen llogaritjet dhe n se sht
e nevojshme shkruan rezultatin mbrapa n main memori ose registers.
Control unit prmban urdhrat logjike pr hardware. Ai monitoron efikasitetin e ktyre
urdhrave dhe vepron si arbitr n shum drejtime pr burimet e CPU. Program couter
(PC) sht nj regjistr q ka control unit, e cila kontrollon adresn n memorie pr at q
do t ndodh m von. N se do ta prkufizonim n nj mnyr m t thjesht do t thoshim
se PC shikon se far do t ndodh n hapin tjetr.
Input/output Devices
Input jan data t ardhura n nj sistem dhe output jan data q drgohen nga sistemi.
Input devices m t prdorshme jan keyboard dhe mouse. Disa input devices m pak t
prdorshme jan: microfonat t cilt prdoren nga sisteme q interpretojn komanda zri
t thjeshta, scanners q konvertojn tekstin, fotografit, apo grafikt n formn e
lexushme nga makina. Pr output devices m t prdorshme prmendim monitorat dhe
printerat. Disa devices i ofrojn t dyja mundsit input dhe output si p.sh. modems or
network cards. Gjithashtu CPU dhe main memory mund t konsiderohen si I/O devices
pasi ato transferojn data n t dy drejtimet brenda dhe jasht. Input/output dhe secondary
memory devices jan konsideruar peripherials sepse ato operojn n ant e sistemit.
Secondary memory dhe data transfer devices jan konsideruar gjithashtu si I/O devices
sepse ato prezantojn nj burim informacioni si input dhe drgojn informacionin si
output.
Page 13 of 239

Main memory and Second Memory
Memory sht vendi ku software dhe data ruhen. Nj kompiuter mund t prmbaj
semiconductor, magnetic dhe optical memory. Ne do t diskutojm vetm semiconductor
memory t cilat mund t klasifikohen n dy tipe: random acces memory (RAM) dhe read-
only memory (ROM). RAM e cila sht m e njojtur pr ne me kt emr n t vrtet
sht main memory. Main memory i referohet nj memorie fizike q sht brenda n
kompiuter, i cili mund t manipuloj data q ndodhen n main memory. Madhsia e main
memory sht shum e rndsishme sepse ajo prcakton sa programe mund t punojn n
t njjtn koh dhe sa data t lexushme mund t jen t gatshme n nj program. Secili
pozicion n memorie ka nj dhe vetm nj binary numr q quhet address. Kjo ide mund
t konceptohet e njjt me adresat q ne kemi n shtpit tona, ku secila shtpi ka nj dhe
vetm nj adres. N kt mnyr bhet e mundur q postieri t identifikoj se ku duhet
t adresoj do informacion postar. Mbajeni n mendje kt ide, pasi informcioni n
kompiuter lviz n mnyr t ngjashme dhe n do moment duke ju referuar adresave se
ku duhet t ruaj informacionin.
1.1.2 Software
Prpara se ne t fillojm t programojm ne duhet pik s pari t kuptojm disa koncepte
baz t programimit. Nj kompiuter sht nj list e organizur t dhnash, t cilat kur
ekzekutohen bjn q kompiuteri t punoj n nj mnyr t paracaktuar. Programimi
nnkupton krijimin e urdhrave pr kompiuterin pr t kryer nj pun t ciln njerzit do
t shpenzonin nj koh shum t gjat.
Zakonisht njerzit mendojn se kompiuterat CPU (Central Procesing Units) jan shum
inteligjent, n t vrtet ata kuptojn vetm kombinimin e dy numrave: 0 dhe 1. Kt
gjuh ne e quajm machine language, e cila sht shum e vshtir pr tu msuar dhe
quhet primitive language. Fatmirsisht ne kemi programus shum t zot t cilt
shkruajn programe t cilt perkthejn gjuhn e njerzve n gjuhn e kompiuterit. Kto
gjuh quhen high level language si jan Fortrain, Visual Basic, Cobol, Java, C, C++,
VHDL dhe shum e shum gjuh t tjera.
Fortran prdoret pr prkthime formulash, zakonisht n aplikime n shkenca dhe
inxhinjeri dhe sht krijuar nga IBM n vitin 1954. COBOL prdoret n fushn e
biznesit, i cili u krijua nga nj grup kompiuteriksh n industri n 1959. C sht krijuar
nga Dennis Richie n 1972 dhe u prdor n zhvillimin e sistemit operator UNIX. C++
sht nj program m i zgjeruar se C, i cili u krijua nga Bjarne Stroustrup n 1980. JAVA
sht nj program relativisht i ri, por nj prej m t prdorurve n ditt e sotme. Ai u
krijua nga Sun Mcrosystems n 1995, i cili sht nj zgjerim i C++ duke prfshir
librarin pr disa media, networking, grafik, akses n databas, programim n GUI.
Microsofti krijoi versionin e tij n Java, i cili quhet Visual J++.
Page 14 of 239

Software mund t klasifikohetn n shum kategori por ne tani po prqndrohemi vetm
tek system programs dhe application programs. Operating systems or OS jan disa
programe t cilat menaxhojn nj kompiuter. Ai i lejon prdoruesit t komunikoj me nj
kompiuter dhe menaxhon at. Gjithashtu ai prcakton kur programet jan t lejuara t
thrriten, kur ato jan n main memory, dhe si hardware komunikon. Kjo sht puna e
operating systems; t bj punn e kompiuterit m t leht dhe t siguroj q sht duke
punuar me efienc.
Sot n prdorim jan disa operating systems por m t prdorshmit jan Windows 2000,
Windows XP dhe Vista q jan versione t Microsoft. Disa versione t Unix operating
systems jan gjithashtu shum popullor, sidomos n kompiutera shum t mdhenj.
Linux sht nj version i Unix q sht nj open source q nnkupton q shum njerz
kan kontribuar pr t dhe kodi i tij afrohet pr kdo falas. Kjo sht nj nga arsyet q
Linux po bhet gjithmon dhe m shum nj favorit i fort. Nj tjetr operating system is
Mac OS q sht i prdorur nga Apple kompiuters.
Nj aplikation sht nj trm q prdoret jo vetm pr operating system por pr do
software. Application software jan programet t cilat e bjn kompiuterin m t
prdorshm pr prdoruesin. Database managers, Web browsers, lojrat dhe shum t tjera
mund t konsiderohen application programs.
Graphical user interface (GUI) sht nj prej sistemeve pr shumicn e operating
systems. Graphical user interface (GUI) na jep mundsine ne t krijojm paraqitje grafike
t ndryshme n ekran. Disa nga kto elemente jan.
1. Windowns, q prdoret t ndaj ekranin ne hapsira t ndryshme.
2. Icons, q jan imazhe t vogla q paraqesin burimet e kompiuterit, si p.sh. nj file.
3. Pull-down menus, q i jep mundsin prdorusit t zgjeth nga nj list me
opsione.
4. Buttons, q mund t klikosh me nj mouse pr t treguar nj zgjedhje t
perdorusit.
N disa pjes t veanta t ktij libri jan t krkuara disa njohuri baz si, digital
computers apo binary numbers. Ne po japim shkurtimisht iden e ktyre dy koncepteve
por nuk po futemi n detaje, pasi ato konsiderohen koncepte jasht qllimit t ktij libri.
Gjenden dy teknika baz pr t ruajtur dhe menaxhuar data n nj kompiuter: analog dhe
digital. Analog sht nj informacion i cili sht i vazhdushm ose i thn n fjal t tjera
pr do koh (t) ne jemi n gjendje t prcaktojm amplitudn. Digital sht ai proes i
cili e copton informacionin n pjes. E thn ndryshe gjendet nj numr i fundm time
(t) pr t cilin ne mund t prcaktojm amplitudn. Digital computers ruajn
Page 15 of 239

informacionin duke e coptuar at n pjes dhe duke e paraqitur do pjes si nj numr.
Por t gjitha informacionet n nj kompiuter jan t ruajtura dhe menaxhuara n binary
value dhe jo n decimal value. Binary numbers kan vetm dy digit t cilat jan 0 dhe 1.
do informcion ka dy komponent t cilt jan adresa dhe prmbajtja. CPU komunikon
me memorien pik s pari duke identifikuar pozicionin e adress dhe pastaj e kalon kt
adres n address bus. Kjo ide sht e ngjashme me postierin e posts i cili q t
shprndaj nj letr m par ka nevoj pr adresn se ku do ta oj kt letr. Kjo ide e
transferimit t data nprmjet memory dhe CPU duke prdorur data bus sht ilustruar
dhe n Fig. 1.4.
CP U
Addr e s s bus l i ne s
D at a bus l i ne s
M e mo r y
Fi gur e 1 .6 Tr ans f e r r i ng dat a be t we e n CP U and me m o r y

Fig. 1.4 Transferimi i data ndrmjet CPU dhe memory.
Madhsia e memories matet n bytes , nj byte prmban 8 bits. Nj madhsi 4-bit quhet
nibble, nj 16-bit quhet a word. Si e kemi prmendur dhe m lart kompiuteri sht nj
paisje q prdor numra binary pra vetm 0 dhe 1 kshtu q t gjitha adresat e ruajtura do
t jen n fuqi t dyt. Duke qn se kto numra jan shum t mdhenj pr t thjeshtur
madhsin e matjes s memories sht prdorur njsia kilobyte (kB), e cila sht e dhn
nga formula:
1024 2
10
= = k
Nj njsi tjetr e prdorshme sht megabyte (MB), q jepet nga formula:
1048576 1024 1024 2
20 2
= = = = k M

Njesia Simboli Numri I bytes
kilobyte KB 2^0 = 1

Megabyte MB 2^10 = 1024
gigabyte GB 2^20 = 1048576
terabyte TB 2^40 = 1099511627776
Fig. 1.5 Njsit n binary.
Page 16 of 239

N Fig. 1.5 paraqiten njsit n binary t cilat jan m leht t mbahen mend duke i
rrumbullakosur vlerat. Pr shembull kilobyte sht m leht ta rrumullakosim n 1000
byte, ose megabyte n 100000 byte. Shum kompiutera personal kan 512 megabytes
main memory ose RAM. Nj main memory e madhe lejon programe t mdhaja n
prdorim apo shum programe n prdorim. Random access Memory (RAM) i lejon
procesorit t lexoj dhe t shkruaj n do pozicion t memories n chip. RAM sht
volatile q do t thot q nse korenti do t shkputet ather informacioni q ndodhet n
t do t humbas. Prandaj sht e rekomanduar q gjat puns ne ta ruajm shpesh punn
q ne jemi duke br n mnyr q informacioni t ruhet n secondary device si sht
hard disku. Secondary memory device jan nonvolatile q do t thot nse korrenti
shkputet informacioni ruhet n t. M t prdorshmet secondary device q ruajn data
jan hard disku dhe flopy disk.

1.2 KONTROLLI N VISUAL BASIC

Nj programus n Visual Basic duhet t dizenjoj dhe krijoj dy komponent n nj
aplikim: elementt GUI dhe fjalit e programimit. Kur nj programus krijon nj
aplikim Visual Basic ai duhet t prqndrohet n tre koncepte baz: krijon
elementt GUI t cilt bjn ndrlidhjen ndrmjet prdorusit dhe komponentve,
vendos property pr elementve GUI dhe s fundmi shkruan kodin e programit.
1.2.1 Kontrolli i elementve
Visual Basic ka disa kontrolle pr t kapur input, pr t shfaqur informacione, pr t
zgjedhur vlera, pr t shfaqur grafik etj. Ne po numrojm n vazhdim disa prej
kontrolleve m t prdorshm, pr t cilat nse ju keni pak eksperienc me Windows nuk
duhet t keni problem.
CheckBox: Nj box q sht checked ose unchecked kur klikohet me mouse.
ComboBox: Nj kontroll q sht kombinimi i ListBox dhe TexBox.
Button: Nj buton n formn e nj drejtkndshi i cili kryen nj veprim kur klikohet me
mouse.
Label: Nj box q shfaq tekstin i cili nuk mund t ndryshohet nga prdorusi.
ListBox: Nj box q prmban nj list me objekte.
TextBox: Nj hapsir n formn e drejtkndshit n t ciln prdorusi mund t fusi
tekstin ose programi mund t shfaqi tekstin.
Page 17 of 239

RadioButton: Nj buton n formn e nj rrethi i cili sht selected ose deselected kur
klikohet me mouse.
PictureBox: Nj kontroll q shfaq nj imazh grafik.
Form: Nj window n t ciln kontrolle t tjera mund t shfaqen.
GroupBox: Nj form drejtkndshe e cila prmban kontrolle t tjer.
HScrollBar: Nj scroll bar horizontal i cili kur lvizet me mouse rrit ose zvoglon nj
vler.
VScrollBar: Nj scroll bar vertikal i cili kur lvizet me mouse rrit ose zvoglon nj vler.
1.2.2 Property i elementve
Shfaqja e nj kontrolli prcaktohet nga property i elementve. Shembulli m i
prdorshm sht Name property ku prdorusi mund t ndryshoj nj kontroll n fjalin
e nj programi duke ju referuar emrit t ktij kontrolli.
Kur programusi krijon nj kontroll n Visual Basic automatikisht ky kontroll merr nj
emr t cilin programusi mund ta ndryshoj duke e prshtatur me funksionin e kontrollit.
Pr shembull nse do t krijonim disa label, e para do t merrte emrin label1, e dyta
label2, e treta label3 dhe kshtu me radh pr t gjitha t krijuarat. Si tham dhe m
sipr secils prej tyre ne kemi t drejt tja ndryshojm vlern. Ose nj tjetr shembull pr
TextBox do t ishte: TextBox i par do t krijohej me emrin TextBox1, TextBox i dyt
do t krijohej me emrin TextBox2 dhe kshtu me radh.
1.2.3 Kontrolli i emrave dhe konvertimi
Disa programus u japin t gjith kontrolleve nga nj emr sipas funksionit t tyre n
program, duke prfshir dhe ata kontrolle t cilt nuk shfaqen n fjalit e programit. Si
pr shembull sht n dshirn e programusit t japi nga nj emr pr label q nuk
shfaqen n program, por ai duhet patjetr t japi nga nj emr pr label t cilat shfaqen n
program.
Megjithse vendosja e emrave pr disa kontrolle sht n dshirn e programusit, pr
vendosjen e emrave ekzistojn disa rregulla t cilat programusi sht i detyruar ti zbatoj.
Emrat e kontrolleve duhet t fillojn me nj shkronj dhe pjesa tjetr mund t jet me
shkronja, numra ose karakter underscore. N emrin e kontrollit nuk mund t ket
karaktere si : hapsir, simbole speciale ose shenja piksimi. Gjenden tre rregulla t
rndsishme n vendosjen e emrave pr kontroll.
1) Tre shkronjat e para t emrit (prefix) duhet t jen me shkronja t vogla, t cilat
tregojn tipin e kontrollit (lbl, txt,btn etj).
Page 18 of 239

2) Shkronja q vjen m pas, pra e katrta duhet t jet me shkronj t madhe. Nse
emri konstaton n disa emra ather secili emr do t filloj me shkronj t
madhe, kjo pr arsye q emri t jet m i lexushm si pr shembull:
lblUnivesitetiVlors sht m i lexushm se lblUnivesitetivlors.
3) Pjesa pas tre shkronjave t para duhet t prshkruaj funksionin e saj n program,
kjo e bn kodin m t kuptushm. Si pr shembull, lblUnivesitetiVlors kuptohet
se kjo lebl do t ket nj funksion pr Univesitetin e Vlors.

1.3 PROESI I PROGRAMIMIT

Proesi i programimit konsiston n: dizenjimin, krijimin, testimin dhe debugging.
Imagjinoni se si nj inxhinjer ndrtimi do t ndrtonte nj pallat shum katsh pa
nj skic t detajuar. E njjta ide aplikohet dhe n t shkruarin e nj programi, ku
fillimisht duhet t dizenjojm se far funksionesh programi yn duhet t ket. N
kt kapitull ne do t studiojm disa koncepte baz pr krijimin e nj programi, t
cilat jan t vlefshme jo vetm n Visual Basic por dhe n gjuh t tjera
programimi.
1.3.1 Etapat pr krijimin e nj aplikimi
Duke qen se do programus arsyeton n mnyr t ndryshme dhe ka ide t ndryshme se
si t krijoj nj aplikim nuk sht e thn q etapat pr krijimin e nj programi t jen
fikse dhe t pandryshuara. Ne do t shpjegojm etapat pr krijimin e nj aplikimi t
caktuar, pasi n kt mnyr do t jet m e leht pr tu kuptuar. Le ti studiojm kto
etapa pr krijimin e nj aplikimi pr t llogaritur rrogn e nj puntori, ku prdorusit i
jepet mundsia t caktoj numrin e orve t puns dhe pagesn pr do or.
1. Prcakton far aplikimi duhet t bj
N kt etap programusi duhet t identifikoj qllimin e aplikimit, informacionin pr
input, proesin e aplikimit dhe far do t jet output. Pr shembull n aplikimin e
llogaritjes s rrogs s puntorit kemi:
Qllimin: Calculimin e rrogs s puntorit.
Input: Numrin e orve t puns dhe pagesn pr do or
Preesi: Shumzon nurmrin e orve t puns me pagesn pr do or.
Output: Shfaq nj mesazh q tregon pagesn e puntorit.
Page 19 of 239

2. Imagjinimi i aplikimit n kompiuter dhe dizenjimi i tij
Para se programusi t ulet dhe t shkruaj kodin n kompiuter ai duhet ta krijoj at n
mendjen e tij. Pra ai duhet t imagjinoj se si aplikimi do t duket kur ai t punoj dhe t
dizenjoj formn. Pr shembulli e msiprm forma e dizenjuar sht dhn n Fig. 1.6.
Oret e punes
Pagesa per ore
Pagesa e punetorit 0.00
Llogarit pagesen Close

Fig. 1.6 Dizenjimi i forms pr llogaritjen e pagess s puntorit.
3. Krijon nj list t kontrolleve t nevoitura
N kt etap krijohet nj list me t gjitha kontrollet e nevoitura n aplikim, ku t
shnohen emrat e secilit prej tyre dhe t tregohet nj prshkrim i shkurtr pr secilin
kontroll. N Fig. 1.7 po japim listn e kontrolleve pr programin llogarit rrogn.

Tipi i Controllit Emri i kontrollit Pershkrimi
Form Nje forme e vogel Window
Label Mesazhi Oret e punes
Label Mesazhi Pagesa per ore
Label Mesazhi Pagesa e punetorit
TextBox txtOretPunes Perdorusi mund te fusi numrin e oreve te punes
TextBox txtPagesaOre Perdorusi mund te fusi pagesen per ore pune
Label lblPagesaPunetorit
Shfaq pagesen e punetorit pasi botoni btnLlogaritPagesen te
klikohet
Button btnLlogaritPagesen
Kur butoni klikohet pagesa llogaritet dhe shfaqet ne
lblPagesaPunetorit
Button btnClose Kur klikohet mbyll programin

Fig. 1.7 Kontrollet n programin Llogarit rrogn.
Page 20 of 239

4. Prcakton vlerat pr secilin kontroll.
Prve emrave t cilt i prcaktuam m sipr tani duhet t prcaktojm vlerat pr secilin
kontroll. N Fig. 1.8 tregohen vlerat pr secilin kontroll.
Tipi i Controllit Emri i kontrollit Teksti
Form "Llogarit Rrogen"
Label "Numri i Oreve te Punes"
Label "Pagesa per Ore"
Label "Pagesa e Punetorit"
TextBox txtOretPunes ""
TextBox txtPagesaOre ""
Label lblPagesaPunetorit "0.00"
Button btnLlogaritPagesen "Llogarit Pagesen"
Button btnClose "Close"

Fig. 1.8 Vlerat e kontrolleve n programin Llogarit rrogn.
5. Krijoni nj list t metodave pr secilin kontroll.
N kt etap programusi duhet t krijoj nj list t metodave dhe t japi prshkrimin e
tyre. N programin Llogarit Rrogen gjenden vetm dy metoda t cilat jan:
btnLlogaritPagesen_Click dhe btnClose_Click. Vini re se metoda
btnLlogaritPagesen_Click sht emri i metods q thrret btnLlogartiPagesen kur
klikohet dhe metoda btnClose_Click sht emri i metods q thrret btnClose kur
klikohet.
6. Krijoni nj flowchart pr seciln metod.
Nj flowchart sht nj diagram q grafikisht tregon rrjedhjen e ngjarjeve n metod. N
Fig. 1.9 tregohet nj flowchart pr btnLlogaritPagesen_Click. Gjenden dy lloje kutish n
kt diagram: gjysmrrethore dhe drejtkndsh. Flowchart fillon me gjysmrrethin
Fillon dhe mbaron me gjysmrrethin Mbaron. Drejtkndshat tregojn preeset e
llogaritjes dhe ata jan t lidhur me shigjeta t cilat tregojn drejtimin e vazhdushmris
s programit.

Fig. 1.9 Flowchart pr btnLlogaritPagesen_Click.
7. Kontrolloni kodin pr gabime.
N kt etap programusi lexon flowchart nga fillimi duke e vendosur veten n
pozicionin e nj kompiuteri dhe duke kaluar hap pas hapi t gjitha variablat dhe metodat.
Page 21 of 239

Duke kaluar n do etap programusi mund t konstatoj ndonj gabim. Ideja e ksaj
etape sht q sa m shpejt programusi t konstatoj gabimin aq m kollaj do t jet pr
ta rregulluar at.
8. Starto Visual Studio dhe krijo formn dhe kontrollet e etaps 3.
Ky sht hapi i par i puns s programusit n kompiuter. Ktu programusi prdor Visual
Studio pr t krijuar aplikimin.
9. Shkruan kodin pr seciln metod t krijuar n etapn e 6.
Ky sht hapi i dyt i puns s programusit n kompiuter. Proedurat dhe metodat duhet
t konvertohen n kod dhe t futen n kompiuter duke prdorur Visual Studio.
10. Provon aplikimin nse punon apo jo.
N kt etap programusi provon t run programin dhe nse do gj sht n rregull
programi do t compilet. Nse programusi ka gabime gjat shkruajtjes s kodit ai nuk do
t compilet dhe do t na japi error. Error jan t tipeve t ndryshme dhe programusi duhet
t rregulloj gabimin dhe t vazhdoj deri sa programi t mos na japi m gabime.

1.4 KRIJIMI I PROGRAMIT N VISUAL STUDIO

Gjat ktij libri ne do t prdorim zakonisht termin Visual Studio, por kini parasysh se
Microsoft Visual Studio sht nj softwre i cili mund t prdoret jo vetm pr krijimin e
aplikimeve n Visual Basic, por dhe pr krijimin e aplikimeve n C++ dhe C#. Pra varet
far software ju keni instaluar n kompiuterin tuaj: Microsoft Visual Studio apo
Microsoft Visual Basic. Le t shohim tani hap pas hapi se si t startojm Visual Studio.
Etapa e par: Kliko butonin Start dhe hap menun All Programs. Kliko Microsoft Visual Studio
2005 dhe kur menuja tjetr t shfaqet kliko prsri Microsoft Visual Studio 2005.
Nse jeni duke prdorur Microsoft Visual Studio 2005 dhe jo Microsoft Visual
Basic, hern e par q ju do t provoni t startoni kt program nj window do t
shfaqet, Choose Default Environment Settings. Zgjith nga lista Visual Basic
Developments Settings dhe kliko Start Visual Studio buton.
Etapa e dyt: Ju duhet t shikoni Start Page si n Fig. 1.10, kini parasysh se nse nuk jeni t
lidhur me internetin figura nuk do t jet e njjt pasi disa informacione vijn nga
Web. Nse nuk e shihni Start Page si n figurn e mposhtme, ather kliko View
n menu bar, kliko Other Windows dhe klilko Start Page.


Page 22 of 239


Fig. 1.10 Visual Studio Start Page.


Etapa e tret: N menu bar kliko Tools dhe pastaj kliko Options dhe do t shfaqet Fig. 1.11.
Fig. 1.11 Visual Studio Options dialog.

Page 23 of 239

Etapa e katrt:N Options dialog nn Projects and Solutions, zgjith General dhe do t
shfaqet Fig. 1.12. N t djatht t Visual Studio projects location kliko
butonin Browse. Select nj location ku t ruani projektet tuaja.

Fig. 1.12 Lokalizimi i projektit Visual Studio.


Etapa e pest: Prsri n Options dialog nn Projects and Solutions, zgjith VB Defaults
si n Fig. 1.13. Vendos Options Strict On dhe kliko OK pr t mbyllur
dialog.

Etapa e gjasht: Secili aplikim q ju krijoni n Visual Studio quhet project. Pr t nisur nj
project t ri n menu bar kliko File, pastaj kliko New Project dhe do t shfaqet si
n Fig. 1.14.





Page 24 of 239

Fig. 1.13 Vendos VB n Options dialog.


Fig. 1.14 Dialog box pr projektin e ri.

Page 25 of 239

Etapa e shtat: Labeled Templates liston tipin e aplikimeve q ju mund t krijoni,
zgjidhni Windows Application si n Fig. 1.14.
Etapa e tet: N text box gjendet Name ku ju mund t fusni emrin e projektit. Visual Studio
automatikisht vendos emrin WindowsApplication1, ndroshoni emrin e projektit
n projekti 1. Nj projekt konsiston n disa files, kur you filloni nj projekt,
Visual Studio ruan filat n nj folder me t njjtin emr t projektit. Ndrsa ju
krijoni gjithmon dhe m shum projekte emri WindowsApplication1 nuk ju
ndimon ju t mbani mend se far sht funksioni i secilit projekt. Pra ju
gjithmon duhet t ndryshoni emrin e projektit t ri n dika q ka lidhje me
qllimin e projektit dhe kliko OK.
Etapa e nnt: Zgjith Save All nga menuja File dhe nse dshironi t ndryshoni vendin e
ruajtjes s ktij projekti kliko butonin Browse dhe zgjith se ku doni ta ruani at.
Pasi t klikoni Save do t shfaqet Fig. 1.15. Nse Windows q do t hapet pr ju
nuk duket saktsisht si figura e mposhtme, pr shembull t tjer emra shfaqen
nn Solution Explorer apo Properties, mos u shqetsoni pasi n kapitujt prgjat
ktij libri do ta kuptoni se si ato vlera ndryshohen.
Fig. 1.15 Projekti i ri i hapur.

Page 26 of 239

Etapa e dhjet: Kliko Tools n menu bar dhe kliko Options, kliko Text Editor Basic dhe VB
Specific si tregohet n Fig. 1.16. Trego kujdes q t gjitha opsionet t jen t
klikuara. Nse jeni duke prdorur Visual Studio, proedura sht e njjt por pasi
t klikoni Options, kliko Basic dhe pastaj VB Specific.

Fig. 1.16 Teksti VB Specific.


Etapa e njmbdhjet: N panelin n krahun e majt kliko Windows Form Designer dhe
sigurohuni q parametrat t jen si n Fig. 1.17. Veanarisht tregoni
kujdes pr: GridSize duhet t jet 8,8, ShowGrid duhet t jet True dhe
SnapToGrid duhet t jet True. Kliko OK pr t mbyllur dialog box.







Page 27 of 239

Fig. 1.17 Forma Windows pr Designer settings.


Mjedisi n Visual Studio
Visual Studio konsiston n disa windows si jan: Design Window, Solution
Explorer Window dhe Properties Window (shikoni Fig. 1.15). Kto windows
mund t lvizen ose mund t mbyllen dhe hapen prsri. Por nse ju nuk shihni
ndonj prej tyre ather ndiqni prsri etapat e msiprme, pasi sht e mundur q
t keni br ndonj zgjedhje gabim.
Fshehja e Windous
Disa Windows n Visual Studio kan opsionin Auto Hide (psh n Windows
Property sht ngjitur me butonin Close), i cili mund t kthehet off dhe Windows
do t shfaqet, si psh Solution Explorer Window ose Properties Window. Pr ta
kthyer on kliko Auto Hide, pra Windows nuk do t shafaqet dhe ne do t kemi m
shum hapsir pr t punuar. Nse do i referohemi prsri Fig. 1.15, Windows
Toolbox sht on dhe pr ta kthyer off ju duhet t klikoni mbi t.
Windous Docked dhe Floating
Nse do i referoheshim prsri Fig. 1.15 do t thoshim se Solution Explorer
Window dhe Properties Window jan docked, q nnkupton se ato jan t
ngjitura me njra tjetrn. Por windows mund t jet Floating si n Fig. 1.18.

Page 28 of 239

Fig. 1.18 Floating Windows.


Gjenden disa mnyra pr kthimin e windows n docked dhe floating, por m e
thjeshta sht: kap windowsin me mouse dhe trhiqe n pozicionin q do ta
vendossh dhe windows automatiksht kthehet nga docked n floating. Pr ta
kthyer nga floating n docked kliko dy her shpejt mbi titullin e windowsit.
Title Bar
Title bar tregon emrin e projektit q ju jeni duke punuar, si psh nse do i
referoheshim figurave t msiprme do t thoshim se projekti ku ne jemi duke
punuar sht 1.1. N Visual Studio Designe mode sht hapsira ku ne do t
punojm pr t dizenjuar dhe krijuar aplikimin, Run mode sht mnyra ku ne
runim dhe testojm aplikimin dhe Break mode sht kur kemi dyshim pr ndonj
gabim t mundshm dhe e runim programin deri n at pik.
Toolbox
Zakonisht Toolbox window n figurat tona ka qene hide, kliko mbi t dhe shiko
windows t cilat gjithashtu jan t mbyllura, kliko disa prej tyre dhe shiko secila
prej tyre ka funksione t caktuara t cilat ne do ti studiojm prgjat ktij libri. N
Fig. 1.19 tregohet Toolbox ku Common Controls sht klikuar.

Page 29 of 239

Fig. 1.19 Toolbox.















Page 30 of 239

Ushtrime dhe Problema

1.1 Prshkruaj komponentt e hardwarit t kompiuterit tuaj ose t nj
kompiuteri n lab, prfshi tipin dhe shpejtsin e processorit,
kapacitetin n main dhe second memory dhe tipet e I/O.
1.2 Shpjego ndryshimin ndrmjet random access memory (RAM) dhe
read-only memory (ROM).
1.3 Gjat kohs q programi Microsoft Word sht duke u ekzekutuar
n ciln pjes t kompiuterit qndron? Po pasi ne e mbyllim kt
program?
1.4 Cili sht ndryshimi ndryshimi ndrmjet operating system dhe
aplication software?
1.5 Shpjego ndryshimin ndrmjet kontrollit Label dhe kontrollit
TextBox, duke u prqndruar n funksionin e secilit kontroll?
1.6 Trego pr kontrollet e mposhtme kush jan t sakt dhe kush jo.
Nse nuk jan t sakt trego pse.
1) lblUniversitetiVlors
2) lblUniversiteti Vlors
3) txtEmriGjergji Shaska
4) 1912Pavarsia
5) txtFlamurtari
6) btnRegjistrohu
1.7 Vendos nj emr t rregullt pr seciln nga fjalit e mposhtme.
1) Nj TextBox ku prdorusi t jet n gjendje t fusi emrin e tij.
2) Nj TextBox ku prdorusi t fusi mbiemrin e tij.
3) Nj buton i cili prdoret pr t mbyllur nj form.
4) Nj buton q prdoret pr t pastruar inputet n nj form.
1.8 Krijo nj aplikim pr shitjen e vezve n nje dyqan ushqimor, ku tu
referoheni etapave si m posht.
1) Prshkruaj karakterin e ktij aplikimi.
2) Skico formn e aplikimit dhe vendos kontrollet q do t nevoiten.
3) Bj nj list pr kontrollet duke prfshir tipin dhe emrin.
4) Bj nj list pr seciln metod q nevoitet dhe vizato nj flowchart.
Page 31 of 239


KAPITULLI 2

KRIJIMI I APLIKIMEVE

N kt kapitull do t msojm se si t krijojm nj aplikim n Visual Studio. N
kt aplikim do t prdoren labels, nj kontroll PictureBox dhe butonat. Do t
msojm se si t shkruajm kodin dhe do t msojm se si t prdorim AutoSize,
BorderStyle dhe TextAlign pr kontrollin Label.

2.1 KRIJIMI I APLIKIMIT DREJTIMI

Drejtimi shkencor i Universitetit t Vlors e ka br at t lakmushm jo vetm pr
studentt Shqiptar, por dhe pr shum student t rajonit dhe m gjer. Duke qn se
disa punonjs t universitetit t cilt komunikojn n telefon pr tu dhn drejtimin e
rrugve ktyre studentve apo dhe t afrmve t tyre t cilt vijn pr her t par n
kt universitet, nuk jan shum familjar me drejtimin e rrugve q t sjellin n kt
universitet, studentt e compiuter science vendosn t krijojn nj program pr kt
qllim. Si e shpjeguam n kapitullin e par puna e studentve fillon me prcaktimin e
etapave pr krijimin e ktij aplikimi.
1) Prcakto far aplikimi do t bj.
2) Dizenjo aplikimin duke e imagjinuar se si do t punoj n kompiuter.
3) Krijo nj list pr kontrollet e nevojshme.
4) Prcakto vlerat pr secilin kontroll.
5) Starto Visual Basic dhe krijo format dhe kontrollet.
1) Prcakto far aplikimi do t bj.
Qllimi: Trego nj hart pr drejtimin n Universitet
Input: Asgj
Proesi Shfaq nj form
Output: Tregon n form nj hart se si t harrish n Universitet.
Page 32 of 239

2) Dizenjo aplikimin duke e imagjinuar se si do t punoj n kompiuter.
Pare se ju ta krijoni programin n kompiuter ju duhet ta krijoni at n mendjen
tuaj. Prpiquni t imagjinoni se si do t duket ekrani i kompiterit kur programi t
punoj dhe vizatoni nj skic.

Fig. 2. 1 Dizenjimi i forms pr drejtimin pr n UV.
3) Krijo nj list pr kontrollet e nevojshme.
N kt etap ju krijoni nj list pr t gjitha kontrollet q nevoiten n kt
aplikim, ku ju duhet t tregoni emrat dhe t jepni nj prshkrim t shkurtr pr
seciln. N aplikimin ton nevoiten tre kontrolle t cilt tregohen n Fig. 2. 2.
Vini re se ne nuk po vendosim ndonj emr t veant pr kontrollet pasi ne nuk
do i prdorim ato n kodin e programit q do t shkruajm m von.
Fig. 2. 2 Kontrollet pr aplikimin Drejtimi.
Tipi Emri Pershkrimi
Form Form1
Nje forme e vogel window mbi te cilen vendosen kontrollet e
tjere
Label Label1 Tregon mesazhin per drejtimin ne UV
PictureBox PictureBox1 Tregon harten per ne hotel
4) Prcakto vlerat pr secilin kontroll
Vlerat pr secilin kontroll jan paraqitur n Fig. 2. 3. Vini re se pr Label ne po
prdorim TextAlign property, e cila prcakton se si tekti shfaqet n label. Pr
PictureBox ne po prdorim fotografin UV.jpg e cila sht savur m par.
SizeMode property sht vendosur n StrechImage, e cila na lejon t ndryshojm
madhsin e fotografis kur e insertim n formn ton. Nse fotografia sht
Page 33 of 239

shum e madhe, e zvoglojm dhe nse fotografia sht shum e vogl e
zmadhojm.
Fig. 2. 3 Vlerat pr secilin kontroll.
Property Value
Form
Name Form1
Text Drejtimi
Label
Name Label1
Text Drejtimi OU
TextAlign MiddleCenter
Font
Microsoft Sans Serif, Bold
Italic, 20 point
PictureBox
Name PictureBox1
Picture UV.jpg
SizeMode StretchImage
5) Starto Visual Basic dhe krijo format dhe kontrollet
Tani ne jemi gati t fillojm t krijojm formn e aplikimit.

Fillimi i aplikimit n Visual Studio
Etapa e par: Starto Visual Studio, ashtu si bt n kapitullin e par. Pr t
krijuar nj projekt t ri ju keni dy mundsi:
Kliko File n menun bar dhe kliko New Project
Kliko New Project icon, e para icon n toobar
N window New Project zgjith Windows Application icon nn
Templates dhe WindowsApplication1 duket pr emrin e text box.
Nrysho kt emr n Drejtimi dhe kliko butonin OK.
Etapa e dyt: Ju duhet t shihni n Designe Window nj form t re window
me emrin Form1 si n Fig. 2. 4. Kliko formn pr t patur akses
mbi t dhe shiko property window. N Fig. 2. 4 scroll sht
trhequr n fund t window, ju mund ta trhiqni at lart dhe posht
pr t gjetur vlera t caktuara nga lista pr Form1. Si e vini re
gjenden dy kollona: kollona majtas e cila tregon emrin dhe djathtas
e cila tregon vlerat pr seciln prej tyre. Kliko dy her mbi Text
nn window Properties, delete Form1 dhe type Drejtimi n vend t
Page 34 of 239

saj. Shtyp butonin enter dhe do t shihni n title bar se n vend t
emrit Form1 do t shfaqet emri Drejtimi. Megjithat ne ndryshuam
vlern pr Text dhe jo emrin e saj, po ti referohemi Fig. 2. 3 emrin
e kemi Form1. Pr tu garantuar pr kt shko n fillim t lists dhe
shiko se (Name) sht Form1.
Fig. 2. 4 Form 1 dhe property window.


Shtimi i nj kontrolli Label
Etapa e par: N kt etap ne do t shtojm nj kontroll Label n form.
Kliko Common Controls n Toolbox window dhe kliko dy her n
icon Label, si n Fig. 2. 5. Vreni se forma e label sht nj
drejtkndsh me vija t ndrprera, i cili quhet bonding box.
Etapa e dyt: Duke qn se label sht e aktivizuar Properties window do t
tregoj vlerat e Labes1. Gjeni vlern pr Text, delete Label1 dhe
type Drejtimi per ne UV, pastaj shtyp butonin enter. Label do t
duket si n Fig. 2. 6 ku label e rregullon vet madhsin e saj pr ta
prshtatur me madhsin e tekstit. Kapeni label me mouse dhe
lvizeni n pozicionin q ju dshironi.
Page 35 of 239


Fig. 2. 5 Kontrolli Label.


Fig. 2. 6 Label me tekstin e ri.

Page 36 of 239


Etapa e tret: N windows Property gjeni Autosize property dhe vini re se
vlera e saj sht e vendosur n True, vendoseni at n False duke
klikuar dy her mbi t. Vlerat pr TextAlign t cilat ne i diskutuam
dhe n kapitullin e kaluar vendosin tekstin n pozicionin q ne
dshirojm. Klikoni n opsionin n t djatht q ka TextAlign dhe
klikoni n pozicionin e qndrs, si n Fig. 2. 7.

Fig. 2. 7 Vlerat pr TextAlign.


Etapa katr: Kur krijuam vlerat pr tekstin e label ne i vendosm n: Microsoft
Sans Serif, 20, Bold Italic. Nprmjet Font property ne mund ta
ndryshojm vlerat e tekstit. Kliko mbi Font n Properties window
dhe kliko mbi kutin n t djatht t saj. N ekran duhet t shfaqet
Fig. 2. 8 ku sht e zgjedhur Microsoft Sans Serif. Kliko Bold
Italic nn Font style dhe zgjith 20 nn Size. Vini re se si teksti
ndryshon n drejtkndshin me emrin Sample. Kliko butonin OK.
Vini re se teksti n label nuk duket plotsisht pasi ne ndryshuam
vlerat e tij. Zmadho windows pr formn duke klikuar m par n
t, ju tashm e dini se kur katrort e vegjl duken rreth windows
kjo do t thot se tani ne kemi akses mbi kt window.

Page 37 of 239

Kliko prsri mbi label dhe kap me mause dhe zmadho label deri
sa teksti t duket qart. Pr t fshir nj label, kliko mbi t dhe
shtyp butonin delete. Praktikojeni kt duke shtuar nj label n
form e cila nuk na nevoitet dhe kur ajo t jet e klikuar shtypni
butonin delete.
Fig. 2. 8 Font pr tekstin e label.


Kontrolli PictureBox
Etapa e par: N ToolBox kliko dy her PictureBox e cila do t sjelli n formn
ton nj PictureBox bosh. Lvize at afrsisht n pozicionin n
mes t forms. Kliko mbi SizeMode nn Properties dhe vendose
at n StrechImage, q do t prshtasi prmasat e fotogragis me
ato t PictureBox. Kliko Image nn windows Properties, kliko
buonin Browse q shfaqet n t djatht, kliko Local resorce dhe
shko n drejtimin ku fotografia sht ruajtur. Fotografia do t
shfaqet si n Fig. 2. 9. Kliko OK dhe fotografia do t shfaqet n
PictureBox dhe prmasat e tyre do t prshtaten me njra tjetrn
pasi ne e vendosm vlern pr PictureBox n StrechImage.
Etapa e dyt: Zmadho prmasat e PictureBox duke i kapur dhe i trhequr me
mouse ant e saj. Zmadho deri sa fotografia t jet e kuptushme
qart dhe me nj pamje t prshtatshme n form. N Fig. 2. 10
tregohet pamje prfundimtare pasi fotografia sht prshtatur me
PictureBox dhe me pozicionin n form.
Page 38 of 239


Fig. 2. 9 Insert fotografin.


Fig. 2. 10 Drejtimi.jpg.

Page 39 of 239

Save dhe run aplikimin
Etapa e par: Ka disa mnyra pr t ruajtur nj aplikim: Kliko File n menu
bar dhe kliko Save All, shtyp n t njjtn koh n keybord
Ctrl+Shift+S dhe e treta kliko n toolbar butonin Save All.
Etapa e dyt: Tani q ne e ruajtm aplikimin sht momenti pr ta run at.
Duke qen se ky aplikim nuk ka kod, ather ai vetm do t shfaqi
PictureBox dhe Label. Tre jan mnyrat pr t run nj aplikim n
Visual Studio: Kliko butonin Start Debugging n toobar, e dyta
kliko Debug on the menu bar dhe kliko Start Debugging dhe e treta
shtyp butonin F5. Provo njrn nga mnyrat. Pas nj periudhe t
shkurtr do t shfaqet nj window, e cila do t qndroj e hapur
deri sa ju ti jepni komandn pr t mbyllur aplikimin. Dy jan
metodat pr t mbyllu nj aplikim: Kliko butonin e windows close
ose kliko Debug n menu bar dhe kliko Stop Debugging. Pr t
mbyllur kt projekt ju mund t operoni si me do window, kliko
File dhe kliko exit ose kliko butonin ne cepin e djatht t windows.
Save dhe run aplikimin
Tre jan metodat pr t hapur nj projekt:
Kliko emrin e projektit n panelin Recent Projects dhe projekti duhet t
hapet menjher, nse jo ather ju mund t keni ndryshuar pozicionin
ku e ruajtt file fillimisht. Nse forma nuk duket shikoni n windowsin
Solution Explorer dhe klikoni dy her n Form1.vb.
Kliko butonin Open Project dhe browse n Drejtimi dhe kliko n
Drejtimi.sln. Kliko butonin Open.
Kliko File n menu bar dhe kliko Open Projekt. Browse n pozicionin e
files Drejtimi, kliko file Drejtimi dhe kliko Open.

2.2 KODI PR APLIKIMIN DREJTIMI

Aplikimi Drejtimi u prit shum mir nga punonjsit e universitetit, por ata patn
dhe disa krkesa t tjera pr kt aplikim. Disa prej puntorve u krkuan
studentve t informatiks q bashk me hartn t shfaqet dhe drejtimi me t
shkruar. Disa t tjer krkuan nj buton pr mbylljen e programit. Nisur nga kto
sugjerime studentt e informatiks vendosn t shtojn nj buton, i cili kur t
shtypet t tregoj drejtimin me fjal. Gjithashtu ata vendosn t shtojn dhe nj
buton tjetr pr t mbyllur programin kur sht duke runur.
Page 40 of 239

N figurn e mposhtme po japim kontrollet q do t shtohen n aplikimin
Drejtimi. Label q do t shfaqi drejtimin pr n universitet, do t duhet ti japim
nj emr pasi ajo do t prdoret n kod. Gjithashtu dhe dy butonave duhet tu
japim nga nj emr pasi dhe ata do t duhet ti prdorim n kod.
Fig. 2. 11 Kontrollet q do t shtohen n aplikimin Drejtimi.
Tipi Emri Pershkrimi
Label lblDrejtimi Shfaq drejtimin me fjale per ne UV
Button btnShfaqDrejtimin
Kur klikohet teksti i lblDrejtimi do te shfaqet ne
forem
Button btnMbyll Ndalon aplikimin kur klikohet

Visible mund t marr vetm dy vlera True ose False. Kur Visible merr vlern
True, kontrolli mund t shihet n form, ndrsa kur merr vlern False ai nuk mund
t shihet. N aplikimin ton fillimisht ne duam q teksti t mos duket deri sa
butoni t shtypet, pra fillimisht ne e vendosim vlern False dhe pastaj nprmjet
kodit do ta kthejm at n True.
N kt aplikim ne kemi dy butona t cilt kryejn funksione t caktuara n
program, pra ne duhet t shkruajm kodin pr kta butona. Kur butoni
btnShfaqDrejtimin klikohet proedura pr btnShfaqDrejtimin_Click thrritet.
Ndrsa btnMbyll_Click sht proedura q ekzekutohet kur butoni btnMbyll
klikohet. Fig. 2. 12 tregon flowchart pr proedurn btnShfaqDrejtimin_Click dhe
Fig. 2. 13 tregon flowchart pr proedurn btnMbyll_Click.

Fig. 2. 12 Flowchart pr btnDrejtimi_Click.


Fig. 2. 13 Flowchart pr btnMbyll_Click.


Page 41 of 239

2.2.1 Vendosja e lblDrejtimi, btnShfaqDrejtimi dhe btnMbyll
Etapa 1. Hap Visual Studio dhe hap projektin Drejtimi. Nse Form1 nuk
shfaqet (varet se si e keni mbyllur programin hern e fundit) kliko dy
her Form1.vb nn windows Solution Explorer.
Etapa 2. Tani do t vendosim nj Label t re e cila do t shrbej pr t
treguar tekstin pr drejtimin n universitet. Ju tashm dini se si ta bni
kt duke klikuar dy her mbi t. Le t shohim dhe nj mnyr tjetr
pr t vendosur nj label n form. Kliko vetm nj her mbi Label
nn windows Toolbox. Pastaj mbaje mausin t shtypur deri sa ta
vendosni at mbi form. Lshojeni mausin dhe do t shfaqet Label2.
Etapa 3. Ndrysho emrin pr label nga Label2 n lblDrejtimi dhe vendos
AutoSize n False. Tani ju mund ta zmadhoni label dhe m von pasi
t shkruani dhe tekstin do tu duhet ta prshtasni me madhsin e
tekstit.
Etapa 4. Kliko label Text nn Properties dhe kliko butonin me shigjet n
krahun e djatht. N drejtkndshin q shfaqet type tekstin e
mposhtm dhe pastaj kliko kudo n form. Figura e mposhtme
tregon se si teksti duhet t shfaqet n label.
Fig. 2. 14 Label me tekstin pr drejtimin.


Page 42 of 239

Etapa 5. Klikoni dy her mbi Visible nn Properties pr ta vendosur at n
False, pasi ne duam q kjo label t shfaqet vetm kur ne t shtypim
butonin. Vini re se teksti sht akoma i shfaqur n form, pasi ne nuk
jemi duke e runur programin.
Etapa 6. Tani le t vendosim butonat. Kliko dy her Button n Toolbox, nj
drejtkndsh me emrin Button1 do t shfaqet. Kape me mause dhe
vendose posht tekstit t shfaqur n label. Kliko dy her prsri pr t
sjell n form dhe nj tjetr buton, kape prsri me mause dhe
vendose n krah me butonin e par. Forma duhet t duket e ngjashme
me formn e figurs s mposhtme.
Fig. 2. 15 Pozicioni i butonave.

Etapa 7. Kliko mbi Button1 dhe n window Properties ndrysho emrin e
butonit n btnShfaqDrejtimi, duke klikuar mbi Name, kliko n katrorin
n t djatht dhe type btnShfaqDrejtimi. Kliko mbi Text, kliko n
katrorin n t djatht dhe type Shfaq Drejtimin. Madhsia e butonit
nuk sht e mjaftushme kshtu q teksti i tij nuk duket i plot.
Zmadhoje at deri sa teksti t shfaqet i plot.
Etapa 8. Duke ju referuar etaps 6 ndrysho emrin e butonit t dyt n
btnMbyll dhe tekstin n Mbyll. Forma do t duket si figura e
mposhtme.
Page 43 of 239


Fig. 2. 16 Butonat si ata do t duken n form.


2.2.2 Kodi pr butonat
Etapa 1. Kliko dy her mbi Shfaq Drejtimi. Fig. 2. 17 tregon se si ai do t
duket. Kodi sht nj window n t ciln ju mund t shkruani kodin
pr programin tuaj. Kodi q ju do t shtoni duhet t jet ndrmjet
rreshtit t par dhe t fundit, t cilt tregojn fillimin dhe mbarimin e
ksaj metode.
Fig. 2. 17 Kodi pr butonin btnShfaqDrejtimi.

Page 44 of 239

Etapa 2. Kodi pr kt buton do t typet ndrmjet rreshtit t dyt dhe t tret, t
cilt tregojn fillimin dhe mbarimin e metods pr kt buton. Ne nuk
po i shpjegojm n kt moment se far kuptimi ka rreshti i par dhe
rreshti i dyt, pasi mendojm se shpjegimi i tyre m von do t jet m
i leht pr tu kuptuar nga ana juaj. Type kodin saktsisht si m posht.
'Bene qe label te duket
lblDrejtimi.Visible = True
E vut re se kur ju type pik u shfaq nj list e cila tregon
informacionin pr t kompletuar m shpejt pjes t fjalive. Kur ju
type V automatiksht zgjidhet Visible. Pr ta zgjedhur at shtyp butonin
tab ose butonin pr hapsirn. Nj tjetr list automatike shfaqet kur
ju type =, e cila tregon vlerat boolen False ose True.
Etapa 3. Pr t kaluar mbrapa n Designe window kliko n tab Form1.vb
[Design] dhe pr t ardhur prsri n window e kodit, kliko n tab
Form1.vb. Tani le t shkruajm metodn pr butonin tjetr. Kliko dy
her mbi butonin Mbyll. Ju duhet t shkruani kodin si m posht. Vini
re se fjalia e par pr t dy kodet e butonave fillojn me nj apostrof
dhe fjalia sht n ngjyr bojbari. Kto lloj fjalish nuk jan pjes e
kodit ato jan shnime pr t ndimuar lexusin pr t kuptuar kodin.
Megjithat ato jan pjes e rndsishme pasi dhe ne q po e shkruajm
kt kod nse do na krkohet pas disa muajve apo dhe viteve t
shtojm funksione t tjera n kt projekt nuk do jemi n gjendje ta
kuptojm at pa kto shnime. Tani ato duken si koh e humbur, por
n t vrtet ne kursejm shum koh n t ardhmen.
'Mbyll aplikimin
Me.Close()
Etapa 4. Tani sht momenti ta ruajm projektin dhe t provojm aplikimin.
Vini re se fillimisht teksti pr drejtimin n universitet nuk shfaqet dhe
pasi ne shtypim butonin Shfaq Drejtimin ai do t shfaqet. Pr t
mbyllur aplikimin shtyp butonin Mbyll.
2.2.2 Ndryshimi i ngjyrave t tekstit
Etapa 1. Le t shohim tani se si mund t ndryshojm ngjyrn e label (jo t
tekstit t label, por t backgraund). Kliko window Design, kliko label
q dshironi t ndryshoni ngjyrn, psh label ku shfaqet teksti pr
drejtimin n UV. Kliko n window Property BackColor. Kliko mbi
vlern e saj dhe pastaj kliko katrorin me shigjetn posht. Pamje e
windows duhet t jet e njjt me pamjen si n Fig. 2. 18. N kt
Page 45 of 239

windows gjenden tre tabs: Custom, Web dhe System, t cilat
kontrollojn ngjyrat pr kt label. Kliko mbi Custom dhe do t
shfaqet nj tabel me disa mundsi zgjedhje pr ngjyrat. Kliko mbi
ngjyrn e dshiruar dhe shiko se si ngjyra e label ndryshon.
Etapa 2. N kt etap do t ndryshojm ngjyrn e tekstit n t njjtn label.
N window Property kliko ForeColor dhe kliko katrorin me shigjet
q shfaqet n t djatht. Vini re se tani shfaqet e njjta tabel q
shpjeguam m sipr. Zgjith ngjyrn e dshiruar dhe save dhe testo
aplikimin.

Fig. 2. 18 Lista BackColor.







Page 46 of 239

Fig. 2. 19 Ngjyrat pr label dhe tekstin e label t ndryshuara.


2.2.3 Qytetet dhe Klubet e Futbollit
Duke qn se ju tashm keni msuar se si t krijoni nj projekt, keni msuar se si
t krijoni nj form q prmban label dhe butona n projektin Qytetet dhe Klubet
e Futbollit, ne nuk do t shpjegojm n shum detaje punn ton n kt projekt.
Nse ju hasni n ndonj vshtiresi, referohuni n projektin e msiprm Drejtimi.
N kt projekt prdorusi do t ket mundsin t klikoj mbi butonin me emrin e
nj qyteti dhe t shohi se kush sht klubi i futbollit t ktij qyeti. Duke qen se
sht e njjta proedur dhe pr nj numr m t math qytetesh ne po prdorim
vetm tre prej tyre: Tirana, Vlora dhe Fieri.
Etapa 1. Pasi t keni krijuar projektin me emrin Qytetet dhe ta keni ruajtur n
filn q ju dshironi, ju jeni gati t dizenjoni formn pr kt aplikim.
Krijo katr butona me tekstet pr secilin prkatsisht si m posht:
butoni par me tekstin Tirana, butoni dyt me vlern pr tekstin
Vlora, butoni i tret me tekstin Fieri dhe butoni i katrt Mbylle i cili
mbyll aplikimin.
Etapa 2. Krijoni n form katr label. Vendosni Label1 me emrin lblTirana
dhe tektin SK Tirana dhe t gjitha vlerat pr ngjyrn, madhsin e
tekstit, ngjyrn pr label dhe t tjera vlera q ju dshironi pr label.
Page 47 of 239

T njjtn gj bni dhe pr labelat e tjera, ku emrat dhe tekstet do t
jen prkatsisht: Label2 do ket emrin lblVlora dhe tekstin Vlora,
Label3 do t ket lblFieri dhe tektin Fieri dhe label katr do t ket
vetm tekstin Klubet e futbollit. Duke qn se emri i ksaj label nuk
do t prdoret n kod ather nuk sht e nevojshme q emri i saj t
ndryshoj. Kini parasysh gjithashtu se Visibility pr kt label nuk
duhet ndyshuar pasi ajo sht gjith kohn e dukshme, ndrsa pr tre
lablat e tjera ndyshon n False q m von nprmjet kodit t
ndryshoj n True. Fig. 2. 20 tregon dizenjimin pr aplikimin Klubet
e futbollit.
Etapa 3. Tani ne jemi gati t shkruajm kodin pr secilin nga butonat. Kliko
dy her pr secilin buton dhe shkruaj kodin prkatsisht pr secilin
prej tyre. Kodi n tab Form1.vb do t duket saktsisht si m posht.
Public Class Form1

Private Sub btnTirana_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnTirana.Click

'Ben qe teksti S.K. Tirana te shfaqet
lblTirana.Visible = True
End Sub

Private Sub btnVlora_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnVlora.Click

'Ben qe teksti Flamurtari te shfaqet
lblVlora.Visible = True
End Sub

Private Sub btnFieri_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnFieri.Click

'Ben qe teksti Apollonia te shfaqet
lblFieri.Visible = True
End Sub

Private Sub btnMbylle_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnMbylle.Click
'Mbyll aplikimin
Me.Close()
End Sub
End Class
Page 48 of 239

Fig. 2. 20 Dizenjimi i prfunduar i aplikimit.


Etapa 4. Ruaj punn tuaj duke klikuar Save All. Run programin dhe testo at.
Nse keni ndonj probelm me t fillimisht sigurohuni q tre label jan
vendosur fillimisht False, pasi me an t kodit ato kthehen n True. Ka
dhe shum mnyra t tjera se si ne mund ti kontrollojm vlerat pr
tekstin me an t kodit, por ne nuk po i shpjegojm n detaje ato pasi
ju do i kuponi m mir kur t jeni m familjar me t shkruarit e kodit.

2.3 KODI PR IMAZHET

N kt pjes ne do t msojm se ashtu si dhe butonat pr t cilt ne shkruajtm
kodin m sipr edhe PictureBox apo label mund t ken proedura.
Etapa 1. Hap nj projekt me emrin Fanella, kliko me butonin e djatht t
mausit mbi t nn Solution Explorer. Vendos mausin mbi Add dhe
kliko mbi New Item, kopjo saktsisht tekstin e mposhtm dhe mos u
mundni ta kuptoni at.
Imports System.Reflection
Page 49 of 239

Imports System.Runtime.InteropServices

' Ky kode sigurohet nga librari e VB.

<Assembly: AssemblyTitle("")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("")>
<Assembly: AssemblyCopyright("")>
<Assembly: AssemblyTrademark("")>
<Assembly: CLSCompliant(True)>

<Assembly: Guid("145A7AC3-0576-4946-B950-8D7404223E1C")>

<Assembly: AssemblyVersion("1.0.*")>
Etapa 2. Dizenjo formn si n Fig. 2. 21. Forma paraqet tre fotografi t
fanellave t Tirans, Flamurtarit dhe Vllaznis. Kur prdorusi t
klikoj mbi ndonj prej fanellave n label do t shfaqet teksti duke
treguar se kujt prej skuadrave i prket. Ju tashm dini se si ta dizenjoni
nj form t till. Mos u keqkuptoni me formn ndryshe q duket pr
label, pasi vlera e saj pr BorderStyle sht vendosur n Fixed3D.
Megjithat kjo vler sht vetm pr dukjen e saj, pasi ajo punon dhe
me vlerat e prdorura m par.
Etapa 3. Klikoni mbi seciln nga fotografit dhe type kodin si tregohet m
posht.
Pr fanelln Tirana.
'Tregon emrin e skuadres te ciles i perket fanella
lblMesazhi.Text = "Tirana"
Pr fanelln Flamurtari.
lblMesazhi.Text = "Flamurtari"
Pr fanelln Vllaznia.
lblMesazhi.Text = "Vllaznia"

Etapa 4. Run programin dhe testoje at dhe sipas Fig. 2. 22.

Page 50 of 239

Fig. 2. 21 Dizenjimi i aplikimit Fanella.


Fig. 2. 22 Programi sht duke runur dhe sht klikuar mbi fanelln e Flamurtarit.


Page 51 of 239

Ushtrime dhe Problema

2.1 Trego tre mnyrat pr t run nj aplikim n Visual Studio.
2.2 Shpjego ndryshimin ndrmjet emrit t label dhe tekstit t label. Jep
nj shembull pr nj label me emrin tuaj, duke treguar emrin dhe
nj tekst q ju dshironi.
2.3 Cilat jan dy metodat pr t sjell n form PictureBox.
2.4 Krijo nj program ku t ket nj form me emrin: Adresa.
Programi kur run fillimisht duhet t ket t shfaqur vetm dy
butona: butonin Trego Informacionin dhe butonin Mbyll. Kur t
klikohet butoni Trego Informacionin n form duhet t shfaqen
katr rreshta: n rreshtin e par duhet t shfaqet emri dhe mbiemri
juaj, n rreshtin e dyt duhet t shfaqet numri dhe rruga e adress
suaj, n rreshtin e tret duhet t shfaqet qyteti dhe n rreshtin e
fundit Shteti. Kur t klikohet butoni Mbyll aplikimi duhet t
prfundoj.
2.5 Krijo nj program ku n butona t tregohen emrat e sicilit prej
antarve t familjes tuaj, prfshi dhe veten. Kur prdorusi t
klikoj mbi secilin buton, pra mbi emrin e secilit prej tyre n form
t shfaqen datlindjet e secilit prej antarve t familjes tuaj.
Page 52 of 239


KAPITULLI 3

VARIABLAT

N kt kapitull do t studiojm variablat, t cilat mbajn informacionin q mund
t manipulohet, t prdoret pr t manipuluar informcion tjetr ose t ruhen pr tu
prdorur m von gjat programimit. Jo vetm me Visual Basic por dhe me
shumicn e gjuhve t programimit, ajo far ne bjm sht ruajtja e vlerave n
memorien e kompiuterit dhe manipulimi i tyre.

3.1 KRIJIMI I VARIABLAVE

Nj variabl sht nj hapsir e ruajtur n memorien e kompiuterit. Mendojeni kt si
qindra apo mijra kuti boshe n nj magazin t nj fabrike prodhimi kpucsh. Secila
prej ktyre kutive boshe sht nj variabl. Supozojm se n nj kuti puntort fusin 4
pal kpuc, ndrsa n nj tjetr fusin 5 pal kepuc. Pasi e paketojn seciln kuti ata
vendosin nga nj mbishkrim pr t dalluar se sa kpuc jan n seciln kuti. Supozojm
se nj klient porosit nnt pal kpuc. Puntori i makazins vjen dhe merr nj kuti me
katr pal kpuc dhe nj kuti me pes pal kpuc dhe ja dorzon klientit. Pak a shum
n mnyr t ngjashme funksionon dhe ideja e variablave n kompiuter.
Nse ju doni t mblidhni dy numra s bashku (4+5), ju vendosni numrat n hapsirn e
ruajtjes s kompiuterit dhe i tregoni Visual Basic t llogarisi shumn. Por pa variablat kjo
sht e pamundur. Duke vazhduar prsri me shembullin e kutive pr t llogaritur
shumn e ktyre dy numrave ju do t veproni si m posht. Shkruani numrin e par 4 n
nj letr dhe vendoseni kt letr n nj kuti boshe. Shkruani numrin e dyt n nj letr
dhe e vendoseni n nj tjetr kuti boshe. Por n magazin jan qindra mijra kuti dhe
vetm dy prej tyre kan letrat me numrat n to. Pr ti dalluar ato vendosni nga nj emr
pr seciln duke u ngjitur nga nj mbishkrim numri1 dhe numri2.
Nse do t flisnim n gjuhn e kompiuterit far ju bt deri tani sht: Ju krijuat nj
hapsir n memorie (magazina dhe kutit), ju zgjodht dy kuti pr t mbajtur numrat (dy
Page 53 of 239

variabla) dhe i dhat secils prej variablave nga nj emr (numri1 dhe numri2) pr ti
mbajtur mend.
Tani le t studiojm kodin:
Dim numri1 As Integer
Dim numri2 As Integer

numri1 = 4
numri2 = 5
Le t studiojm kodin se far kuptimi ka secila fjal.
Dim Prdoret shkurtimisht pr fjaln Dimension e cila sht nj lloj variable.
Duke prdorur kt fjal ju i tregoni Visual Basic q ju po deklaroni nj variabl.
M von ne do t prdorim dhe tipe t tjera variablash, por pr tani mbani mend
q t filloni deklarimin e variablave me Dim.
numeri1 Kjo sht kutia e par me emrin e shnuar mbi t, pra kjo sht
variabla e par, ose e thn ndryshe hapsira n memorie. Pas fjals Dim Visual
Basic sht duke par pr emrin e ksaj variable. Ju mund ti jepni nj variable
fardo lloj emri, megjithat sht m mir q emri i variabls t jet i afrt me
rolin e saj.
As Integer Ju po i tregoni Visual Basic q variabla do t jet nj numr
(integer). N t arthmen ne do t prdorim dhe shum tipe t tjera t dhnash.
numeri1 = 4 Shenja = nuk sht saktsisht me shenjn = t ciln ju jeni msuar
t prdorni n matematik. Shenja = nnkupton vendosjen e nj vlere n variabl,
e cila quhet assign. Ne po i tregojm Visual Basic t vendosi vlern 4 n
variabln numri1.
Le t krijojm tani nj aplikim n Visual Basic.
Etapa 1: Krijo nj form dhe vendos n t nj Textbox dhe nj buton, t cilit
ndryshojani tekstin n Shuma. Dizenjojeni formn si n Fig. 3. 1.
Etapa 2: Kliko dy her mbi butonin Shuma dhe shiko se kursori duhet t
ndodhet ndrmjet rreshtit t dyt dhe t tret. Le t shpjegojm
kuptimin e fjalve n seciln prej fjalive.
Private Kjo komand nnkupton q asnj pjes tjetr e programit nuk mund ta
shohi kt kod prve ktij butoni.
Page 54 of 239

Sub Kjo komand sht shkurtimi i fjals Subroutine, e cila i trogon Visual
Basic q nj kod do t jet n vazhdim dhe do t ekzekutohet.
Button1 Ky sht emri pr butonin e prdorur n formn ton. Nse ju do t
pyesnit pse emri i tij quhet akoma Buttoni1 pasi ne ja ndrruam emrin,
ne do t prgjigjeshim se kur ju ndrrut emrin e butonit Visual Basic
automatikisht bn ndrrimin e ktij emri pr ju.
_Click Kjo komand quhet nj ngjarje. Kjo do t thot se kur butoni klikohet
kodi q duket pr kt buton do t ekzekutohet. Kini parasysh se kur
undrscore prdoret n fund t fjalis (_) ajo krijon nj lidhje ndrmjet
ksaj fjalie dhe fjalis n rreshtin e mposhtm.
End Sub Kodi pr butonin mbaron ktu.
Fig. 3. 1 Forma e dizenjuar.


Type kodin pr butonin ndrmjet rreshtit t dyt dhe t tret si m posht:

Dim numri1 As Integer
Dim numri2 As Integer
Dim pergjigja As Integer

Page 55 of 239

numri1 = 4
numri2 = 5

pergjigja = numri1 + numri2
MsgBox(pergjigja)
Start Debuging dhe kliko mbi shuma, output duhet t jet si n figurn e
mposhtme.
Fig. 3. 2 Prdorimi i Message Box.

Pra prgjigja pr aplikimin ton u shfaq n nj tjetr windows. Le t shohim m
n detaje kodin e prdorur n kt aplikim.
Fillimisht ne prdorm fjaln Dim pr ti treguar Visual Basic q ne duam
t vendosim nj variabl.
Pastaj ne i japim variabls nj emr (numri1).
Ne i tregojm Visual Basic q brenda n variabl sht nj numr (As
Integer).
N t njjtn mnyr sht vendosur dhe variabla numri2 dhe pergjigja.
I tregon Visual Basic q n variabln e par sht numri 4 dhe n
variabln e dyt sht numri 5. Pr t vendosur dika n variabl prdoret
assignement operator =, i cili vlern e krahut t djatht e vendos n
krahun e majt.
numri1 = 4
numri2 = 5
Page 56 of 239

N fjalin tjetr vlerat q ndodhen n seciln variabl jan mbledhur s bashku
dhe jan vendosur n variabln pergjigje.
pergjigja = numri1 + numri2
N fjalin e fundit prdoret nj Message Box, n t cilin shfaqet vlera e variabls
pergjigja.
MsgBox(pergjigja)
Por ju gjithashtu mund ta shfaqni prgjigjen dhe duke prdorur TextBox. Delete
MsgBox(pergjigja) dhe type TextBox1.Text = CStr(pergjigja). Kjo sht e njjt
me at q ju msuat n kapitullin 2, vese ktu ne po vendosim vlern pr
Textbox me kod dhe jo duke shkuar n window Properties dhe ndrruar vlern e
saj. N kt kod po prdorim CStr t ciln do ta shpjegojm n vazhdim kur t
flasi pr string.
Fig. 3. 3 Prdorimi i TextBox.


Nj tjetr mnyr, ndoshta dhe m e prdorshme, pr t vendosur vlera n
variabla sht mnyra e mposhtme, megjithat ato jan t dyja t njojtura nga
Visual Basic dhe sht n dorn tuaj ciln t prdorni.
Page 57 of 239

Dim numri1 As Integer = 4
Do t ishte mir q tani ju t praktikoni kt program duke zvendsur numrat 4
dhe 5 me numra t tjer dhe t vreni vlerat e shfaqura n output. Gjithashtu
ndrysho operatorin + me -, *, / dhe numrin e variablave.

3.2 VARIABLAT STRING

Ju msuat rreth variablave, far jan ato dhe si ti deklarojm ato. Ju msuat
fjaln integer, e cila sht nj variabl q mban numra. Po nse ju nuk doni
numra, por dika tjetr t ruhet n variabl. Pr shembull, nse ju doni t ruani
Emrin dhe Mbiemrin, t cilt nuk jan numra. Kjo realizohet nprmjet String.
far sht nj String? E vrteta sht se nj String nuk sht asgj m shum se
nj tekst. Nse ne duam q Visual Basic t ruaj tekstin ne duhet t prdorim fjaln
String. N t njjtn mnyr si deklarohet nj numr (As Integer), deklarohet
dhe nj String (As String). Nse ne duam t ruajm emrin dhe mbiemrin si String
ather:
Dim emrin As String
Dim mbiemrin As String
Fillimisht ne fillojm me Dim pr ti treguar Visual Basic pr variablat dhe
vazhdojm duke i treguar se duam t ruajm tekstin n variabl si: As String. Ne i
deklaruam variablat si String por tani duhet t ruajm vlerat n to. Le t ruajm
emrin Gjergji dhe mbiemrin Shaska n to.
Emri = Gjergji
Mbiemri = Shaska
Ktu ne i themi Visual Basic t ruaj fjaln Gjergji n variabln emri dhe fjaln
Shaska n variabln mbiemri. Si e shihni pr t ruajtur si String sht e
detyrushme prdorimi i quotation marks. Vetm nprmjet ktyre shenjave
Visual Basic e dallon tekstin.
Pr ta testuar kt shtoni dhe nj buton dhe vendosni Text nn Properties: String Teksti.
Forma do t duket n Fig. 3. 4. Kliko dy her mbi butonin dhe shto kodin pr kt buton
si:
Dim emri As String
Dim mbiemri As String
Page 58 of 239

Dim emriMbiemri As String

emri = "Gjergji"
mbiemri = "Shaska"
emriMbiemri = emri & " " & mbiemri

TextBox1.Text = emriMbiemri
Ju tashm jeni familjar me kt kod, ku i vetmi rresht i cili duhet shpjeguar sht rreshti:
emriMbiemri = emri & " " & mbiemri
N variabln emriMbiemri vendosen t dyja vlerat e variblave emri dhe mbiemri t
lidhura me shenjn e dollarit &. Arsyeja prse po prdorim dy shenja dollari ku ndrmjet
tyre kemi nj String me hapsir sht pr t krijuar hapsirn ndrmjet emrit dhe
mbiemrit. Kto lloj lidhjesh t String n Visual Basic quhen Concatenation. Pasi Visual
Basic lidh t dyja String s bashku, ai i ruan ato n variabln emriMbiemri. Testo
programin i cili duhet t duket si n figurn e mposhtme.

Fig. 3. 4 Design Form pr String Tekst.



Page 59 of 239

Fig. 3. 5 Testimi i String Test.


3.2.1 Marrja e tekstit nga TextBox dhe vendosja n variabl
N vend t vendosim direkt tekstin n nj variabl, si Gjergji ose Shaska, ju
mund t merrni tekstin nga nj TextBox dhe ta vendosni n nj variabl. Le ta
shohim se si mund ta realizojm kt duke prdorur t njjtin program. Pr kt
fillimisht shtoni nj TextBox n form dhe vendosni pr vlern Name
txtMbiemri. N t njjtn windows Properties shko n Text dhe fshini vlern e
saj dhe mos type asnj vler n t. Kliko n TextBox1 (ndodhet n form e
prdorm m par). Ndrysho Name nga TextBox1 n txtMbiemri. Ne po u japim
t dy TextBox emra t cilt jan t prafrt me funksionin e tyre, pasi ne do i
prdorim kto n kod. Ndrysho kodin pr Button2 si:
Dim emri As String
Dim mbiemri As String
Dim emriMbiemri As String

emri = txtEmri.Text
mbiemri = txtMbiemri.Text
emriMbiemri = emri & " " & mbiemri

MsgBox(emriMbiemri)
Start Debugging dhe type emrin dhe mbiemrin tuaj n secilin TextBox. Kliko
butonin String Tekst dhe vreni se Message Box duhet t duket si n Fig. 3. 6. N
Page 60 of 239

kt aplikim nuk po prdorim vetm Gjergji Shaska, pasi ka dhe shum emra t
tjer. Kushdo nga prdorusit mund t type nj emr dhe mbiemr dhe ai do t
shfaqet n Message Box.

Fig. 3. 6 Start Debugging me Message Box.


N aplikimin pr programin e msiprm kur ne typim emrin dhe mbiemrin pr nj
persorn t caktuar dhe e shfaqim at emr n label dhe duam t shfaqim nj tjetr
emr dhe mbiemr, ne duhe t shkojm n secilin TextBox dhe t fshim ekzistusin
q ta zvendsojm me t emrin dhe mbiemrin e ri. Kjo mnyr nuk duket shum
praktike. N kt program ne do t krijojm nj aplikim pr t realizuar kt.
Etapa 1 Dizenjo nj form si n figurn e mposhtme.




Page 61 of 239


Fig. 3. 7 Dizenjimi i Forms pr butonin Pastron.


Etapa 2 Kliko dy her mbi butonin Emri dhe type kodin e mposhtm:
' Deklaron nje variabel per emrin dhe mbiemrin
Dim strEmriMbiemri As String

' Kombino emrin dhe mbiemrin dhe kopjo rezultatin ne lblEmriMbiemri
strEmriMbiemri = txtEmri.Text & " " & txtMbiemri.Text
lblEmriMbiemri.Text = strEmriMbiemri
Etapa 3 Kliko dy her mbi butonin Pastron dhe type kodin e mposhtm, pr t cilin
vini re mnyrn se si pastrohen nga teksti TextBox dhe si pastrohen Label
' Fshin tekstin per TextBox dhe Label
txtEmri.Clear()
txtMbiemri.Clear()
lblEmriMbiemri.Text = String.Empty

' Vendos kursorin ne txtEmri
txtEmri.Focus()
Page 62 of 239

Etapa 4 Kliko dy her mbi butonin mbyll dhe type kodin pr t cilin ju tashm dini
ta shkruani. Save dhe Start Debugging. Testo programin duke futur n t emra
dhe mbiemra t ndryshm dhe duke klikuar mbi butonin Pastro.

3.3 DATA PRIMITIVE

Gjenden tet data primitive: katr jan pr numrat integers, dy jan pr numrat
floating, nj lloj data character dhe nj boolean data. Dy jan llojet baz t
vlerave numerike: integers q nuk ka fraksione dhe floating q ka fraksione. Data
Integers jan katr tipe: byte, short, int dhe long. Floating tipe jan dy: float dhe
double. Nj prmbledhje e tyre sht dhn n Fig. 3. 8.
Tipi
Ruajtja
(bits) Vlera Min Vlera Max
byte 8 -128 127
short 16 -32,768 32.767
int 32 -2,147,483,648 2147483648
long 64 -9.22E+18 9.22E+18
float 32 -3.40E+38 3.4E^+38
double 64 -1.7E^308 1.7E^308
Fig. 3. 8 Vlerat numerike pr do tip.
Tipet numerike jan signed, q nnkupton q t dyja numrat pozitiv dhe numrat
negativ mund t ruhen n to. Duhet treguar kujdes se cili tip primitiv data duhet
prdorur, e cila varet nga krkesat e programit q ne jemi duke shkruar.
Megjithat m t prdorshmet n shembujt tan do t jen int, long dhe float.
Nj boolean vler prdoret me fjaln e rezervuar boolean, e cila ka vetm dy
vlera: true (e vrtet) dhe false (e gabur). Boolean jan gjersisht t prdorura n
programim dhe prdoren kur kemi t bjm vetm me dy pozicione, e vrtet apo
e gabuar. Vlerat pr boolean jan sidomos t prdorshm kur kemi t bjm me
loops apo me if statement.

3.3.1 Konvertimi i datave
Ndonjher sht e nevojshme t konvertojm nga nj tip data n nj tjetr tip
data por duhet t tregojm kujdes q mos t humbim data. E rndsishme pr tu
kuptuar kur ne prdorim konvertimin e datave sht q ne mund t konvertojm
nga nj tip data me madhsi m t vogl n nj tip data me madhsi m t madhe
Page 63 of 239

pa humbur data, kto quhen widening conversions. E anasjellta kur ne
konvertojm nga nj tip data me madhsi m t madhe n nj tip data me madhsi
m t vogl quhen narrowing conversions dhe mund t na japi humbje n data.
Duke qen se widening conversions nuk kan humbje n data ato jan t sigurta
dhe t rekomanduara t prdoren. N se duam t konvertojm nga byte n int
ather kemi t bjm me widening conversions pasi po konvertojm nga byte q
sht 8 bits to int q sht 32 bits. Pra madhsia e int sht m e madhe se
mdhsia e byte kshtu q ky konvertim sht i sigurt (shiko Fig. 3. 8). Nga ana
tjetr nse do t konvertonim nga int n byte do t kishim humbje t data pasi int
sht 32 bits dhe nuk mund t vendoset n byte q sht 8 bits. N kt rast kemi
narrowing conversions. Fig. 3. 9 jep nj prmbledhje t primitive data pr
widening conversions. Provoni si nj ushtrim t krijoni nj tabel t till pr
narrowing conversions.
Nga data Ne data
byte short, int, long, float, double
short int, long, float, double
char int, long, float, double
int long, float, double
long float, double
float Double
Fig. 3. 9 Konvertimet widening.

3.3.2 Programi pr testimin e tipeve data
Deri tani ne kemi par variabla t deklaruara si: As String dhe As Integer. Por ka
variabla q mund t deklarohen dhe n shum forma t tjera.
Etapa 1: Krijoni nj program t ri dhe vendosini emrin TipetData (ose nj
emr tjetr n se dshironi). Vendosni n form nj buton me vlerat:
Text - Pergjigja dhe nj tekst me vlerat: Name - txtNumri, Text -
Delete vlerat dhe mos shno gj. Kliko mbi form dhe ndrysho Text
nn Properties n Testo Data.
Etapa 2: Kliko dy her mbi butonin Pergjigja dhe type kodin e mposhtm:

Dim tekstNumri As Short = CShort(txtNumri.Text)

MsgBox(tekstNumri)

Page 64 of 239

Vini re tipin e ri t variabls As Short, e cila nnkupton nj numr Short i cili
ndodhet ndrmjet -32,768 dhe 32,768 (shiko Fig. 3. 8). Pr ta kuptuar m
mir Start Debugging dhe fusni numrin 1 dhe kliko butonin Pergjigja. Numri
1 do t shfaqet n Message Box si n Fig. 3. 10. Kryeni t njjtat veprime pr
numrin 2, pastaj kryeni t njjtat veprime pr 3, 4, 5, dhe 6. Vini re se kur ju
shtypni Pergjigja pr numrin 6 programi nuk funksionon m, por na tregon se
dika sht gabim n kod. Error message sht treguar n





Fig. 3. 11. As Short mund t mbaj nj numr deri n 5 shifra, jo me 6 shifra.

Fig. 3. 10 Testo As Short.


Page 65 of 239






Fig. 3. 11 Error Message.

Etapa 3: Kliko n Form1.vb dhe ndrysho kodin nga As Short n As Integer.
Provo prsri numrat dhe trego kujdes kur funsni numrin 6. Si e
shihni programi vazhdon funksionin e tij normalisht. Po ti referoheni
prsri Fig. 3. 8, shohim se pr Integer kufiri i vlerave sht nga -
2,147,483,648 n 2,147,483,648. Testojeni programin dhe me tipe t
tjera vlerash, gjithashtu dhe me vlera negative.
Etapa 4: Pasi ta keni testuar programin pr tipe t ndryshme vlerash, lereni
at n As Integer. Start Debugging dhe fusni n TextBox numrin
12.37 dhe kliko Pergjigja. Numri 12 shfaqet n Message Box, pasi ju
po prdorni As Integer. Testojeni programin me numra t tjer
dhjetor, gjithashtu dhe me numra negativ.
Page 66 of 239

3.3.2 Transferimi i prmbajtjes s nj TextBox
Le t shohim tani se si mund t transferojm prmbajtjen e nj TextBox n nj
Label dhe gjithashtu si t transferojm tekstin e nj Label n nj TextBox.
Dizenjo nj form e cila t prmbaj dy butona, nj TextBox dhe nj Label. Ju
tashm keni msuar si ta bni kt, kshtu q ne nuk po i shpjegojm n detaje
veprimet q duhet t kryeni. Forma juaj duhet t duket si Fig. 3. 12. Ndrysho
vlerat pr to si m posht (ju tashm e kuptoni se vlerat e tyre nuk duhet t jen
saktsisht si vlerat e mposhtme, ju mund t prdorni vlera dhe variablat tuaja) :
TextBox
Name: txtVariabla
Text: Fshi vlern dhe lere bosh
Label
Name: lblTransferon
Text: Label
Button
Name: btnTransferon
Text: Transferon ne TextBox
Button
Name: cmdTransferonLabel
Text: Transferon ne Label
Fig. 3. 12 Dizenjimi i forms Transferon Informacionin.
Page 67 of 239


Kliko dy her mbi butonin Transferon ne TextBox dhe type kodin si m posht:
Dim permbajtjaLabel As String = lblTransferon.Text

txtVariabla.Text = permbajtjaLabel

Kliko dy her mbi butonin Transferon ne Label dhe type kodin si m posht:
Dim permbajtjaTextBox As String = txtVariabla.Text

lblTransferon.Text = permbajtjaTextBox

Start Debugging dhe testo programin. Kur ju klikoni mbi butonin Transferon ne
Tekst ju duhet t shihni Label n TextBox, e cila sht vlera e Label q ne i
dham m par. Ju mund ta ndryshoni vlern e saj me emrin tuaj dhe ta testoni
at. Pasi t typni nj tekst q ju dshironi n TextBox kliko butonin Transfer ne
Label dhe vereni se si teksti do t transferohet n Label. Nse do t bnim nj
prmbledhje t atyre q msuam n kt program pr mnyrn se si realizohen
kto transferime do ti prmlidhnim me tre pika:
Krijo nj variabl
Transfero tekstin e TextBox (Label) n variabl
Transfero variabln n Label (TextBox)
Page 68 of 239

3.4 PROJEKTI KALKULATORI

N kt program ne do t krijojm nj aplikim t nj kalkulatori, i cili nuk do t jet
shum i sofistikuar dhe nuk do ti prmbaj t gjitha funksionet e tij, por vetm se si t
mbledhim dy ose m shum numra. N kt program ju do t fitoni m shum praktik
me prdorimin e variablave dhe transferimin e vlerave.
Etapa 1: Krijoni nj projekt t ri dhe quajeni Kalkulatori. Fillimisht le t
dizenjojm formn. Kush sht funksioni i nj kalkulatori? Ai
nevoitet pr t mbledhur numrat: duke shtypur fillimisht numrin,
pastaj duke shtypur butonin plus, vzhdojm me numrin e dyt dhe n
kt mnyr deri sa t fusim t gjith numrat dhe n fund shtypim
butonin e barazimit. Nisur nga kjo forma ka nevoj pr butonat duke
nisur nga 0 n 9, butonin +, butonin = dhe nj bouton pr t fshir
numrat n nj TextBox pasi t kemi marr vlern pr nj shum dhe
duam t fusim numra t tjer. Le t vendosim vlerat pr butonat dhe
TextBox. Pr t pasur nj ide m t sakt referohuni Fig. 3. 13, ku
paraqitet dizenjimi i forms pr kalkulatorin.
Pr butonat nga 0 n 9
Name: btn dhe me radh numrat nga 0 n 9
Text: Me radh numrat nga 0 n 9
Pr butonin e shums Name: cmdShuma dhe Text: +
Pr butonin e barazimit Name: cmdBarazimi dhe Text: =
Pr butonin e pastrimit t TextBox Name: cmdPastron dhe Text: Pastron
Supozojm se ju doni t mblidhni 3 me 5. Ather klikoni 3, i cili do t shfaqet n
TextBox. Pastaj kliko +, pastaj 5, i cili do t bj q 3 t zhduket dhe t shfaqet 5
n TextBox dhe s fundi kliko shenjn e barazimit =. Numri 8 do t shfaqet n
TextBox. Pr t fshir numrin 8 kliko butonin Pastro.
Etapa 2: N etapn e par ne krijuam dizenjimin e forms, le t shkrujm
tani kodin e saj. Le t fillojm me kodin pr butanat, pasi ata nuk
bjn gj tjetr por vetm transferojn vlerat nga butonat n
TextBox. E gjith puna realizohet me butonat e shums dhe
barazimit. Kliko dy her mbi butonin 0 dhe type kodin si m
posht:
txtShfaq.Text = btnZero.Text
Page 69 of 239

far ne po themi n kt fjali sht: vlern e tekstit pr btnZero
transferoje n TextBox. T njjtat veprime kryej dhe pr butonat e
tjer deri n numrin 9. Ki parasysh se ndyshimi i vetm n kod
sht ai pr referimin e emrit, pr shembull pr butonin 1 do t jet
btnNje dhe kshtu me radh. sht ide e mir q tani t Start
Debugging dhe t provoni numrat nga 0 n 9 se si transferohen n
TextBox. Megjithat pasi ti keni provuar t gjith numra provoni
dhe nj numr me dy shifra si psh 15. Vini re se ekziston nj
problem. Kur ju tentoni t fusni numrin e dyt 5, numri i par 1
fshihet dhe shfaqet numri i dyt. Ajo q ne na neoitet sht se far
ndodhet n TextBox duhet t qndroj aty dhe jo t zhduket kur
numri i dyt klikohet. Kjo harrihet me kodin e mposhtm, ku ne
po japim kodin e plot vetm pr butonin zero. Pasi t fusni kodin
pr butonat nga 0 n 9, testoini ata dhe vreni se si tani mund t
fusim dhe m shum se nj numr.
txtShfaq.Text = txtShfaq.Text & btnZero.Text

Fig. 3. 13 Dizenjimi i forms pr kalkulatorin.


Page 70 of 239

Deri tani ne kemi deklaruar variabla brenda metodave (local variabla) por tani ne
na nevoiten dy variabla jasht metodave (public variabla). Mendoni sikur jeni t
ulur n nj klas n shkolln tuaj. Nj shoku juaj ndodhet n klasn ngjitur dhe ju
doni t komunikoni me t. E vetmja mnyr pr ta br kt sht nj person i
tret i cili ka t drejtn t shkoj n t dyja klasat.
Duke patur parasysh kt shembull mendoni se si butonat do t shkmbejn
informacionin ndrmjet tyre.far ne na nevoitet sht nj variabl e deklaruar
global e cila mund t harrihet nga t gjitha metodat. Pas rreshtit t par
Public Class Form1
type kodin n vazhdim ku pr rreshtin e par mos u shqetsoni pasi sht pjes e
libraris s Visual Basic.
Inherits System.Windows.Forms.Form

Dim total1 As Integer
Dim total2 As Integer
Ne po krijojm dy variabla glpbal pasi do ta shihni se do na nevoiten m posht.
Megjithat nuk sht e thn q ne ta kuptojm q n fillim se na nevoiten dy
variabla, sa her q ne t kemi nevoj pr nj t till e deklarojm at.
Etapa 3: N kt etap do t shkruajm kodin pr butonin shuma. Kur ne
mbledhim numrat sbashku, ne kemi nevoj q Visual Basic ta
mbaj mend numrin e par, sepse kur ne klikojm shenjn e
barazimit numri i par do t mblidhet me numrin e dyt. Kjo
realizohet nprmjet kodit t mposhtm ku shenja CInt prdoret
pr t konvertuar n Integer dhe shenja Val na siguron se numri
brenda kllapave sht nj numr. N rreshtin tjetr ne po fshim
tekstin pr ta ln TextBox bosh. Prve mnyrs duke prdorur
metodn Clear ka dhe nj mnyr tjetr pr ta realizuar kt si:
txtShfaq.Text = , e cila tregon se nuk ka asgj n TextBox.
total1 = CInt(total1 + Val(txtShfaq.Text))
txtShfaq.Clear()
Etapa 4: Tani ju duhet t jeni n gjendje jo vetm ta shpjegoni butonin pr
barazimin por madje ta shkruani vet kodin. Megjthat m posht
ne po e japim kodin pr butonin e barazimit. Pr ta kuptuar m
mir kt fshini nga kodi rreshtin e fundit total1 = 0 dhe vini re se
far ndoth kur mblidhni numrat hern e dyt.
Page 71 of 239

total2 = CInt(total1 + Val(txtShfaq.Text))
txtShfaq.Text = CStr(total2)
total1 = 0
Pr butonin Pastron ju duhet ta shkruani vet kodin. M posht ne po japim dhe
kodin e plot t ktij programi.
Public Class Form1
Inherits System.Windows.Forms.Form

Dim total1 As Integer
Dim total2 As Integer

Private Sub btnZero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnZero.Click

txtShfaq.Text = txtShfaq.Text & btnZero.Text
End Sub

Private Sub btnNje_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnNje.Click

txtShfaq.Text = txtShfaq.Text & btnNje.Text
End Sub

Private Sub btnDy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnDy.Click
txtShfaq.Text = txtShfaq.Text & btnDy.Text
End Sub

Private Sub btnTre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnTre.Click
txtShfaq.Text = txtShfaq.Text & btnTre.Text
End Sub

Private Sub btnKater_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnKater.Click
txtShfaq.Text = txtShfaq.Text & btnKater.Text
End Sub

Private Sub btnPese_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnPese.Click
txtShfaq.Text = txtShfaq.Text & btnPese.Text
End Sub

Private Sub btnGjashte_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnGjashte.Click
Page 72 of 239

txtShfaq.Text = txtShfaq.Text & btnGjashte.Text
End Sub

Private Sub btnShtate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnShtate.Click
txtShfaq.Text = txtShfaq.Text & btnShtate.Text
End Sub

Private Sub btnTete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnTete.Click
txtShfaq.Text = txtShfaq.Text & btnTete.Text
End Sub

Private Sub btnNente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnNente.Click
txtShfaq.Text = txtShfaq.Text & btnNente.Text
End Sub

Private Sub cmdShuma_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdShuma.Click

total1 = CInt(total1 + Val(txtShfaq.Text))
txtShfaq.Clear()

End Sub

Private Sub cmdBarazim_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBarazim.Click

total2 = CInt(total1 + Val(txtShfaq.Text))
txtShfaq.Text = CStr(total2)
total1 = 0

End Sub

Private Sub cmdPastron_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdPastron.Click
txtShfaq.Clear()
End Sub
End Class

3.5 LLOGARITJA E MIMIT PR NJ DHOM HOTELI

Page 73 of 239

Menazheri i nj hoteli ju krkon ju si student t informatiks t llogarisni totalin
e shpenzimeve t nj klienti i cili qndron nj nat n kt hotel. Klienti ka disa
shrbime nga hoteli mbi bazn e t cilave atij do ti llogaritet shuma totale q do t
paguaj.
Pagesa pr dhomn n baz t pagess pr do nat
Shrbimi n dhom
Pagesa pr telefonin
N Fig. 3. 14 tregohet skicimi i forms pr t llogaritur pagesn totale q duhet t
paguaj klienti bazuar n shrbimet q i ofrohen dhe n mimin e dhoms. Pasi t
studioni formn n kt figur sht momenti q ne t krijojm nj list me t
gjitha kontrollet q ne do t prdorim n kt aplikim.
Label: Text Hotel
Label: Text Data
Label: Name lblDataSot Text fillimisht bosh
Label: Text Ora
Label: Name lblOraSot Text fillimisht bosh
Page 74 of 239


Fig. 3. 14 Vizatimi i aplikimit.
Group box: Text Informacioni per Dhome TabIndex 0 (duket 0.0 n tab)
Label: Text Netet TabIndex 0 (duket 0.0 n
tab)
TextBox: Name txtNetet TabIndex 1 (duket 0.1 n tab)
Label: Text Pagesa ne Nate TabIndex 2 (duket 0.2 n tab)
TextBox: Name txtPagesaNate TabIndex 3 (duket 0.3 n tab)
Page 75 of 239

Group box: Text Pagesa Shtese TabIndex 1
Label: Text Sherbim Dhome TabIndex 0 (duket 1.0 n
tab)
TextBox: Name txtSherbimDhome TabIndex 1 (duket 1.1 n tab)
Label: Text Telefon TabIndex 2 (duket 1.2 n
tab)
TextBox: Name txtTelefon TabIndex 3 (duket 1.3 n
tab)
Group box: Text Totali
Label: Text Pagesa per Dhome
Label: Name lblPagesaDhome
Label: Text Pagesa Shtes
Label: Name lblShtoPagesen
Label: Text Shuma
Label: lblShuma
Label: Text Taks
Label: Name lblTaks
Label: Text Totali
Label: Name lblTotali
Button: btnLlogaritPagesen Text L&logarit Pagesen
TabIndex 2
Button: btnPastron Text P&astron
TabIndex 3
Button: btnMbyll Text M&byll
TabIndex 4
N Fig. 3. 15 jepet flowchart pr metodn btnLlogarit_Click. N kt figur jepet
dhe nj simbol me shenjn e A dhe me nj rreth i cili prdoret pr t treguar se
Page 76 of 239

sht vazhdim i flowchart por pr ta treguar t gjith figurn n nj faqe prdoret
nj simbol i till n Microsoft Visio. Ky simbol quhet connector symbol.
Studioni flowchart duke ju referuar dhe Fig. 3. 14.

Fillon
Llogarit pagesen e
Dhomes.
Shumezon # e
neteve me
pagesen per nate.
Ruan rezultatin ne
decPagesDhom
Kopjon vleren e
decPagesDhom ne
lblPagesDhom.Text
Llogarit Pagesat
Shtese. Shton
sherbimin ne
dhome, telefon
dhe ruan rezultatin
ne decShtoPages
Kopjo vleren e
decShtoPages ne
lblShtoPages.Text
A
Llogarit Taksen.
Shumezon
decShum me
decTAKS dhe ruan
rezultatin ne
decTaks
Kopjon vleren e
decTaks ne
lblTaks.Text
Llogarit pagesen
totale. Shton
decShuma dhe
decTaks. Ruan
rezultatin ne
decTotal
Kopjon vleren e
decTotal.Text.
Mbaron
A

Fig. 3. 15 Flowchart pr btnLlogarit_Click.

Page 77 of 239

Fillon
Pastron
Informacionin.
Ruan nje string
boshe ne
txtNetet.Text dhe
txtPagesNate.Text
Pastron Pagesat
shtese. Ruan nje string
boshe ne
txtSherbimDhom.Text
dhe txtTelefon.Text.
Pastron komplet
fushen. Ruan nje string
boshe
lblPagesaDhom.Text
dhe lblShtoPages.Text.
A
Ruan datat ne
lblDataSot.Text
dhe lblOraSot.Text
Kthen fokusin ne
txtNetet kontrol.
Mbaron
A

Fig. 3. 16 Flowchart pr btnMbyll_Click.


Fig. 3. 17 Flowchart pr btnMbyll_Click.
Page 78 of 239

Etapa 1: Tani q ne kemi krijuar t gjith tablon e aplikimit ton, ne jemi gati t
krijojm programin. Krijo nj projekt t quajtur Hoteli. Krijo nj form dhe
emrto t gjitha kontrollet sipas vlerave q i treguam m sipr. Forma e krijuar do
t duket si fig.
Fig. 3. 18 Forma pr aplikimin Hoteli.


Etapa 2: Kliko dy her mbi fardo pjese t forms, e cila nuk sht e zn prej
ndonj kontrolli. Kodi duhet t hapet me nj proedur pr Form1_Load. Kjo
sht nj lloj proedure e cila ekzekutohet automatikisht do her q forma
shfaqet. N rastin ton do her q ne do t Start Debugging, n label pr datn
dhe orn do t shfaqet data dhe ora n at moment. Kjo realizohet nprmjet kodit
t mposhtm ku data dhe ora merren nga sistemi (komjuteri) dhe shfaqen n
label prkatse.
'Merr daten e sotme nga sistemi dhe e shfaq
lblDataSot.Text = FormatDateTime(Now, DateFormat.LongDate)
'Merr oren nga sistemi dhe e shfaq
lblOraSot.Text = FormatDateTime(Now, DateFormat.LongTime)
Etapa 3: Kliko dy her mbi butonin Llogaritja Pageses dhe kompleto proedurn
sipas kodit t mposhtm.
Page 79 of 239

'Deklaro variablat per llogaritjet
Dim decPagesaDhom As Decimal
Dim decShtoPages As Decimal
Dim decShuma As Decimal
Dim decTaks As Decimal
Dim decTotal As Decimal
Const decTAKS_PER As Decimal = 0.1D

Try
'Llogarit dhe shfaq pagesen e dhomes
decPagesaDhom = CDec(txtNetet.Text) * CDec(txtPagesaNate.Text)
lblPagesaDhom.Text = FormatCurrency(decPagesaDhom)
Catch ex As Exception
MessageBox.Show("Netet dhe Pagesa ne Nate duhet te jene numra", _
"Gabim")
End Try

Try
'Llogarit dhe shfaq pagesen shtese
decShtoPages = CDec(txtSherbimeDhome.Text) + CDec(txtTelefon.Text)
lblShtoPagesen.Text = FormatCurrency(decShtoPages)
Catch ex As Exception
MessageBox.Show("Sherbim Dhome dhe Telefon duhet te jen numra", _
"Gabim")
End Try

'Llogarit dhe shfaq shumen
decShuma = decPagesaDhom + decShtoPages
lblShuma.Text = FormatCurrency(decShuma)

'Llogarit dhe shfaq taks
decTaks = decShuma * decTAKS_PER
lblTaks.Text = FormatCurrency(decTaks)

'Llogarti dhe shfaq totalin
decTotal = decShuma + decTaks
lblTotali.Text = FormatCurrency(decTotal)
N kt proedur ne po prdorim Exception handling, e cila prdoret pr t
krkuar nse prdorusi nuk do t fusi nj vler n ndonj prej TextBox.
Supozojm se prdorusi harron t fusi vlern pr Netet ose Pagesa ne Nate.
Ather blloku i par Try dhe Catch ex As Exception do t shfaqi mesazhin si n
Fig. 3. 19. Ndrsa pr bllokun e dyt, pra nse prdorusi do t harroj ndonj apo
t dyja vlerat pr Sherbim Dhome apo Telefon do t shfaqet mesazhi n Fig. 3.
20.
Page 80 of 239

Etapa 4: Kliko dy her mbi butonin Pastron. Kompleto proedurn sipas kodit t
mposhtm. far ne po bjm n kt kod sht se ne po fshim vlerat n
TextBox dhe n Label. Tregoni kujdes n mnyrn se si kjo realizohet pr
TextBox dhe pr Label. N fund t ksaj proedure perdoret: txtNetet.Focus() e
cila nuk bn gj tjetr por vetm sa kthen kursorin n fushn e par. Ju tashm
jeni t aft t shkruani proedurn pr butonin Mbyll. Pasi ta keni ruajtur
programin, Start Debugging dhe pr ta testuar programin tuaj prdorni t njjtat
vlera me ato t cilat ne kemi prdorur n Fig. 3. 21. Nse do t hasni vshtirsi
dhe programi nuk do t kompilet, ne po e japim t plot kodin n fund t ktij
kapitulli.

Fig. 3. 19 Message box i shfaqur nga blloku i par exception handler.






Page 81 of 239

Fig. 3. 20 Message box sipas exeption handler t dyt.


Fig. 3. 21 Aplikimi Hoteli n Start Debugging.

Page 82 of 239


Kodi i plot pr projektin Hoteli.
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load

'Merr daten e sotme nga sistemi dhe e shfaq
lblDataSot.Text = FormatDateTime(Now, DateFormat.LongDate)
'Merr oren nga sistemi dhe e shfaq
lblOraSot.Text = FormatDateTime(Now, DateFormat.LongTime)
End Sub

Private Sub btnLlogaritPagesen_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnLlogaritPagesen.Click

'Deklaro variablat per llogaritjet
Dim decPagesaDhom As Decimal
Dim decShtoPages As Decimal
Dim decShuma As Decimal
Dim decTaks As Decimal
Dim decTotal As Decimal
Const decTAKS_PER As Decimal = 0.1D

Try
'Llogarit dhe shfaq pagesen e dhomes
decPagesaDhom = CDec(txtNetet.Text) * CDec(txtPagesaNate.Text)
lblPagesaDhom.Text = FormatCurrency(decPagesaDhom)
Catch ex As Exception
MessageBox.Show("Netet dhe Pagesa ne Nate duhet te jene numra", _
"Gabim")
End Try

Try
'Llogarit dhe shfaq pagesen shtese
decShtoPages = CDec(txtSherbimeDhome.Text) + CDec(txtTelefon.Text)
lblShtoPagesen.Text = FormatCurrency(decShtoPages)
Catch ex As Exception
MessageBox.Show("Sherbim Dhome dhe Telefon duhet te jene numra", _
"Gabim")
End Try

'Llogarit dhe shfaq shumen
decShuma = decPagesaDhom + decShtoPages
lblShuma.Text = FormatCurrency(decShuma)
Page 83 of 239


'Llogarit dhe shfaq taks
decTaks = decShuma * decTAKS_PER
lblTaks.Text = FormatCurrency(decTaks)

'Llogarti dhe shfaq totalin
decTotal = decShuma + decTaks
lblTotali.Text = FormatCurrency(decTotal)
End Sub

Private Sub btnPastron_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPastron.Click

'Pastron fushen per informacionin per dhome
txtNetet.Clear()
txtPagesaNate.Clear()
'Pastron fushen pagesa shtese
txtSherbimeDhome.Clear()
txtTelefon.Clear()

'Pastron fushen pagesa totale
lblPagesaDhom.Text = String.Empty
lblShtoPagesen.Text = String.Empty
lblShuma.Text = String.Empty
lblTaks.Text = String.Empty
lblTotali.Text = String.Empty

'Merr daten nga systemi dhe e shfaq.
lblDataSot.Text = FormatDateTime(Now, DateFormat.LongDate)
'Merr oren nga sistemi dhe e shfaq.
lblOraSot.Text = FormatDateTime(Now, DateFormat.LongTime)

'Kthen kursorin ne Label lblNetet, e cila eshte e para
txtNetet.Focus()

End Sub

Private Sub btnMbyll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnMbyll.Click
'Perfundon aplikimin duke mbyllur window.
Me.Close()
End Sub
End Class


Page 84 of 239

Ushtrime dhe Problema

3.1 Krijo nj program ku t kryeni veprimet aritmetike n dy mnyra:
duke prdorur Message Box dhe TextBox. 1) 12 + 12, 2) 15 6, 3)
10 * 2 / 5. Printo kodin dhe programin n Start Debugging.
3.2 Pasi t krijoni nj program ku t shfaqet emri dhe mbiemri juaj me
hapsir ndrmjet tyre dhe pa hapsir ndrmjet tyre, printoni
kodin dhe programin kur sht n Start Debugging.
3.3 Krijo nj program ku Start Debugging t jet i ngjashm me Fig. 3.
6 por n vend t Message Box t prdorni nj TextBox.
3.4 Krijo nj program t ngjashm me at t problems 3.3, ku i pari t
shfaqet emri dhe i dyti t shfaqet mbiemri.
3.5 Krijoni nj program ku t llogarisni shumn: 23.7 + 7 dhe rezultati
t shfaqet si Integer.
3.6 N aplikimin Hoteli shto pr Pagesa Shtese dhe nj tjetr shrbim:
Taksi. Testojeni programin dhe sigurohuni q vlerat e shfaqura
jan t saktat.

Page 85 of 239


KAPITULLI 4

FJALIT E KUSHTZUARA

N kt kapitull do t shpjegojm fjalit e kushtzuara si: If ...Then, If... Then...
Else, If ... Then ElseIf dhe fjalit Select Case. Si dhe nnkuptohet nga titulli,
kto fjali duke u bazuar n kushte t caktuara krijojn mundsin e zgjedhjes se
cila fjali do t ekzekutohet. do vendim merret n baz t nj kushti q nse sht
i vrtet, fjalia do t ekzekutohet ose nse nuk sht i vrtet, fjalia nuk do t
ekzekutohet.

4.1 FJALIA IF

Prpara se t shpjegojm fjalin if le t shpjegojm disa operator q jan shum t
rndsishm jo vetm n Visual Basic por dhe n programet e tjera. Nj program
fillon me fjalin e par dhe vazhdon hap pas hapi deri sa harrin n fund t
programit. Rregullat n t cilat fjalit ekzekutohen n nj program quhen flow of
control. Fjalit t cilat kontrollojn flow jan t ndara n dy kategori:
conditionals dhe loops. N Fig. 4. 1 po
tregojm operatort dhe kuptimin e secilit prej tyre.
Operator Kuptimi
== e barabarte me
!= jo e barabarte me
< me e vogel se
<= me e vogel se ose e barabarte
> me e madhe se
=> me e madhe se ose e barabarte
Fig. 4. 1 Operatort dhe kuptimi i tyre.
N Fig. 4. 2 po japim operatort logjik q prdoren gjat fjalive t kushtzuara
n programim. Operatort logjik kan vetm dy vlera: true (e vrtet) ose fallse
(jo e vrtet).
Page 86 of 239

Operator Kuptimi
! logical NOT (jo i vertet)
&& logical AND (edhe)
|| logical OR (ose)
Fig. 4. 2 Logical operators.
Operatori (!) prdoret pr logical NOT i cili nse variabla sht e vrtet resultati
do t jet jo i vrtet dhe e anasjellta nse variabla do t jet jo e vrtet rezultati
do t jet i vrtet. Duhet pasur parasysh q vlera e variabls nuk ndryshon.
Operatori && prdoret pr logical AND. Rezultati do t jet i vrtet vetm n
rastin kur t dyja variablat jan t vrteta n t gjitha rastet e tjera rezultati sht
jo i vrtet. Operatori || sht jo i vrtet vetm n rastin kur t dyja variablat jan
jo t vrteta, n rastet e tjera sht i vrtet. far tham m lart jan t
shpjeguara n Fig. 4. 3 ku 0 prdoret pr jo t vrtet dhe 1 prdoret pr t vrtet.
A B ! A !B A&&B A||B
0 0 1 1 0 0
0 1 1 0 0 1
1 0 0 1 0 1
1 1 0 0 1 1
Fig. 4. 3 Boolean algebra pr variablat A dhe B.
N nj fjali ku t tre operatort jan t prdorur radha e kryerjes s veprimeve
sht: logical NOT (!), logical AND (&&) dhe logical OR (||). Nse do i kthehemi
prsri Fig. 4. 3 do t vm re se pr A && B mjafton q krahu i majt t jet 0
dhe rezultati do t jet 0 dhe pr A||B mjafton q krahu i majt t jet 1 resultati
do t jet 1. Ky konkluzion do na ndihmoj n prcaktimin e shpejt t rezultatit
gjat prdorimit t operatorve n fjalit if.

4.1.1 Fjalia If . . . Then
Tani ne jemi gati t vim n at q sht qllimi i ktij kapitulli, fjalia if. Nj fjali
if konsiston n fjaln e rezervuar if e ndjekur nga nj shprehje boolean dhe nga
nj fjali tjetr. Nse kushti sht i vrtet fjalia do t ekzekutohet dhe nse kushti
nuk sht i vrtet fjalia nuk do t ekzekutohet dhe programi do t vazhdoj t
ekzekutoj fjalit pr kodin e mposhtm. Le ta analizojm kt me nj shembull
t thjesht ku supozojm se x dhe y jan dy variabla t cilat i marrin vlarat nga
fjalit e msiprme n program. Nse vlera e variabls y do t jet m e madhe se
vlera e variabls x ather fjalia n vazhdim do t ekzekutohet ku y do ti shtohet
numri 1, nse vlera e variabls y do t jet m e vogl se vlera e variabls x
ather fjalia n vazhdim nuk do t ekzekutohet.
Page 87 of 239

if (y > x)
y += 1;
Fig. 4. 4 paraqet nj flow chart pr nj fjali if. Si dhe ju e shikoni nga skema e
paraqitur n figur, fillimisht sht vlersuar kushti i dhn i cili ka dy mundsi i
vrtet ose jo i vrtet. Nse kushti do t jet i vrtet programi do t vazhdoj me
fjalin n vazhdim, nse kushti nuk do t jet i vrtet programi do ta anashkaloj
fjalin dhe do t vazhdoj m posht.

Fig. 4. 4 Si funksionon nj fjali if.
N kodin e mposhtm ne kemi krijuar nj projekt i cili prdoret nga msusi i nj
lnde n universitet pr llogaritjen e nots s studentve n fund t simestrit.
Studentt n kt klas kan tre provime gjat simestrit, ku secili prej provimeve
ka prqindje t njjt n llogaritjen e nots prfundimtare. Pra mnyra se si sht
llogaritur nota prfundimtare sht duke mbledhur notat pr secilin provim dhe
rezultatin e pjestojm me 3. N vazhdim po japim kodin pr butonat Llogarit
Mesataren, Pastron dhe Mbyll.
Private Sub btnCalculate_Click(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles btnCalculate.Click

Page 88 of 239

' Kjo procedure llogarit dhe shfaq mesataren e notave.
' Nese mesatarja eshte e larte shpreh urimet.
Dim sngProvim1 As Single
Dim sngProvim2 As Single
Dim sngProvim3 As Single
Dim sngMesatarja As Single

' Copy the scores into the variables
sngProvim1 = CSng(txtProvim1.Text)
sngProvim2 = CSng(txtProvim2.Text)
sngProvim3 = CSng(txtProvim3.Text)

' Llogarit dhe shfaq mesataren
sngMesatarja = (sngProvim1 + sngProvim2 + sngProvim3) / 3
lblMesatarja.Text = FormatNumber(sngMesatarja)

' Nese mesatarja eshte e larte falendero studentin.
If sngMesatarja > 95 Then
lblMesatarja.Text = "Urime, Pune e Mire"
End If
End Sub

Private Sub btnClear_Click(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles btnClear.Click

' Pastron Text Boxes dhe Labels
txtProvim1.Text = ""
txtProvim2.Text = ""
txtProvim3.Text = ""
lblAverage.Text = ""
lblMesatarja.Text = ""

' Kthen kursorin
txtProvim1.Focus()
End Sub

Private Sub btnExit_Click(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles btnExit.Click

' Mbyll window
Me.Close()
End Sub
End Class
N Fig. 4. 1 po japim formn e aplikimit pasi sht llogaritur nota mesatare pr
nj student, ku studenti ka marr n provimin e par 98 %, n t dytin 97 % dhe
Page 89 of 239

n t tretin 99 %. Ne po prdorim nj fjali if pr butonin Llogarit Mesataren, ku
nse nota mesatare e studentit sht mbi 95% ather nj mesazh urimi shfaqet n
label:
lblMesatarja.Text = "Urime, Pune e Mire"
Pr butonin Pastron ne thjesht po pastrojm do Label dhe TextBoxe, duke
boshatisur string nga karakteret. N fjalin e fundit t ktij butoni, pasi fjalit pr
kt buton t jen ekzekutuar kursori kthehet n TextBoxin e par. Kjo nuk ka
ndonj vler t veant n kod, vese e bn at m komod pr prdorusin. Butoni
Mbyll prfundon aplikimin duke mbyllur kt window.
' Mbyll window
Me.Close()

Fig. 4. 5 Forma pr llogaritjen e notave.


Page 90 of 239

4.1.2 Fjalia If . . . Then . . . Else
Kjo fjali sht disi m ndryshe nga fjalia if, pasi ajo ekzekuton nj ose nj grup
fjalish nse kushti sht i vrtet dhe nj tjetr fjali apo grup fjalish nse kushti
nuk sht i vrtet. Formati i saj sht paraqitur si m posht:
If kushti Then
fjali
(mund t vazhdojm me fjali t tjera)
Else
fjali
(mund t vazhdojm me fjali t tjera)
End If
Pr shembull nse do i referoheshim programit pr llogaritjen e nots
prfundimtare n aplikimin e msiprm. Prve urimit n rastin kur kemi nj not
prfundimtare pr studentin m t madhe se 95 %, n rastet e tjera do t donim ti
jepnim kurajo studentit duke i thn vazhdo t punosh m shum. Kjo realizohet
nprmjet ktyre lloj fjalish.
If sngMesatarja > 95 Then
lblMesatarja.Text = "Urime, Pune e Mire"
Else
LblMesatarja.Text = "Duhet te punosh me shume"
End If
Fjalia Else specifikon nj ose nj grup fjalish t cilat ekzekutohen kur kushti nuk
sht i vrtet. N rastin e msiprm kur mesatarja pr t tre provimet e nj
studenti sht m e vogl ose e barabart me 95 %, ather do t printohet fjalia
Duhet t punosh m shum. Shikoni se si kjo realizohet n programin e
msiprm ku i vetmi ndryshim sht fjalia Else n kodin pr butonin Llogarit
Mesataren. N Fig. 4. 6 studenti ka marr n provimin e par 87 %, n t dytin 78
% dhe n t tretin 80 %, pra si e shihni fjalia Duhet te punosh me shume
printohet.




Page 91 of 239

Fig. 4. 6 Forma me mesazhin e shfaqur.


Private Sub btnCalculate_Click(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles btnCalculate.Click

' Kjo procedure llogarit dhe shfaq mesataren e notave.
' Nese mesatarja eshte e larte shpreh urimet.
Const sngNOTE_MIRE As Single = 95
Dim sngProvim1 As Single
Dim sngProvim2 As Single
Dim sngProvim3 As Single
Dim sngMesatarja As Single

' Copy the scores into the variables
sngProvim1 = CSng(txtProvim1.Text)
sngProvim2 = CSng(txtProvim2.Text)
sngProvim3 = CSng(txtProvim3.Text)

' Llogarit dhe shfaq mesataren
sngMesatarja = (sngProvim1 + sngProvim2 + sngProvim3) / 3
lblMesatarja.Text = FormatNumber(sngMesatarja)

' Nese mesatarja eshte e larte falendero studentin,
Page 92 of 239

' ndryshe jepi kurajo
If sngMesatarja > 95 Then
lblMesatarja.Text = "Urime, Pune e Mire"
Else
lblMesatarja.Text = "Duhet te punosh me shume"
End If
End Sub

4.1.3 Fjalit If . . . Then . . . ElseIf
Kto lloj fjalish jan t ngjashme me fjalit If . . . Then . . . Else, prve faktit se
ato do t ekzekutojn fjalit njra pas tjetrs deri sa t gjejn nj kusht t vrtet.
M posht po japim formn e zakonshme pr fjalit If . . . Then . . . ElseIf.
If kushti Then
fjali
(mund t vazhdojm me fjali t tjera)
ElseIf
fjali
(mund t vazhdojm me fjali t tjera)
(vendos fjali ElseIf sa t nevoiten)
Else
fjali
(mund t vazhdojm me fjali t tjera)
End If
Le t vazhdojm psri me programin q kemi krijuar pr lloagaritjen e notave
pr studentt pasi ata kan dhn tre provime. Shto n form dhe dy label ku n
njrn vendosni tekstin Notat dhe n tjetrn ndrro: Name n lblNotat,
BorderStyle 3D dhe fshije tekstin e saj dhe lere vlern bosh. Forma e saj duhet t
jet si n Fig. 4. 7.



Page 93 of 239

Fig. 4. 7 Forma ku do t shfaqen notat sipas shkronjave.


Kliko dy her mbi butonin Llogarit Mesataren dhe type kodin si m posht. Vini
re se si duke prdorur fjalin ElseIf pr vlera t ndryshme t mesatares printohen
shkronja t ndryshme n lblNotat.
Private Sub btnCalculate_Click(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles btnCalculate.Click

' Kjo procedure llogarit dhe shfaq mesataren e notave.
' Nese mesatarja eshte e larte shpreh urimet.
Const sngNOTE_MIRE As Single = 95
Dim sngProvim1 As Single
Dim sngProvim2 As Single
Dim sngProvim3 As Single
Dim sngMesatarja As Single

' Copy the scores into the variables
sngProvim1 = CSng(txtProvim1.Text)
sngProvim2 = CSng(txtProvim2.Text)
sngProvim3 = CSng(txtProvim3.Text)

' Llogarit dhe shfaq mesataren
sngMesatarja = (sngProvim1 + sngProvim2 + sngProvim3) / 3
Page 94 of 239

lblMesatarja.Text = FormatNumber(sngMesatarja)

' Llogarit dhe shfaq notat me shkronja
If sngMesatarja < 60 Then
lblNotat.Text = "F"
ElseIf sngMesatarja < 70 Then
lblNotat.Text = "D"
ElseIf sngMesatarja < 80 Then
lblNotat.Text = "C"
ElseIf sngMesatarja < 90 Then
lblNotat.Text = "B"
ElseIf sngMesatarja <= 100 Then
lblNotat.Text = "A"
Else
lblNotat.Text = "Gabim"
End If

' Nese mesatarja eshte e larte, jepi studentit urimin,
' ndryshe jepi kurajo te punoje me shume.
If sngMesatarja > sngNOTE_MIRE Then
lblMesazh.Text = "Urime, pune e mire"
Else
lblMesazh.Text = "Duhet me shume pune"
End If
End Sub
N Fig. 4. 8 tregohet llogaritja e rezultatit ku studenti n provimin e par ka marr 78 %,
n t dytin 84 % dhe n t tretin 80 %. Nga llogaritjet Mesatarja sht 80.67 %, Nota
sht B dhe mesazhi sht se duhet m shum pun. Vini re gjithashtu se fjalia Else e
prdorur n fund t fjalive ElseIf siguron q nse prdorusi fut vlera m t mdha se 100,
ather nj mesazh Gabim do t shfaqet.








Page 95 of 239

Fig. 4. 8 Programi duke punuar.


4.1.4 Fjalit nested If
Nj fjali nested If sht nj fjali If q shfaqet brenda nj fjalie tjetr If. Le t
shohim nj aplikim pr kt lloj fjalie dhe duke shpjeguar kodin e tij do t harrim
t kuptojm m mir fjalit nested If.
Referohuni Fig. 4. 9 pr t kuptuar se si forma sht dizenjuar. N kt aplikim
prdorusi duhet t fusi rrogn vjetore dhe vitet e puns pr t par nse
kualifikohet nga banka pr kredi apo jo.
Nse shikoni me kujdes kodin e mposhtm do t vini re se fjalia If prdoret
brenda fjalis If. N fjalin e par If ne po themi se nse rroga e nj puntori sht
m e madhe se 12000 dhe vitet e puns jan m shum se 3 vite, ather aplikusi
kualifikohet. N kt rast kodi i theksuar n kodin e mposhtm do t
ekzekutohet. Nse rroga sht m e madhe se 12000, por vitet e puns jan m
pak ose 3 vite, ather aplikusi nuk kualifikohet. Pra si e shihni jan dy kushte q
duhet t plotsohen q aplikukusi t prfitoj nj kredi. Shikoni Fig. 4. 9 ku
programi sht n Start Debugging. Rroga e puntorit sht 14000 dhe vitet e
puns jan 4 vite, pra t dy kushtet plotsohen.
'Konverton rrogen dhe vitet nga TextBoxes
Page 96 of 239

Dim sngRroga As Single = CSng(txtRroga.Text)
Dim intVitetePune As Integer = CInt(txtVitePune.Text)

'Percakto kur aplikanti kualifikohet per kredi
If sngRroga > 12000 Then
If intVitetePune > 3 Then
lblMessage.Text = "Aplikanti kualifikohet"
Else
lblMessage.Text = "Aplikanti nuk kualifikohet"
End If
Else
If intVitetePune > 5 Then
lblMessage.Text = " Aplikanti kualifikohet"
Else
lblMessage.Text = "Aplikanti nuk kualifikohet"
End If
End If
Por nse kushti pr sngRroga > 12000 nuk sht i vrtet dhe kushti puntori ka
m shum se pes vite pune, sht i vrtet, ather kodi i mposhtm do t
ekzekutohet. Shikoni Fig. 4. 10 ku megjithse rroga e puntorit sht e vogl
10000, pra kushti nuk plotsohet, por plotsohet kushti i fjalis tjetr If vitet e
puns jan m shum se 5. N kt rast nuk kemi nj fjali nested if, pra kemi
vetm nj kusht, at q vitet e puns t jen m shum se 5.
If intVitetePune > 5 Then
lblMessage.Text = " Aplikanti kualifikohet"
Else
lblMessage.Text = "Aplikanti nuk kualifikohet"
End If

















Page 97 of 239

Fig. 4. 9 Rroga sht 14000 dhe 4 vite pune.



Fig. 4. 10 Rroga 10000 dhe Vitet e puns 7.

Page 98 of 239

4.2 KRAHASIMI DHE TESTIMI I STRING

Visual Basic ka disa metoda ne klasn String t cilat e lehtsojn punn me
strings. Kompiuterat nuk ruajn karaktere n memorie si: A, B, C etj, por ata
ruajn kode numerike q prezantojn karakteret. Visual Basic prdor Unicode, i
cili presanton shkronjat, numrat nga 0 n 9, simbolet dhe karakteret specile. Secili
karakter ruhet n memorie n baz t numrave Unicode, i cili sht i mjaftushm
pr t paraqitur t gjitha fjalt n alfabetet e bots.
Nse do t krahasonim C me D do t thoshim se kodi numerik pr shkronjn C
sht m i vogl se kodi pr D. Shronjat kapitale vijn prpara shkronjave t
vogla si: kodi numerik pr C sht m i vogl se c. Ndrsa hapsira boshe sht
para t gjitha shkronjave. Kur ne krahasojm dy string ajo q ne bjm sht se ne
krahasojm secilin karakter t string. Le ta ilustrojm kt me nj shembull pr ta
kuptuar m mir kt.
strEmri1 = Alban
strEmri2 = Altin
If strEmri1 > strEmri2 Then
lblMesazh.Text = Alban eshte me i math se Altin
Else
lblMesazh.Text = Alban nuk eshte me i math se Altin
End If
String Alban dhe Altin krahasohen karakter pas karakteri, pra karakteri i par
sht i njjt pr t dy string (A). Kalojm tek karakteri i dyt i cili prsri sht i
njjt pr t dyja string (l). Pr karakterin e tret kemi b pr stringun e par dhe
t pr stringun e dyt, pra strEmri1 sht m i madh se strEmri2 dhe fjalia,
Alban eshte me i madh se Altin do t printohet. Vini re se n kt rast numri i
karaktereve pr t dyja string sht i barabart, por kjo nuk sht gjithmon e
vrtet. Pr shembull n rastin e string si: aaa dhe aa krahasohen karakteret e
para, t cilat jan t njjt. Kalohet n karakteret e dyta, t cilat dhe ato jan t
njjta. Karakteri i tret i stringut t par sht a, ndrsa pr stringun e dyt sht
hapsir. Si e kemi thn m lart hapsira sht m e vogl se t gjitha
shkronjat, pra stringu aaa sht m i madh se aa.
Page 99 of 239

4.2.1 Metodat ToUpper dhe ToLower
Metodat ToUpper dhe ToLower jan pjes t String, pra ato mund t thrriten me
do variabl string apo shprehje. Metoda ToUpper konverton n shkronja
kapitale. Shikoni se si kjo realizohet n shembullin n vazhdim, ku fjala Vlora
kthehet n VLORA. Kini parasysh se kjo metod kthen t gjitha shkronjat me t
vogla n shkronja t mdha, por ajo nuk ndyshon gj tek shkronjat q jan me
grma kapitale.
strShkronjVogel = Vlora
strShkronjMadhe = strShkronjVogel.ToUpper()
Metoda ToLower sht e njjt me metodn ToUpper vetm se kthen shkronjat me
grma kapitale n shkronja t vogla. Shikoni kodin n vazhdim.
strShkronjMadhe = VLORA
strShkronjVogel = strShkronjMadhe.ToLower()

4.2.2 Funksioni IsNumeric
Funksioni IsNumeric pranon nj string si argument dhe nse kjo string ka nj
numr ather funksioni kthehet i vrtet (True). N t kundrt ai sht jo i
vrtet. Shikoni prdorimin n kodin e mposhtm ku strNumer sht nj numr
pra funksioni sht i vrtet dhe fjalia e theksuar do t ekzekutohet.
Funksioni
IsNumeric(StringExpression)
Shembull
Dim strNumer As String
strNumer = 234
If IsNumeric(strNumer) Then
lblMesazhi.Text = sht nj numr
Else
lblMesazhi.Text = Nuk sht nj numr
End If
Ndrsa n kodin e mposhtm funksioni kthehet jo i vrtet, pasi variabla
strNumer nuk sht numr dhe fjalia e theksuar do t ekzekutohet.
Page 100 of 239

Funksioni
IsNumeric(StringExpression)
Shembull
Dim strNumer As String
strNumer = 234
If IsNumeric(strNumer) Then
lblMesazhi.Text = sht nj numr
Else
lblMesazhi.Text = Nuk sht nj numr
End If

4.2.3 Lvizja e hapsirave nga String
A leading space sht nj hapsir q shfaqet n fillim t string. Pr shembull
strigu n vazhdim ka pes leading space.
Vlora
A trailing space sht hapsira q shfaqet n fund t string, si n fjalin n
vazhdim ku kemi pese trailing space.
Vlora
Klasa String ka tre metoda pr t lvizur hapsirat: TrimStart, TrimEnd dhe Trim.
Shikoni formatin pr seciln m posht.
StringExpression.TrimStart()
StringExpression.TrimEnd()
StringExpression.Trim ()
Metoda TrimStart kthen nj kopjo t string me t gjitha hapsirat e fillimit t
lvizura, metoda TrimEnd kthen nj kopjo t string me t gjitha hapsirat e
fundit t lvizura dhe Metoda Trim kthen nj kopjo t string me t gjitha
hapsirat e fillimit dhe t fundit t lvizura.
strQytet = Vlora
lblMesazh1.Text = strQytet.TrimStart()
Page 101 of 239

lblMesazh2.Text = strQytet.TrimEnd()
lblMesazh3.Text = strQytet.Trim()
N kodin e msiprm fjalia e par krijon nj string Vlora . N fjalin e dyt
lvizen hapsirat e fillimit dhe kemi Vlora . N t tretn kemi fjalin
Vlora ku jan lvizur hapsirat e fundit t string dhe n fjalin e fundit jan
lvizur t gjitha hapsirat e fillimit dhe t mbarimit Vlora.

4.2.4 Metoda Substring
N Visua Basic ka dy formate pr metodn substring.
StringExpression.Substring(Fillimi)
StringExpression.Substring(Fillimi, Gjatsia)
Kini kujdes se numrimi i karaktereve n string fillon me 0. N formatin e par
fjala Fillimi tregon n far pozicioni do t filloj string. Shikoni kodin e
mposhtm.
Dim strMbiemri As String
Dim strEmriPlote As String = Gjergji Shaska
strMbiemri = strEmriPlote.Substring(8)
Pasi kodi t ekzekutohet variabla strMbiemri do t jet Shaska, pasi do t filloj
n pozicionin e tet dhe do t shkoj deri n fund t stringut. Ndrsa pr foramtin
e dyt kemi.
Dim strEmri As String
Dim strEmriPlote As String = Gjergji Shaska
strEmri = strEmriPlote.Substring(0, 7)
N kt kod string fillon n 0 dhe merr 7 karaktere nga string, pra variabla
strEmri do t ket vetm emrin Gjergji.

4.2.5 Metoda IndexOf
Metoda IndexOf krkon pr nj karakter n string. Kjo metod ka tre forma.
StringExpression.IndexOf(Kerkon)
Page 102 of 239

StringExpression.IndexOf(Kerkon, Fillimi)
StringExpression.IndexOf(Kerkon, Fillimi, Numero)
N formn e par krkohet pr nj karakter, nse gjendet kthehet vlera e
pozicionit t atij karakteri, nse jo kthehet vlera -1. Le ta shohim kt me nj
shembull ku do t prdorim t tre format e msiprme.
Dim strFutboll As String = Flamurtari
Dim intPozicioni As Integer
intPozicioni = strFutboll.IndexOf(a)
Pasi ky kod t ekzekutohet pozicioni i variabls do t jet 2, sepse a sht n
pozicionin e dyt. Pr formatin e dyt do t kemi.
Dim strFutboll As String = Flamurtari
Dim intPozicioni As Integer
intPozicioni = strFutboll.IndexOf(a, 3)
N kt rast pozicioni i variabls do t jet 7, pasi do t jet pozicioni pr a e
dyt. Vrtet ne po krkojm pr a, por ne i kemi dhn vlern e fillimit n
pozicionin e tret, e cila nuk e kap a e par. Pr formatin e tret kemi.
Dim strFutboll As String = Flamurtari
Dim intPozicioni As Integer
intPozicioni = strFutboll.IndexOf(a, 3, 4)
Pasi kodi t ekzekutohet pozicioni i variabls do t jet -1, pasi krkimi fillon n
pozicionin e 3 dhe vazhdon t krkoj 4 pozicione pas ksaj.

4.2.6 Message Box
Nj message box sht nj window q shfaq nj mesazh. Ne e kemi prdorur kt
dhe m par me metodn MessageBox.Show. Tani ne do t diskutojm pes
forma t metodave.
MessageBox.Show(Message)
MessageBox.Show(Message, Caption)
Page 103 of 239

MessageBox.Show(Message, Caption, Buttons)
MessageBox.Show(Message, Caption, Buttons, Icon)
MessageBox.Show(Message, Caption, Buttons, Icon, DefaultButton)
Pr t kuptuar seciln prej ktyre formave ne po krijojm nj program t thjesht,
ku do t kemi pes butona dhe secili prej tyre i prgjigjet formave prkatse.
Krijoni kt program dhe pr secilin buton type kodin pr t shfaqur message box.
Kur MessageBox.Show ekzekutohet, nj mesazh do t shfaqet n Window. Si pr
shembull fjalia e mposhtme do t shfaqet si n Fig. 4. 11.
MessageBox.Show(Flamurtari)
Fig. 4. 11 Butoni _1 Fig. 4. 12 Butoni_2


Fig. 4. 13 Butoni_3 Fig. 4. 14 Butoni_4

Page 104 of 239


N formatin e dyt, do t shfaqet dhe nj titull, ku Caption sht nj string.
Shikoni kodin n vazhdim dhe message box tregohet n Fig. 4. 112.
MessageBox.Show(Flamurtari, Futboll)
N rastin e tret Buttons sht nj vler q specifikon cilin buton t shfaqi n
message box. Message box kur prdoret pa ndonj vler specifike ka vetm
butonin OK. M posht ne po japim vlerat pr Buttons.
Vlera Prshkrimi
MessageBoxButtons.AbortRetryIgnore Shfaq butonat Abort, Retry dhe
Ignore
MessageBoxButtons.OK Shfaq butonin OK
MessageBoxButtons.OKCancel Shfaq butonat OK dhe Cancel
MessageBoxButtons. RetryCancel Shfaq butonat Retry dhe Cancel
MessageBoxButtons.YesNo Shfaq butonat Yes dhe No
MessageBoxButtons.YesNoCancel Shfaq butonat Yes, No dhe Cancel

Pr shembull n fjalin n vazhdim message box do t shfaqet si n Fig. 4. 13, ku
do t kemi dy butona Yes dhe No.
MessageBox.Show(Flamurtari, Futboll, MessageBoxButtons.YesNo)
Icon sht nj vler q specifikon nj icon pr tu shfaqur n nj message box.
Vlerat pr Icon jan: MessageBoxIcon.Asterisk, MessageBoxIcon.Error,
MessageBoxIcon.Exclamation, MessageBoxIcon.Hand,
MessageBoxIcon.Information, MessageBoxIcon.Question, MessageBoxIcon.Stop
dhe MessageBoxIcon.Warning. Pr shembull kodi n vazhdim do t shfaqi Fig. 4.
134.
MessageBox.Show(Flamurtari, Futboll, MessageBoxButtons.YesNo,
MessageBoxIcon.Question)
DefaultButton specifikon cili buton zgjidhet kur prdorusi shtyp butonin enter.


Page 105 of 239

Vlera Prshkrimi
MessageBoxDefaultButton.Button1 Zgjeth butonin e par duke filluar nga e
majta
MessageBoxDefaultButton.Button2 Zgjeth butonin e dyt duke filluar nga e
majta
MessageBoxDefaultButton.Button3 Zgjeth butonin e tret duke filluar nga e
majta
Pr shembull fjalia n vazhdim do t zgjedhi butonin e par.
MessageBox.Show(Flamurtari, Futboll, MessageBoxButtons.YesNo,
MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button1)
N vazhdim po japim kodin e plot pr t gjith butonat.
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click

MessageBox.Show("Flamurtari")
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click

MessageBox.Show("Flamurtari", "Futboll")
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click

MessageBox.Show("Flamurtari", "Futboll", MessageBoxButtons.YesNo)
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button4.Click

MessageBox.Show("Flamurtari", "Futboll", MessageBoxButtons.YesNo,
MessageBoxIcon.Question)
End Sub

Page 106 of 239

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button5.Click

MessageBox.Show("Flamurtari", "Futboll", MessageBoxButtons.YesNo, _
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
End Sub
End Class
4.2.7 Prdorimi i ControlChars.CrLf
Nse ju doni t shfaqni informacionin n message box n disa rreshta, ju mund t
prdorni ControlChars.CrLf. Shikoni kodin n vazhdim pr t kuptuar se si kjo
arrihet dhe Fig. 4. 15 ku tregohen dy rreshtat e shfaqur n message box.
MessageBox.Show(Rreshti i par & ControlChars.CrLf & Rreshti I dyt)
Fig. 4. 15 Butoni_6


4.3 FJALIT CASE

Nj tjetr fjali e kushtzuar n Visual Basic sht fjalia Case, e cila lejon t
zgjidhet nj drejtim kur ka dhe shum mundsi t tjera pr t zgjedhur. Fjalia
Case vlerson nj shprehje pr t prcaktuar nj vler dhe e gjen at vler
ndrmjet shum t tjerave. Secila fjali case (rast) ka fjali t cilat ekzekutohen n
rast se kushti pr fjalin case sht i vrtet. M posht tregohet forma e fjalis
case.
Page 107 of 239

Select Case (shprehja q testohet)
Case 1
(nj ose disa fjali)
Case 2
(nj ose disa fjali)
(vazhdon pr t gjitha case)
Case Else
(nj ose disa fjali)
End Select
N fjalin e par Select Case vendoset shprehja q do t testohet. Pas saj
vendosen me radh t gjitha rastet e mundshme, duke treguar se far duhet t
ekzekutoj programi nse Case sht e vrtet. N fund t t gjitha fjalive Case
vjen fjalia Case Else, e cila ekzekutohet nse asnj nga fjalit Case nuk sht e
vrtet. Megjithat Case Else nuk sht e detyrushme, pasi nse ajo nuk prdoret
programi do t compilet pa gabime. Por n prgjithsi programusi e prdor kt
lloj fjalie pasi ai krkon t sigurohet se nse asnj nga rastet nuk sht i vrtet
programi ekzekuton nj fjali t caktuar. Fjalit Case prfundojn me nje End
Select.
Pr t kuptuar m mir far tham m lart le t shohim se si paraqiten gjimnazet
e qytetit t Vlors. Supozojm se kemi krijuar nj form me nje Text Box t
quajtur txtInput.Text. Nse vlera i ktij Text Box do t jet e njjt me njrn
nga case, ather fjalia prkatse do t shfaqet. Pra nse prdorusi type 2 n Text
Box, ather n MessageBox do t shfaqet mesazhi: Gjimnazi Halim Xhelo, nse
prdorusi type 4 mesazhi do t jet: Shkolla Tregtare. Kini parasysh se programi
mund t prmbaj dhe disa fjali pr nj case. N kt rast kur vlera e tekstit do t
jet e njjt me nj prej case programi do t ekzekutoj t gjitha fjalit dhe do t
vazhdoj me End Select. Nse prdorusi nuk type asnj nga vlerat 1, 2, 3, dhe 4,
athr mesazhi do t jet: Vlera e tekstit eshte e papranushme.
Select Case CInt(txtInput.Text)
Case 1
MessageBox.Show(Gjimnazi Ali Demi)
Case 2
MessageBox.Show(Gjimnazi Halim Xhelo)
Page 108 of 239

Case 3
MessageBox.Show(Mustafa Qemal Ataturku)
Case 4
MessageBox.Show(Shkolla Tregtare)
Case Else
MessageBox.Show(Vlera e tekstit eshte e papranushme)
End Select
N figurn e mposhtme po japim flowchart pr gjimnazet n qytetin e Vlors.

Fig. 4. 16 Forma e nj fjalie Case.

Nj tjetr mnyr e t shprehurit t fjalive case sht duke prdorur disa shprehje
t ndara nga presjet. Pr shembull fjalia e par n kodin n vazhdim krahason
intNumer 1, 3, 5, dhe 7 dhe fjalia e dyt krahason intNumer 2, 4, 6 dhe 8.
Select Case intNumer
Case 1, 3, 5, 7
Page 109 of 239

numrat = Tek
Case 2, 4, 6, 8
numrat = Cift
Case Else
numrat = Numra t tjere
End Select
Por fjalia case mund t prdoret dhe pr t testuar vlera string. Supozojm se vlera
e variabls strQytetet sht nj vler string.
Select Case strQytetet
Case Vlora, Durresi, Tirana
MessageBox.Show(Qytete Shqiptare)
Case Shqiperi, Itali, Angli
MessageBox.Show(Shtete Europiane)
Case Else
MessageBox.Show(Jashte kufive te percaktuar)
End Select
Nj tjetr mnyr paraqitje pr fjalit case sht duke prdorur operatort si n
shembullin n vazhdim.
Select Case strTemperatura
Case Is < 10
MessageBox.Show(Eshte ftohte.)
Case Is > 30
MessageBox.Show(Eshte vape.)
Case Else
MessageBox.Show(Temperatura eshte normale)
End Select
Page 110 of 239

Nse do t vazhdonim prsri me kodin e msiprm por duam q temperatura t
ket kufi, nga 10 n 20 grad celcius dhe nga 20 n 30 grad celcius. Shikoni se
si kjo arrihet n kodin e mposhtm.
Select Case strTemperatura
Case Is < 10
MessageBox.Show(Eshte ftohte.)
Case 10 To 20
MessageBox.Show(Eshte mire.)
Case 20 To 30
MessageBox.Show(Eshte shume mire.)
Case Is > 30
MessageBox.Show(Eshte vape.)
Case Else
MessageBox.Show(Temperatura nuk eshte e percaktuar)
End Select

4.4 RADIO BUTTONS DHE CHECK BOXES

Radio buttons shfaqen n grupe dysh ose m shum, duke lejuar prdorusin
t zgjedhi nj ose disa opsione. Kta butona jan t prdorshm kur programusi
do ti japi prdorusit nj mundsi zgjidhje, por duke pasur dhe nj apo disa
zgjedhje t tjera. Secili buton radio ka nj rreth q duket i mbushur kur butoni
sht klikuar dhe duket bosh kur nuk sht i klikuar. Kta lloj butonash mund t
prdoren n dy mnyra.
T gjith butonat radio brenda nj group box jan antar t t njjtit
grup. N Fig. 4. 17 tregohen dy grupe radio buttons, ku pr secilin grup
vetm nj radio button mund t jet i zgjedhur. Vini re se kur ju zgjidhni
nj tjetr buton, ai q m par ishte i zgjedhur do t kthehet jo i zgjedhur.
T gjith butonat radio n nj form, por jo brenda nj group box jan
antar t t njjtit grup. Shikoni Fig. 4. 18.

Page 111 of 239

Fig. 4. 17 Radio Buttons n dy group box.


Fig. 4. 18 Radio Buttons n t njjtn form.

Page 112 of 239

Vini re se n Fig. 4. 17 kemi prdorur dhe tre check box, t cilt jan t ngjashm
me butonat radio por vetm se zgjedhja e njrit nuk ka lidhje me zgjedhjen e
tjetrit. Si e shihni n Fig. 4. 17 dy prej check box jan t klikuar, gj e cila sht
e pamundur pr radio buttons.

4.5 VARIABLAT CLASS-LEVEL

Variablat Class-level nuk deklarohen brenda metodave. Ato deklarohen
jasht do metode dhe mund t arrihen nga do fjali e metodave t s njjts
form. Deri tani ne n prgjithsi kemi prdorur variablat local, t cilat mund t
arrihen vetm nga fjalit e s njjts metod ku ajo sht deklaruar. Por shpesh
lind nevoja e krijimit t variablave t cilat duhet t prdoren nga dy apo m shum
metoda. Kto lloj variablash ne mund ti deklarojm brenda nj klase, por jasht
do metode.
Shikoni kodin n vazhdim ku nse ju e mbani mend ne e krijuam at pr
programin kalkulatori n kapitullin 3. Dy variablat total1 dhe total2 nuk jan
deklaruar local, ato mund t arrihen nga t gjitha metodat e klass. Pra ne themi se
ato jan deklaruar si variabla class-level. Ndrsa brenda metods pr butonin
btnZero_Click ne kemi deklaruar nj variabl local, e cila mund t prdoret vetm
nga fjalit e ksaj metode. Ky sht vetm nj shembull dhe ne nuk e kemi
prdorur kt variabl n fjalit e ksaj metode.
Public Class Form1
Inherits System.Windows.Forms.Form

Dim total1 As Integer
Dim total2 As Integer

Private Sub btnZero_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnZero.Click

Dim llogarit As Integer
txtShfaq.Text = txtShfaq.Text & btnZero.Text
End Sub
Vlen t theksohet se variablat class-level duhet t prdoren vetm kur ato
nevoiten. Prdorimi i tyre i shpesht sht i gabuar, megjithse programi compilet
pa gabime. Imagjinoni se sa e vshtir sht t gjesh gabimin kur kemi prdorur
nj variabl class-level, sidomos kur programet jan shum t gjat kjo do t jet
e pamundur. Pr m tepr ne duhet t kontrollojm t gjitha metodat ku ajo
Page 113 of 239

prdoret. Ndrsa kur ne kemi nj gabim pr nj variabl e cila sht e deklaruar
local ne jemi t sigurt se gabimi sht brenda ksaj metode.

4.6 PROJEKTI ANTART E PALESTRS

N kt program ne do t ndrtojm nj aplikim pr t llogaritur pagesn e
klientve t nj palestre gjimnastike. Menazheri i ksaj palestre krkon nj
program ku t llogaritet pagesa pr klientt e tij, duke u bazuar n moshn, muajt
e regjistrimit dhe opsionet e ofruar nga palestra.
Tarifat pr grup moshat e ndryshme do t jen si m posht.
T Rritur $30 n muaj
Femije nn 12 vje $15 n muaj
Student $25 n muaj
Nnshtetas mbi 65 vje $25 n muaj
Palestra ka disa opsione pr t cilat antart duhet t paguajn plus.
Yoga $10 plus
Karate $15 plus
Trajtim personal $30 plus
Bazuar n muajt e regjistrimit palestra ofron ulje.
1 3 muaj Ska ulje
4 6 muaj 5% ulje
7- 9 muaj 8% ulje
10 ose m shum muaj 10% ulje
Prdorusi duhet t ket opsionet e zgjedhjes s moshs, opsionet e ofruara nga
palestra dhe muajt q dshiron t rregjistrohet. Pas ksaj ai duhet t klikoj
butonin Llogarit dhe programi duhet t shfaqi pagesn mujore dhe pagesn
totale t ktij klienti. Palestra oron nj kontrat pr antart e saj jo m shum se
dy vjet, pra 24 muaj. Pra programi duhet t pranoj vlerat pr numrin e muajve
nga 1 n 24, jasht ktyre vlerave nj mesazh ku t thuhet se vlerat nuk jan t
Page 114 of 239

sakta, duhet t shfaqet. Ndrsa pr vlerat nga 1 n 24 programi duhet t llogarisi
pagesn mujore dhe totale t antarit t palestrs. Bazuar n Fig. 4. 19 ju duhet t
ndrtoni formn e ktij aplikimi. Tregoni kujdes t vendosni n form t gjitha
kontrollet dhe i emroni ato. Gjithashtu n vazhdim po japim dhe flowchart pr
kt program.

Fig. 4. 19 Forma e aplikimit Anetaret e Palestres.

Page 115 of 239


Fig. 4. 20 Flowchart pr llogaritjen e tarifes mujore.


Fig. 4. 21 Flowchart pr kalkulimin dhe opsionet shtese.
Page 116 of 239



Fig. 4. 22 Flowchart pr prcaktimin e uljes.


Fig. 4. 23 Flowchart pr butonin Llogarit.
Page 117 of 239


Tani ne jemi gati t shkruajm kodin pr kt program.
Etapa 1: Fillimisht do t vendosim dy variabla class-level. Kliko View Code n
Solutions Explorer dhe type kodin si m posht.
Public Class Form1
Inherits System.Windows.Forms.Form

'Variabla konstante Class-level jane perdorur
'per te llogaritur uljen.
Const decUlje4ne6 As Decimal = 0.05D
Const decUlje7ne9 As Decimal = 0.085D
Const decUlje10neshume As Decimal = 0.1D
Etapa 2: Hap Design window dhe kliko dy her mbi butonin Llogarit dhe type kodin si
m posht.
'Kjo metode llogarit tarifat per anetaret.

'Deklaron variablat local.
Dim decBaze As Decimal 'Pagesa baze mujore
Dim decUlje As Decimal 'Ulja sipas anetareve
Dim decTotal As Decimal 'Tarifa totale per anetaret
Dim intMujor As Integer 'Numri i muajve

'Kerkon numrin e muajve dhe mbylle nese
'kemi te dhena jo te sakta.
Try
intMujor = CInt(txtMuaj.Text)

Catch ex As Exception
MessageBox.Show("Te dhena jo te sakta", "Gabim")
Return
End Try

'Kerkon muajt, duhet te jene 1-24
If (intMujor < 1) Or (intMujor > 24) Then
MessageBox.Show("Te dhena jo te sakta", "Gabim")
Return
End If

'Llogarit tarifen baze mujore
If radRritur.Checked = True Then
decBaze = 30
ElseIf radFemije.Checked = True Then
Page 118 of 239

decBaze = 20
ElseIf radStudent.Checked = True Then
decBaze = 25
ElseIf radNenshtetas.Checked = True Then
decBaze = 25
End If

'Sherbimet
If chkYoga.Checked = True Then
decBaze += 10
End If
If chkKarate.Checked = True Then
decBaze += 15
End If
If chkPersonal.Checked = True Then
decBaze += 30
End If

'Percakton uljen bazuar ne anetaresimin
Select Case intMujor
Case Is <= 3
decUlje = 0
Case 4 To 6
decUlje = decBaze * decUlje4ne6
Case 7 To 9
decUlje = decBaze * decUlje7ne9
Case Is >= 10
decUlje = decBaze * decUlje10neshume
End Select

'Llogarit tarifen totale
decBaze -= decUlje
decTotal = decBaze * intMujor

'Shfaq tarifat
lblMuaj.Text = FormatCurrency(decBaze)
lblTotal.Text = FormatCurrency(decTotal)
Etapa 3: Hap prsri Design window dhe kliko dy her mbi butonin Pastron. Type
kodin e mposhtm.
'Pastron formen
radRritur.Checked = True
chkYoga.Checked = False
chkKarate.Checked = False
chkPersonal.Checked = False
txtMuaj.Clear()
Page 119 of 239

lblMuaj.Text = String.Empty
lblTotal.Text = String.Empty
Etapa 4: Ju tashm dini t shkruani kodin pr butonin Mbyll. Pasi t shkruani kodin pr
kte buton, ruani programin dhe testojeni at. Sigurohuni se vlerat e shfaqura
nga programi jan t saktat, duke e testuar at dhe me vlearat e figurs s
mposhtme.
Fig. 4. 24 Testimi pr aplikimin Anetaret e Palestres.








Page 120 of 239

Ushtrime dhe Problema

4.1 Prcakto gabimin me kodin n vazhdim.
4.2 Kush do t jet vlera e variabls x pr kodin n vazhdim?
Dim x As Integer = 5
Dim y As Integer = 7
if(x < y)
x = y 3
4.3 Krijo nj flowchart pr programin e paraqitur pr fjalit nested if. Trego
kujdes veanarisht n kushtet e problemit.
4.4 Krijo nj program i cili t shfaqi pr message box shenjn !.
4.5 Plotso fjalit e mposhtme.
a) Fjalia do t ekzekutoj nj grup fjalish nse
kushti sht i vrtet dhe nj tjetr grup fjalish nse kushti sht
jo i vrtet.
b) Metoda kthen string n grma kapitale.
c) Metoda kthen string n shkronja t vogla.
4.6 Converto kodin n vazhdim n formn e fjalive case.
If intNumer >= 0 And intNumer <= 5 Then
intMesazh = 7
Else If intNumer >= 6 And intNumer <= 10 Then
intMesazh = 20
Else If intNumer >= 11 And intNumer <= 15 Then
intMesazh = 25
Else If intNumer >= 16 And intNumer <= 20 Then
intMesazh = 50
Else If intNumer >= 21 And intNumer <= 30 Then
intMesazh = 77
Page 121 of 239

Else
MessageBox.Show(Te dhena te papranushme)
End If
4.7 Cili sht ndryshimi ndrmjet variablave class-level dhe variablave local?
4.8 Krijoni nj program i cili ti japi mundsin prdorusit t fusi dy numra.
Programi duhet t prcaktoj cili numr sht m i vogl dhe cili sht m i
madh. Pr secilin rast programi duhet t shfaqi nj mesazh n MessageBox,
ku t tregoj se cili numr sht.



Page 122 of 239


KAPITULLI 5

FJALIT LOOP

Ky kapitull do t na shpjegoj fjalit loop ose fjalit q prsriten, t cilat bjn t
mundur q nj fjali t ekzekutohet disa her apo n pafundsi. Fjalit loop ashtu
si dhe nnkuptohet nga emri, do t prsriten deri sa programusi ti ndaloj ato. Si
dhe fjalit e kushtzuara fjalit loop kan t nevojshm nj shprehje boolean q
prcakton sa her fjalia do t ekzekutohet. Fjalit loop shum shpesh mund t
mnjanohon nga prdorimi, por prdorimi i tyre lehtson shum punn e
programusit, kshtu q ato jo vetm n Visual Basic por n t gjitha gjuht e
programimit jan shum t prdorshme.

5.1 FJALIT DO WHILE LOOP

Nj fjali Do While ekzekuton t njjtn fjali deri sa kushti bhet jo i vrtet.
Si dhe fjalia if nj fjali while vlerson kushtin e dhn dhe nse sht i vrtet
ekzekuton fjalit t quajtura ndryshe struktura e fjalis loop. Por n ndryshim nga
fjalia if, fjalia while vlersohet prsri pasi t gjitha fjalit e strukturs s loop
jan ekzekutuar dhe nse kushti sht i vrtet fjalit e loop ekzekutohen prsri
dhe kjo prsritet dhe prsritet deri sa kushti bhet jo i vrtet. Nse kushti nuk
bhet kurr jo i vrtet fjalia loop do t ekzekutohet n pafundsi. Visual Basic ka
tre lloj loop: Do While loop, Do Until loop dhe For . . . Next loop. Ndryshimi
ndrmjet tyre qndron n mnyrn se si ato e kontrollojn prsritjen e fjalive q
ekzekutohen.
Fjalia Do While ka dy pjes t rndsishme: nj shprehje boolen q testohet pr t
vrtet ose jo t vrtet dhe nj fjali apo grup fjalish q prsriten pr aq koh sa
shprehja sht e vrtet. N Fig.5. 1 jepet nj flowchart pr Do While loop. Si
shihet nga figura fillimisht testohet kushti, i cili nse sht i vrtet struktura do t
vazhdoj me nj metod. Pasi fjalit e metods t jen ekzekutuar t gjitha, kushti
vlersohet prsri. Nse kushti sht i vrtet ky proes prsritet dhe prsritet
Page 123 of 239

derisa kushti t bhet jo i vrtet. Kur kushti nuk sht i vrtet Do While loop
prfundon s ekzekutuari.

Fig.5. 1 Flowchart pr Do While loop.
M posht po japim formatin pr Do While loop.
Do While shprehja
fjalia ose fjalit (mund t kemi shum fjali)
Loop
Ky tip loop fillon gjithmon me Do While dhe mbaron me Loop. Ndrmjet tyre
vendosen fjalit t cilat quhen body. Do While loop funksionon si nj fjali If q
ekzekutohet duke u prsritur.
N vazhdim po japim nj kod t shkurtr pr nj Do While loop. Krijoni nj
projekt dhe provojeni at. Pasi ne deklarojm intNumero si integer q fillon n 1,
n fjalin Do While intNumero < 5 ne po japim kushtin pr kt loop. Do While
loop do t ekzekutohet deri sa variabla intNumero t jet m e vogl se 5.
Studioni me kujdes fjalit e ksaj loope dhe gjeni sa her do t ekzekutohet ajo?
Dim intNumero As Integer = 1

Do While intNumero < 5
lblMesazh.Text = CStr(intNumero)
intNumero += 1
Loop
Le t konsiderojm nj tjetr shembull pothuajse t njjt me shembullin e
msiprm, por intNumero nuk sht duke u rritur por sht duke u zvogluar. N
kt rast variabla intNumero fillon prsri me vlern 1, por hern e dyt q ajo
ekzekutohet zvoglohet me 1, pra do t jet 0, hern tjetr prsri zvoglohet me 1
dhe bhet -1 dhe vazhdon n t njjtn mnyr t zvoglohet gjithmon dhe m
Page 124 of 239

shum. Pra variabla intNumero sht gjithmon m e vogl se 5, pra kushti i loop
gjithmon sht i vrtet. Kto lloj loop quhen infinite loop pasi ata ekzekutohen
n pafundsi.
Dim intNumero As Integer = 1

Do While intNumero < 5
lblMesazh.Text = CStr(intNumero)
intNumero -= 1
Loop
Do While loop mund t paraqitet n dy forma: kushti t vlersohet n fillim, ky
quhet pretest dhe kushti t vlersohet n fund, ky quhet posttest. T dyja
llojet kryejn saktsisht t njjtin funksion, por ndryshimi ndrmjet tyre qndron
se pr loop posttest t paktn ajo do t ekzekutohet nj her.
Forma pr nj pretest Do While loop.
Do While shprehja
fjalia ose fjalit (mund t kemi shum fjali)
Loop
N t njjtin projekt q krijuat m par, fjalin q do t ekzekutohej kthejeni n
formn e komentit dhe shkruani nj fjali pr t shfaqur variabln intNumero n
nj MessageBox. Kodi do t duket si m posht.
Do While intNumero < 5
'lblMesazh.Text = CStr(intNumero)
MessageBox.Show(CStr(intNumero))
intNumero += 1
Loop
Start Debugging dhe vini re se sa her q ju klikoni mbi butonin OK t
MessageBox do t shfaqen 1, 2, 3 dhe 4. Pas ksaj windows pr MessageBox do
t zhduket, pasi loop ekzekutohet vetm 4 her. N vazhdim po japim flowchart
pr kt kod t shkurtr.
Page 125 of 239


Fig.5. 2 Flowchart pr pretest Do While loop.
Forma pr nj posttest Do While loop.
Do
fjalia ose fjalit (mund t kemi shum fjali)
Loop While shprehja
N shembullin e mposhtm ne po japim t njjtin kod q prdorm dhe m sipr
por n formn posttest loop. Ndryshoni variabln intNumero nga 1 n 5 dhe
vreni output. Ndryshoni variabln intNumero nga 1 n 5 dhe pr pretest t
programit t msiprm dhe shpjegoni ndryshimin q vreni me posttest.
Dim intNumero As Integer = 1

Do
'lblMesazh.Text = CStr(intNumero)
MessageBox.Show(CStr(intNumero))
intNumero += 1
Loop While intNumero < 5
Page 126 of 239

intNumero
< 5
Shfaq
intNumero
Shton 1 ne
intNumero
Jo

Fig.5. 3 Flowchart pr posttest DoWhile loop.
Pr ta kuptuar m mir ndryshimin ndrmjet pretest dhe posttest loop ne do t
krijojm nj program ku ti prdorim t dyja mnyrat. Pr formn e ktij programi
na nevoiten dy TextBox ku do t shfaqim numrat nga 0 n 9. N fig po japim
testimin e programit dhe n vazhdim po japim dhe kodin pr butonin Llogarit.

Fig.5. 4 Forma dhe testimi pr numrat nga 0 n 9.

Page 127 of 239


N vazhdim po japim kodin pr butonin Llogarit.
'Perdorimi Do While Loop.
'----------------------------------------------------------------
'Shfaq numrat nga 0 ne 9

Dim i As Integer

'Metoda 1 pretest loop
Do While (i <= 9)
txtMesazh1.Text = txtMesazh1.Text & i & ","
i += 1
Loop

'Vendos vleren i = 0 qe te perdoret perseri
i = 0

'Metoda 2 posttest loop
Do
txtMesazh2.Text = txtMesazh2.Text & i & ","
i += 1
Loop While (i <= 9)

Do Until loop
Do Until loop ekzekutohet derisa kushti i saj sht i vrtet. Do Until loop sht
shum e ngjashme me Do While loop dhe gjithashtu prdor dhe dy mnyrat
pretest dhe posttest.
Formati pretest pr Do Until loop sht si m posht.
Do Until shprehja
fjali (mund t jen m shum se nj fjali)
Loop
Ndrsa formati pr posttest sht.
Do
fjali (munt t jen m shum se nj fjali)
Loop Until shprehja

Page 128 of 239

5.2 FOR . . . NEXT LOOP

For . . . Next loop mund t themi se ka prdorimin m t gjer duke e krahasuar
me format e tjera t loop. Kjo loop prdoret pr situatat kur ne krkojm t
numrojm se sa her loop ekzekutohet. Kjo loop ka vetm formn pretest dhe
nuk ka formn posttest si Do While apo Do Until loop. N vazhdim po japim
formn pr For . . . Next loop.
For Variabla = Vlera fillestare To Vlera e fundit [Rritja]
fjali (m shum fjali mund t kemi)
Next Variabla
Le t shohim t gjitha pjest me radh.
Variabla sht nj variabl e ciala duhet t ket nj vler numerike.
Vlera fillestare sht vlera n t ciln do t filloj t numroj variabla.
Vlera e fundit shte vlera e fundit q ekzekutohet, e cila duhet t jet
numerike.
Rritet sht nj vler numerike e cila tregon se sa rritet variabla pas do
ekzekutimi. Megjithat prdorimi nuk sht i detyruar, nse nuk do t
prdoret ndonj vler pr t, automatikisht variabla do t rritet me 1 do
her q ajo ekzekutohet.
Fjalia Next variabla tregon fundin e loop dhe rrit variabln me vlern e
treguar ose me 1 n rastin kur nuk kemi vendosur ndonj vler t veant.
Ky sht nj shembull pr For . . . Next loop. Krijoni nj projekt me nj form e
cila t prmbaj vetm nj buton Numero. Shto kodin e mposhtm pr kt buton
dhe testoje at. Sa her do t shfaqet fjala Vlora kur ju klikoni mbi butonin OK t
MessageBox.
For intNumero = 0 To 5
MessageBox.Show(Vlora)
Next intNumero
1) intNumero vendoset n vlern fillestare 1.
2) intNumero krahasohet me 5, nse sht m e vogl ose e barabart me 5.
vazhdon m posht, n t kundrt loop prfundon ekzekutimin.
3) ekzekuton fjalin duke printuar fjaln Vlora n MessageBox.
4) intNumero rritet me 1.
5) shkon mbrapa n etapn e dyt dhe prsrit etapat.
Page 129 of 239


Fig.5. 5 Flowchart pr For . . . loop.

Step Value
Step Value sht nj vler q shtohet n variabl do her q For . . . Next
loop ekzekutohet. Nse nuk vendoset ndonj vler ajo rritet me 1. Shikoni kodin
n vazhdim ku pas do here q kodi ekzekutohet variabla x rritet me 10.
Dim x As Integer

For x = 0 To 50 Step 10
txtMesazh.Text = txtMesazh.Text & x & ","
Next x
N kt loop vlera e fillmit sht 0, pas saj vjen vlera 10, 20, 30, 40 dhe 50. Kjo
dallohet fare qart, pasi t gjitha vlerat printohen n TextBox si n Fig.5. 6.







Page 130 of 239

Fig.5. 6 Printimi i vlerave nga 1 n 50 duke u rritur me 10.


N t njjtn mnyr si pr nj step value pozitive kemi dhe nj step value
negative. N kodin e mposhtm do t marrim t njjtin output me kodin e
msiprm, me t vetmin ndryshim se vlerat do t printohen duke filluar nga vlera
m e madhe tek vlera m e vogl, 50, 40, 30, 20, 10 dhe 0. Vrejeni kt n kodin
e mposhtm.
Dim x As Integer

For x = 50 To 0 Step -10
txtMesazh.Text = txtMesazh.Text & x & ","
Next x
Nj tjetr funksion shum i prdorshm pr for . . . next loop sht mbledhja e
disa numra. Kodi i mposhtm bn pikrisht kt, deklaron nj variabl intNumra
e cila shrben pr t ruajtur numrat e mbledhur dhe pr tja shtuar numrit
pasaardhs. Krijoni nj program me nj buton t quajtur Mbledhja dhe type
kodin e mposhtm.
Dim x, intNumra As Integer

Page 131 of 239

intNumra = 0
For x = 1 To 50
intNumra += x
Next x
MessageBox.Show("Shuma eshte " & intNumra.ToString())
Por ne mund dhe tja lm n dor prdorusit se sa numra dshiron t mbledhi. N
t njjtn form q prdorm pr kodin e msiprm shtoni dhe nj buton tjetr dhe
type kodin e mposhtm.
Dim intNumero, intMaxNumer As Integer
Dim dblTotal As Double = 0
Dim dblNumer As Double
Dim strInput As String
intMaxNumer = CInt(InputBox("Sa numra doni te mblidhni."))

For intNumero = 1 To intMaxNumer
strInput = InputBox("Fusni nje numer.")
dblNumer = CDbl(strInput)
dblTotal += dblNumer
Next intNumero

MessageBox.Show("Shuma eshte " & dblTotal.ToString())
Fillimisht prdorusit i krkohet sa numra dshiron t mbledhi. Kjo arrihet
nprmjet kodit t mposhtm.
intMaxNumer = CInt(InputBox("Sa numra doni te mblidhni."))
N kt kod ne po prdorim nj InputBox, t cilin do ta shpjegojm n detaje n
n kt kapitull. Megjithat tani sht e rndsishme t kuptohet se ata prodoren
pr ti dhn mundsin prdorusit t caktoj sa numra dshiron t mbledhi dhe
cilt jan kta numra. Vlera e vendosur nga prdorusi pr maksimumin e numrave
q do t mblidhen, ruhet n variabln intMaxNumer dhe kjo prcakton vlern e
prfundimit t ekzekutimit t loop. M posht prdorusi vendos numrat deri sa
vlera intMaxNumer t arrihet. Kur kjo vler arrihet loop prfundon s ekzekutuari
dhe vlera e numrave t mbledhur shfaqet n MessageBox.
Ndonjher sht e nevojshme t ndalojm Do While, Do Until dhe For . . . Next
loop kur ato jan duke u ekzekutuar. Kjo arrihet nprmjet fjalive Exit Do dhe
Exit For, t cilat kur vendosen brenda ktyre loop shkaktojn prfundimin e tyre.
Le t shohim se si kjo arrihet n shembullin e dhn m posht.
Dim intNumero, intMaxNumer As Integer
Dim dblTotal As Double = 0
Page 132 of 239

Dim dblNumer As Double
Dim strInput As String
intMaxNumer = CInt(InputBox("Sa numra doni te mblidhni."))

For intNumero = 1 To intMaxNumer
strInput = InputBox("Fusni nje numer.")
If strInput = String.Empty Then
Exit For
Else
dblNumer = CDbl(strInput)
dblTotal += dblNumer
End If
Next intNumero

MessageBox.Show("Shuma eshte " & dblTotal.ToString())
Fjalia If . . . Then . . . Else e prdorur n kt kod, bn t mundur q nse
prdorusi nuk fut ndonj vler pr numrat q do t mblidhen dhe klikon mbi
butonin Cancel ajo do t kthej vlern 0. Kjo arrihet duke prdorur fjalin Exit
For, e cila prfundon ekzekutimin e loop. Megjithat prdorimi i ktyre lloj
fjalish krkon nj kujdes t veant, pasi ato ndalojn ekzekutimin e loop
normalisht.
sht e rndsishme t bjm nj prmbledhje t shkurtr pr t treja llojet e loop,
ku t fukusohemi n mnyrn se si t prcaktojm ciln prej tyre sht m mir
pr t prdorur. Si e dini shum programe mund t shkruhen me t treja llojet e
loop, por prdorimi i njrs mund t ket shum avantazhe duke u krahasuar me
te tjerat.
Do While Loop sht e prdorshme kur ju dshironi q loop t prsritet pr aq
koh sa kushti t jet i vrtet. Do Until loop sht shum e ngjashme me Do
While loop dhe n prgjithsi Do While loop sht m e prdorshme. N dallim
nga t dy loop q prmendm m sipr, For . . . Next loop sht vetm pretest
loop, ajo asnjher nuk sht posttest. Kjo loop prdoret kur numri i ekzekutimit
t loop sht i njojtur.

5.3 NESTET LOOP

Ashtu si dhe nested If, nested loop sht nj loop brenda nj loope. Imagjinoni
se si nj or me akrepa funksionon. Kur akrepi i ors kryen nj rrotullim, akrepi i
minutave ka kryer 60 rrotullime dhe kur akrepi i minutave kryen nj rrotullim
akrepi i sekondave ka kryer 60 rrotullime. Pra pr nj rrotullim t akrepit t ors
Page 133 of 239

kemi 3600 rrotullime t akrepit t sekondave. E njjta ide funksionon dhe pr
nested loop. Vreni se si kjo ide funksionon pr kodin e mposhtm.
For ora = 0 To 24
lblOra.Text = ora.ToString
For minuta = 0 To 59
lblMinuta.Text = minuta.ToString
For sekonda = 0 To 59
lblSekonda.Text = sekonda.ToString
Next sekonda
Next Minuta
Next Ora
Kur loop e brendshme ekzekutohet 60 her, loop pr minutat ekzekutohet nj her
dhe kur loop pr orn t ekzekutohet 1 her, loop pr minutat do t jet
ekzekutuar 60 her dhe loop pr sekondat do t jet ekzekutuar 3600 her. Vini re
se pr gjetjen e numrit t ekzekutimeve t loop thjesht shumzohet numri i
ekzekutimeve t secils loop.

5.4 INPUT BOXES DHE LIST BOXES

Input Boxe sht nj mnyr e cila i jep mundsin prdorusit t fusi t
dhna. Nj input box ka dy butona: OK dhe Cancel. Forma e shfaqjes s input
boxes sht:
InputBox(Prompt [, Title] [, Default] [, Xpos] [, Ypos])
Prompt sht nj string q shfaqet n input box, e cila sht e vitmja q
sht e detyrushme.
Title sht nj string q shfaqet n title bar dhe sht jo e detyrushme.
Default sht nj string e cila shfaqet fillimisht n input box. Duke qen se
vlera e saj nuk sht e detyrushme, nse nuk vendoset ndonj vler pr t
ajo lihet bosh.
Xpos dhe Ypos vendosin pozicionin e input box duke marr si referenc,
si e kemi shpjeguar n kapitullin e par, cepin e siprm t krahut t majt
t ekranit. Xpos mat distancn horizontale duke pasur si referenc cepin e
siprm t krahut t majt t ekranit. Nse ne nuk vendosim ndonj vler t
caktuar, input box do t vendoset n mes t ekranit. Ypos mat distancn
vertikalisht dhe nse nuk vendoset ndonj vler e caktuar input box
pozicionohet afrsisht n kreun e siprm t ekranit.
Page 134 of 239

Si tham m sipr input box ka dy butona: butonin OK i cili nse klikohet
funksioni kthen nj vler string dhe butonin Cancel i cili kur klikohet kthen nj
string boshe.
List box shfaq nj list me objekte dhe i jep mundsin prdorusit t zgjedhi nj
ose disa objekte nga kjo list. Pr t krijuar nj list box kliko dy her mbi ListBox
n ToolBox, ose kliko mbi t dhe trhiqe duke e mbajtur mousin t shtypur.
Vendoseni at n pozicionin e dshiruar. Pr t krijuar nj list me objekte, nn
Properties kliko mbi Items dhe kliko butonin n t djatht. Do t shfaqet nj
window i ri si n Fig.5. 7, ku si e shihni ne kemi type disa vlera: Vlora, Tirana,
Fieri dhe Durresi. Kini parasysh se vlerat duhet t shfaqen secila n nj rresht.
Pasi t keni type t gjitha vlerat si tregohet n Fig.5. 7, klikoni mbi butonin OK
dhe vini re se t gjitha vlerat jan transferuar n list box. N kt mnyr ne themi
se kemi krijuar nj list box.

Fig.5. 7 String Collection Editor dialog box.

Page 135 of 239

Nj tjetr mnyr se si t shtojm objekte n nj list box sht nprmjet kodit:
ListBox.Items.Add(emri i objektit q do t shtohet)
Provojeni kt duke shtuar n formn e msiprme nj buton, klikoni dy her mbi
t dhe shtoni kodin e mposhtm. Start Debugging dhe kliko mbi butonin. Vini re
se emri Shkodra do t shtohet n list.
ListBox1.Items.Add("Shkodra")
N fjalin e msiprme fjala Shkodra shtohet n fund t lists, por ka dhe nj
metod e cila mund ta vendosi at n pozicione t caktuara t lists. Kjo arrihet
sipas kodit t mposhtm.
ListBox.Items.Insert(Inedx, emri i objektit)
Nse do t dshironim ta shtonim emrin Shkodra pas emrit Vlora n kodin e
butonit do t typet fjalia e mposhtme dhe n Fig.5. 8 tregohet se si emri Shkodra
do t pozicionohet n listn e mparshme:
ListBox1.Items.Insert(1, "Shkodra")

Fig.5. 8 Shtimi i emrit Shkodra pas emrit Vlora.

Page 136 of 239


Po a ka ndonj mnyr ku ashtu si objekti u shtua n list dhe t lvizet nga lista?
Kjo arrihet nprmjet: Items.Remove. Kjo mnyr heq nga lista nj objekt t
caktuar si n fjalin n vazhdim ku fjalia Fieri lvizet nga lista. Nse pr kodin e
mposhtm emri i objektit nuk ndodhet n list, ather asnj objekt nuk do t
lvizet nga lista.
ListBox1.Items.Remove("Fieri")
Metoda Items.Clear fshin t gjith objektet nga lista. Nse fjalia e mposhtme do
t prdoret pr kodin e butonit, ather asnj prej emrave t qyteteve nuk do t
ndodhej n list kur butoni t klikohej.
ListBox1.Items.Clear()
Tani do t krijojm nj projekt ku t prdorim list boxes.
Etapa e par: Krijoni nj form si n Fig.5. 9, e cila t prmbaj dy list boxes: e
para pr emrat e personave t cilt do t krkojn ditlindjen dhe e dyta pr
ditlindjet e tyre. Pr t krijuar listn e par kliko mbi list box, kliko mbi Items n
windows Properties dhe kliko n butonin e shfaqur djathtas. Type nj list me
emrat e shokve tuaj. Vendos vlern pr Name: lstMuajt. Pr list boxin tjetr
kliko mbi t dhe vepro n t njjtn mnyr si pr t parin, por pr vlern e Name
vendos lstVitet.

Fig.5. 9 Forma e aplikimit pr dy list box.

Page 137 of 239

Etapa e dyt: Vendos n form nj buton dhe vendos vlern pr Name: btnOk
dhe vlern pr Text: OK. Kliko dy her mbi butonin dhe type kodin e mposhtm.
'Mban muajt qe jane zgjedhur
Dim strInput As String
If lstMuajt.SelectedIndex = -1 Then
'Nuk eshte zgjedhur asnje muaj
MessageBox.Show("Zgjidh nje muaj.")
ElseIf lstVitet.SelectedIndex = -1 Then
'Nuk eshte zgjedhur asnje vite
MessageBox.Show("Zgjidh nje vite.")
Else
'Merr muajin dhe vitin qe jane zgjedhur
strInput = lstMuajt.SelectedItem.ToString() & " " _
& lstVitet.SelectedItem.ToString()
MessageBox.Show("Ju zgjodhet " & strInput)
End If
Le ta analizojm me kujdes kodin. N pjesn e par t fjalis If po themi se nse
prdorusi nuk zgjeth asnj prej emrave, n MessageBox do t shfaqet mesazhi:
Zgjidh nje muaj.
Nse prdorusi zgjeth nj emr por nuk zgjeth datlindjen e personit, ather n
MessageBox do t shfaqet mesazhi:
Zgjidh nje vite.
Kuptohet se nse zgjidhet nj datlindje por nuk zgjidhet nj emr mesazhi i par
do t shfaqet. Nse zgjidhet nj emr dhe datlindja prkatse n MessageBox do
t shfaqet mesazhi ku do t tregohet emri dhe ditlindja e tij. Pr shembull n
Fig.5. 10 prdorusi ka zgjedhur Vrano dhe datlindjen e tij.







Page 138 of 239

Fig.5. 10 Prdorusi zgjodhi Vrano dhe 3-4-2003.


Etapa e tret: Vendos dhe nj buton tjetr i cili nse prdorusi bn nj zgjedhje
gabim dhe krkon si emri ashtu dhe datlindja t mos jen t zgjedhura, kjo
arrihet duke klikuar butonin pastron. Kliko dy her mbi butonin dhe type kodin e
mposhtm. Ajo far ne po themi n kto dy fjali sht se vlera e SelectedIndex
vendoset n -1, q do t thot se asnj prej objekteve t tyre nuk sht i zgjedhur.
Kini parasysh se vlera e objektit t par sht 0 dhe vazhdon me radh 1, 2, 3 . . .
deri n objektin e fundit q sht n 1.
'Pastron list boxes duke mos qene e zgjedhur ndonje prej tyre
lstMuajt.SelectedIndex = -1
lstVitet.SelectedIndex = -1
Etapa e katrt: Testo programin sipas t gjitha mundsive dhe sigurohu se t
gjitha funksionet e tij jan t sakta. Pas ksaj ruaj programin dhe mbylle at.
List Box shum kolonshe
List box ka nj opsion MultiColumn n windows Properties. Opsioni i saj
fillimisht shfaqet n False por ne mund ta kthejm n True duke klikuar dy her
mbi t. Krijoni nj form dhe shtoni n t nj list box, vendosni vlern pr Name:
lstKollonat, ktheni Multicolumn n True dhe ColumnWidth n 50 (numri i
elementve). Shtoni nj buton dhe type kodin e mposhtm pr t. N Fig.5. 11
tregohet kjo List Box. Vini re se n kt form shfaqet nj horizontal scroll bar t
Page 139 of 239

ciln prdorusi mund ta lvizi djathtas dhe majtas dhe t zgjedhi ndonjrin prej
elementve.
Dim intNumer As Integer
For intNumer = 0 To 50
lstKollonat.Items.Add(intNumer)
Next
Fig.5. 11 List Box me Multicolumn.


Combo Boxes
Combo Boxes jan t ngjashme me List Boxes dhe kryejn t gjitha funksionet q
kryejn List Boxes, por shfaqin dhe nj drejtkndsh me funksionin si Text
Boxes. Prdorusi i ka t dyja opsionet: t zgjedhi nj objekt nga lista ose t type
emrin e objektit n tekstin e combo box. N t dyja rastet teksti do t ruhet n
Text property. Emri standart pr combo box sht cbo dhe gjenden tre tipe combo
boxes: drop-down combo box, simple combo box dhe drop-down list combo
box.
Drop-down combo box mund t prdoret si text box ose si list box. Prdorusi
mund t type emrin e objektit n tekstin e shfaqur dhe ky tekst do t ruhet n Text
property, ose mund t zgjedhi objektin nga lista dhe objekti kopjohet n Text
Page 140 of 239

property dhe shfaqet n hapsirn e text box. Fillimisht lista ktu nuk sht e
shfaqur, por nj shigjet djathtas mund t klikohet dhe lista shfaqet.
Simple combo box sht i ngjashm me drop-down combo box dhe i ka t gjitha
funksionet e tyre. Ndryshimi sht se lista nuk shfaqet si n rastin e par me nj
shigjet, por ajo shfaqet e gjitha q n fillim.
Drop-down list combo box i ofron prdorusit opsionin e zgjedhjes nga lista por,
prdorusi nuk mund t zgjedhi nj objekt duke e typur at. Kur prdorusi zgjeth
objektin nga lista, objekti kopjohet n tekstin n krye t como box dhe Text
property.
Le t krijojm tani nj projekt pr krijimin e combo boxes.
Duam t krijojm nj projekt ku prdorusi t prdori combo boxes pr t shfaqur
n label: Skuadrn, Shetin dhe kategorin.
Etapa 1: Pasi t keni krijuar nj projekt vendosni emrin e forms Combo Box,
kini kujdes pr t br kt duhet t keni klikuar m par mbi form dhe pastaj
ndryshoni vlern pr Text n Combo Box. Krijoni formn si n Fig.5. 12.
Emroini kontrollet duke u bazuar n kodin q ne do t japim pr secilin buton,
ose sipas dshirs suaj dhe prshtasni kodin. Ju tashm jeni familjarizuar si me
krijimin e forms ashtu dhe me shkruajtjen e kodit.
Fig.5. 12 Forma pr Combo Box.

Page 141 of 239

Etapa 2: Kliko dy her mbi butonin Trego dhe type kodin:
'Shfaq zgjedhjen prej combo boxes
lblSkuadrat.Text = cboSkuadrat.Text
lblShtetet.Text = cboShtetet.Text
lblKategoria.Text = cboKategoria.Text
Etapa 3: Kliko dy her mbi butonin Pastron dhe type kodin:
'Pastron combo boxes nga zgjedhjet e meparshme
cboSkuadrat.SelectedIndex = -1
cboSkuadrat.Text = String.Empty
cboShtetet.SelectedIndex = -1
cboShtetet.Text = String.Empty
cboKategoria.SelectedIndex = -1 'Nuk mund te shkruhet ne cboArtist

'Pastron label
lblSkuadrat.Text = String.Empty
lblShtetet.Text = String.Empty
lblKategoria.Text = String.Empty
Etapa 3: Shkruani kodin pr butonin Mbyll. Start Debugging dhe testoje
programin deri sa t siguroheni se ai funksionon n rregull.

Prdorimi i fjalive With . . . End With
Kjo metod prdoret pr t shkurtuar punn e programusit. Vreni kodin n
vazhdim.
txtEmri.Clear()
txtEmri.ForeColor = Color.Red
txtEmri.BackColor = Color.Blue
txtEmri.BorderStyle = BorderStyle.Fixed3D
Vini re se si emri txtName shfaqet katr her. Shikoni se si kjo mnjanohet duke
prdorur fjalin With . . . End With
With txtEmri
.Clear()
.ForeColor = Color.Red
.BackColor = Color.Blue
Page 142 of 239

.BorderStyle = BorderStyle.Fixed3D
End With

5.5 PROJEKTI KREDIA PR VETURN

N kt projekt ne do t ndrtojm nj aplikim, t cilin na e krkon nj prej
bankave e cila ka shum krkesa nga qytetart pr kredi pr vetura t reja dhe t
prdorura. Banka ofron kredi me interes m t ult pr veturat e reja dhe nuk
ofron kredi m pak se 6 muaj dhe m shum se 48 muaj. N Fig.5. 13 tregohet
forma e ktij aplikimi dhe n vazhdim jepen vlerat e disa prej controleve m t
rndsishm.
Fig.5. 13 Forma e aplikimit Kredia per Veturn.


Control Name Property Property Value
txtKostua Causes Validation True
Tabndex 1
Tool Tip on ToolTip1 Fusni koston e veturs.
Page 143 of 239

Vini re se fjalia e tret pr property sht Tool Tip on ToolTip1 t ciln sht
hera e par q ne e prdorim. Prdorimi i saj krijon nj mnyr m komode pr
prdorusin, pasi kur prdorusi e vendos kursorin mbi kt text box, do t shfaqet
mesazhi Fusni koston e veturs. Kjo bn q prdorusi ta ket m t thjesht pr
t kuptuar funksionin e ktyre kontrol. Pr t vendosur kt vler n Properties
klikoni mbi Tool Tip on ToolTip1 dhe type mesazhin e treguar m sipr.
Control Name Property Property Value
txtPagesaFillestare Causes Validation True
Tabndex 3
Tool Tip on ToolTip1 Fusni sasin e parave te paguara.
txtMuajt Causes Validation True
Tabndex 5
Tool Tip on ToolTip1 Fusni muajt qe do te merret kredia.
radRe Causes Validation True
Tabndex 0
Tool Tip on ToolTip1 Nese vetura eshte e re kliko ketu.
radPerdorur Causes Validation True
Tabndex 1
Tool Tip on ToolTip1 Nese vetura eshte e perdorur kliko.
lblPerqindVjetore BorderStyle Fixed3D
Tabndex 1
Tool Tip on ToolTip1 Perqindja vjetore.
lblOutput TabIndex 2
btnLlogarit Text Llogarit
Causes Validation True
Tabndex 3
Tool Tip on ToolTip1 Kliko per te llogaritur pagesen.
Page 144 of 239

btnPastron Text Pastron
Causes Validation False
Tabndex 4
Tool Tip on ToolTip1 Kliko per te pastruar formen.
btnMbyll Text Mbyll
Causes Validation False
Tabndex 5
Tool Tip on ToolTip1 Kliko per te mbyllur windows.
N vazhdim po japim proedurat pr aplikimin Kredia per Veturn.
Metoda Prshkrimi
btnCalculate_Click Llogarit dhe shfaq listn me interesin dhe principal pr
kredin
btnClear_Click Pastron list box dhe text boxes
btnExit_Click Mbyll windows
radNew_CheckedChanged Tregon interesin nse prdorusi zgjedh vetur e re
radUsed_CheckedChanged Tregon interesin nse prdorusi zgjedh vetur e vjeter
txtCost_Validating Vlerson nse nj numr futet n text box
txtDownPayment_Validating Vlerson nse nj numr futet n text box
txtMonths_Validating Vlerson nse nj numr futet n text box
Page 145 of 239


Fig.5. 14 Flowchart pr butonin Llogarit.

Fig.5. 15 Flowchart pr radRe.

Page 146 of 239


Fig.5. 16 Flowchart pr radPerdorur.
Pseudocode pr radRe sht dhn n vazhdim dhe n mnyr t ngjashme jepet
dhe pseudocode pr radVjeter.
If radRe zgjidhet Then
Prqindja vjetore = 0.05
Shfaq Perqindjen Vjetore n label lblPerqindjaVjetore
End If

Fig.5. 17 Flowchart pr txtKostua.
Page 147 of 239



Fig.5. 18 Flowchart pr txtPagesaFillestare.

Fig.5. 19 Flowchart pr txtMuajt.
Page 148 of 239

Para se t fillojm t shkruajm kodin le t shtojm dhe nj ToolTip n form. Pr
kt n Toolbox klikoni mbi ToolTip dhe vini re se si ajo shfaqet me nj
drejtkndsh n fund t windows.

Etapa 1: Le t fillojm t shkruajm kodin duke filluar me deklarimin e
variablave class-level. N Solution Explorer kliko mbi View Code dhe shkruaj
kodin e mposhtm. Ky kod nuk duhet t jet brenda ndonj proedure.
Const intMIN_MUAJ As Integer = 6
Const intMAX_MUAJ As Integer = 48
Const sngMUAJ_VITE As Integer = 12 'Muaj ne vit

'Percakton perqindjen mujore per veturat e reja dhe te perdorura
Const dblRE_PERQIND As Double = 0.05
Const dblPERDOR_PERQIND As Double = 0.06
Dim dblPerqindVjetore As Double = dblRE_PERQIND
N fjalin dblPerqindVjetore kjo variabl deklarohet si class-level pasi ajo do t
prdoret nga disa metoda. Ajo gjithashtu vendoset n vlern dblRE_PERQIND
pr arsyen se nj vetur e re do t zgjidhet fillimisht.

Etapa 2: Kliko dy her mbi butonin Llogarit dhe shkruaj kodin e mposhtm.
'Llogarit dhe shfaq informacionin per kredin
Dim intNumero As Integer 'Numeron lloop
Dim intMuaj As Integer 'Muajt per kredi
Dim dblKredia As Double 'Sasia e kredis
Dim dblPagesa As Double 'Pagesa mujore
Dim dblInteresi As Double 'Intersti i paguar per perioden
Dim dblPrincipal As Double 'Pagesa fillestare

'Merr muajt dhe llogarit kredin
intMuaj = CInt(txtMuajt.Text)
dblKredia = CDec(txtKostua.Text) - CDec(txtPagesaFillestare.Text)

'Llogarit pagesen mujore
dblPagesa = Pmt(dblPerqindVjetore / sngMUAJ_VITE, intMuaj,-dblKredia)

'Pastron list box
lstOutput.Items.Clear()

For intNumero = 1 To intMuaj
Page 149 of 239

Dim strOut As String = String.Empty

'Llogarit interesin
dblPrincipal = PPmt(dblPerqindVjetore / sngMUAJ_VITE, intNumero, intMuaj, -
dblKredia)

'Shton muajt ne output
strOut &= " Muajt: " & intNumero.ToString
'Shton pagesen ne output
strOut &= " Pagesa: " & FormatCurrency(dblPagesa)
'Shton interesin ne output
strOut &= " Interesi: " & FormatCurrency(dblInteresi)
'Shton pagesen fillestare
strOut &= " Principali: " & FormatCurrency(dblPrincipal)
'Shton output ne list box
lstOutput.Items.Add(strOut)
Next intNumero
N variabln dblKredia vendoset vlera e cila do t llogaritet nga banka pr
kredin, nse do e thoshim me fjal t tjera borxhi. Kjo vler llogaritet duke zbitur
nga kostua e veturs pagesn fillestare. Nse do t blinim supozojm nj vetur q
kushtonte 30 mij dollar dhe ne kishim 2 mij dollar ather kredia q do t
merrnim nga banka do t ishte 28 mij dollar.
M posht programi vazhdon me llogaritjen e pagess mujore.
dblPagesa = Pmt(dblPerqindVjetore / sngMUAJ_VITE, intMuaj, -dblKredia)
Si e shihni funksioni Pmt e lehtson shum punn tuaj dhe ju nuk duhet t
shqetsoheni se si ai sht krijuar, pasi prandaj dhe tham q n kapitullin e par
q Visual Basic sht nj gjuh e nivelit t lart. Ajo q ju duhet t kuptoni sht
funksioni i tij.
N pjesn e par t ktij funksioni dblPerqindVjetore / sngMUAJ_VITE do t
pjestoj prqindjen e ofruar nga banka me 12 muaj. N rastin ton prqindja pr
veturat e reja sht 5%, ather 0.05 do t pjestohet me 12 muaj dhe t na japi
0.042 interesin periodik. N pjesn e dyt variabla intMuaj do t jet vlera e
kohs pr t cilin ne do t marrim kredin. Pr shembull nse kredia do t jet pr
dy vjet kjo vler sht 24. N pjesn e tret t funksionit kemi kredin ose borxhin
e marr nga banka. Kjo vler do t jet gjithmon negative.
Nj tjetr funksion q prdoret brenda for loop sht funksioni PPmt:
dblPrincipal = PPmt(dblPerqindVjetore / sngMUAJ_VITE, intNumero, intMuaj, -dblKredia)
Page 150 of 239

Si e shihni t gjitha pjest e ktij funksioni jan t ngjashme me funksionin Pmt,
pve intNumero n pjesn e dyt. Kjo prdoret pr t prcaktuar periodn pr t
ciln ju dshironi t llogarisni pagesn e interesit.

Etapa 3: Kliko dy her mbi butonin Pastron dhe shkruaj kodin e mposhtm:
'Pastron text box dhe list box
radRe.Checked = True 'E kthen te klikuar
'dblAnnualRate = dblNEW_RATE
lblPerqindVjetore.Text = CStr(dblRE_PERQIND)
txtKostua.Clear()
txtPagesaFillestare.Clear()
txtMuajt.Clear()
lstOutput.Items.Clear()

'Kthen kursorin
txtKostua.Focus()
do pjes e ktij kodi sht e kuptushme dhe ju nuk duhet t keni problem me t.
Kliko dy her mbi butonin Mbyll dhe shkruaj kodin pr t.

Etapa 4: Kliko dy her mbi radRe dhe type kodin:
'Nese butoni vetur e re eshte i zgjedhur
If radRe.Checked = True Then
dblPerqindVjetore = dblRE_PERQIND
lblPerqindVjetore.Text = FormatPercent(dblRE_PERQIND)
End If
Mos u ngatrroni me fjalin e fundit pasi n t thjesht po vendoset n label vlera
e prqindjes, 5%.

Etapa 5: Kliko dy her mbi radVjeter dhe type kodin:
'Perdorusi zgjedh butonin veture e vjeter
If radVjeter.Checked = True Then
dblPerqindVjetore = dblPERDOR_PERQIND
lblPerqindVjetore.Text = FormatPercent(dblPERDOR_PERQIND)
End If
Page 151 of 239

Etapa 6: Klikoni shigjetn q gjendet n kry t kodit dhe klikoni mbi txtKostua.
N krahun e djatht me at q klikuat m par klikoni shigetn dhe n listn e
shfaqur klikoni n Validating. Shkruani kodin si m posht.
'Vlereson nese nje numer futet ne txtCost
If Not IsNumeric(txtKostua.Text) Then
MessageBox.Show("Kostua duhet te jete nje numer.")
'Zgjedh tekstin e zgjedhur ne text box
txtKostua.SelectAll()
'Vendos kursorin
e.Cancel = True
Else
e.Cancel = False
End If

Etapa 7: Kryeni t njjtat veprime me etapn 6, por tani kliko mbi
txtPagesaFillestare dhe type kodin:
'Vlereso se nje numer eshte ne text box
If Not IsNumeric(txtPagesaFillestare.Text) Then
MessageBox.Show("Pagesa fillestare duhet te jete nje numer.")
'Zgjedh tekstin e zgjedhur ne text box
txtPagesaFillestare.SelectAll()
'Vendos kursorin
e.Cancel = True
Else
e.Cancel = False
End If

Etapa 8: Kryeni t njjtat veprime me etapn 6, por tani kliko mbi txtMuajt dhe
type kodin:
'Vlereson nese eshte nje numer
If Not IsNumeric(txtMuajt.Text) Then
MessageBox.Show("Muajt duhet te jete nje numer.")
'Zgjedh tekstin e zgjedhur ne text box
txtMuajt.SelectAll()
'Vendos kursorin
e.Cancel = True
Else
Dim intMonths As Integer = CInt(txtMuajt.Text)

If intMonths < intMIN_MUAJ Or intMonths > intMAX_MUAJ Then
Page 152 of 239

MessageBox.Show("Muajt duhet te jene ne kufit e percaktuar")
'Zgjedh tekstin e zgjedhur ne text box
txtMuajt.SelectAll()
'Vendos kursorin
e.Cancel = True
Else
e.Cancel = False
End If
End If

Etapa 9: Start Debugging dhe nse ka gabime krahasojeni me kujdes me kodin
ton. Ruaj projektin dhe mbylleni at. Ju kryet me sukses nj projekt jo dhe aq t
leht i cili sht gjersisht i prdorshm.
















Page 153 of 239

Ushtrime dhe Problema

5.1 Sa her do t shfaqet emri Vlora n kodin n vazhdim?
Dim intNumero As Integer = 0
Do While intNumero < 10
MessageBox.Show(Vlora)
Loop
5.2 Sa her do t shfaqet emri Vlora n kodin n vazhdim?
Dim intNumero As Integer = 0
Do While intNumero < 10
MessageBox.Show(Vlora)
intNumero += 2
Loop
5.3 Sa her do t shfaqet emri Vlora n kodin n vazhdim?
Dim intNumero As Integer = 0
Do
MessageBox.Show(Vlora)
intNumero += 1
Loop While intNumero < 10
5.4 Sa her do t shfaqet emri Vlora n kodin n vazhdim?
Dim intNumero As Integer = 10
Do
MessageBox.Show(Vlora)
intNumero += 1
Loop While intNumero < 5
Page 154 of 239

5.5 Sa her do t shfaqet emri Vlora n kodin n vazhdim?
Dim intNumero As Integer = 0
Do While intNumero < 100
MessageBox.Show(Vlora)
intNumero += 1
Loop
5.6 Krijoni nj aplikim ku prdorusi t ket mundsin t zgjedhi qytetin dhe ekipin
e futbollit t ktij qyteti. Lista duhet t jet e gjat me t paktn dhjet qytete.
5.7 Ju duhet t zgjidhni metodn pr t vendosur tekstin e
zgjedhur n text box.
a) SetSelection
b) GetSelection
c) SelectAll
d) SelectTex
5.8 Pr projektin pr kredin e veturs banka ka vendosur t rrisi minimumin e
muajve t dhnies s kredis n 12 muaj dhe maximumin n 60 muaj. Gjithashtu
prqindja pr veturat e reja do t ndryshoj n 7.25% dhe pr veturat e vjetra n
9%. far duhet t ndryshoj n kodin e mparshm?


Page 155 of 239


KAPITULLI 6

ARRAYS

Gjat programimit ne shpesh duam ti organizojm objektet n mnyr t
till q mund t kemi akses dhe ti modifikojm ato. Kjo ide sht shum e
rndsishme kur ne duam t menaxhojm nj numr t math vlerash, le t
themi pr shembull se kemi 1000 apo m shum t dhna. N kt kapitull
ne do t flasim pr arrays t cilat jan komponent baz jo vetm pr gjuhn
Visual Basic por pr shumicn e gjuhve t nivelit t lart. Arrays jan dy
llojshe: nj dimensionale dhe shum dimensionale. N kt kapitull ne do
t trajtojm disa teknika programimi si: shumn dhe mesataren e
elementve n nj array, shumn e t gjitha kolonave n nj array me dy
dimensione, krkimin n nj array pr nj vler specifike dhe prdorimin e
arrays paralele.

6.1 ARRAY ME NJ DIMENSION

Nj array sht nj grup variablash q jan t lidhura n mnyr llogjike me
njra tjetrn. Array u lejon ju tu referoheni ktyre variablave me t njjtin
emr dhe me nj numr t quajtur index. Secila prej ktyre vlerave quhet element
i array, t cilat fillojn me index 0 dhe shkojn deri n indexin n 1, ku n sht
numri i elementve. N fjalin e mposhtme po deklarojm nj array me 10
element, pr t cilt elementi i par sht 0 dhe elementi i dhjet sht 9.
Imagjinojeni se sa deklarime duhet t bnim nse nuk do t prdornim nj array,
do t na duhej t deklaronim do element t saj.
Dim emri(10) As Integer
Si dhe e vini re ne e deklarojm nj variabl array n t njjtn mnyr si kemi
deklaruar variablat dhe m par, duke prdorur Dim. Emri i array ndiqet me nj
ose disa kllapa dhe pas saj vjen lloji i t dhnave. N rastin ton vlera brenda
kllapave sht nj numr, por ajo mund t jet dhe nj variabl.
Page 156 of 239

Nj tjetr mnyr deklarimi sht duke i deklaruar t gjitha vlerat si n nj list.
Deklarimi i nj array n kt mnyr quhet initialization list dhe jepet si m posht:
Dim emri() As Integer = { 10, 15, 20, 25, 30}
Vlera 10 sht ruajtur n indexin 0, vlera 15 n index 1 dhe vazhdon n t njjtn mnyr
deri n fund t lists ku 30 ruhet me index 4. Si tham dhe m sipr elementt e array
nuk sht e thn t jen vetm numra, ata mund t deklarohen dhe si nj string array.
Dim emri() As String = { Lanti, Liri, Vrano, Lajdi}
Ju mund t ruani nj vler n nj element t array duke prdorur nj assignment
statement. N krahun e majt t operatorit = prdoret emri i array s bashku me index.
intEmri(0) = 15
intEmri(1) = 20
intEmri(2) = 25
Referohuni Error! Reference source not found. pr t kuptuar m mir
iden dhe prbrsit e array. N kt array emri i saj sht numer,
elementt e array jan 37, 23, . . . 79 dhe index pr array jan 0, 1, . . . 9.
Vini re numrin pr indexin e par i cili sht 0 dhe numrin pr indexin e
fundit i cili sht 9, pra nj m pak nga numri i elementve t array i cili
sht 10. Pr ta prgjithsuar kt ide themi se indexi pr do array fillon
me 0 dhe mbaron me n-1, ku n sht numri i elementeve t array. Vini re
kodin e mposhtm se si shkruhet pr elementin e dyt t array t quajtur
numer.
numr (1) = 23;
vlera
numer 37 23 56 36 54 13 21 89 65 79
0 1 2 3 4 5 6 7 8 9
index
Fig. 6. 1 Nj array e quajtur numer.
6.1.1 Prdorimi i elementve t array me nj loop
Prdorimi i loop n array sht shum i vlefshm kur kemi t bjm me nj array
me shum element, pasi shkruajtja e fjalive pr secilin element do t krkonte nj
koh t gjat. Pr shembullin e mposhtm intElement sht nj array me 10
element. Prdorimi i For . . . Next loop ruan vlern 50 n do element duke
filluar nga index 0 dhe prfunduar index 9.
Page 157 of 239

Dim intNumero As Integer = 0
For intNumero = 0 To 9
intElement(intNumero) = 50
Next intNumero
Variabla intNumero merr vlerat nga 0 n 9, kur loop prsritet. Hern e par q
loop ekzekutohet intNumero sht i barabart me 0 dhe fjalia
intElement(intNumero) = 50 do t ruaj vlern 50. Hern e dyt intNumero do t
jet i barabart me 1 dhe prsri e njjta fjali do t vendosi vlern 50, n t njjtn
mnyr do t vazhdoj deri n indexin e 9. Pra vlera 50 do t vendoset n t gjitha
elementt e array duke filluar nga index 0 n index 9.

6.1.2 Fjalia For Each
Fjalia For Each sht nj rast special i fjalis loop. Formati i saj sht si m
posht.
For Each variabl In Array
Fjali (m shum fjali mund t ket)
Next variabl
variabl sht emri i variabls q prezanton nj element t arry gjat secilit
ekzekutim t loop.
Array sht emri i array pr t cilin loop po operon
Le t shohim nj shembull m konkret pr t kuptuar m mir prdorimin e ksaj
fjalie.
Dim strUniversitet As String() = { Miri, Tani, Eno }
Dim strEmri As String
For Each strEmri In strUniversitet
MessageBox.Show(strEmri)
Next strEmri
N kodin n vazhdim po japim t njjtin shembull por duke prdorur Do While
loop.
Dim intNumero As Integer
Page 158 of 239

Do While intNumero < 10
intElement(intNumero) = 50
intNumero += 1
Loop

6.1.3 Prcaktimi i Elementve n Array
Ne e kemi shpjeguar dhe m par n kt kapitull se index sht i barabart me
numrin e elementve minus 1. N fjalin e mposhtme kemi 11 element.
Dim intElement(10) As Integer
Le t shohim tani se si mund t prdorim gjatsin e array n nj loop. N kodin e
mposhtm shprehja intElement.Length - 1 prcakton vlern maksimale q loop
mund t marri.
For intNumero = 0 To (intElement.Length 1)
MessageBox.Show(intElement(intNumero).ToString())
Next intNumero
N kodin n vazhdim prdorimi i For . . . Next loop prdoret me nj tjetr
funksion, mbleth t gjitha vlerat e elementve me njri - tjetrin. Variabla intTotali
prdoret si nj akumulator, ku vlera fillestare e saj sht 0.
Dim intElement(10) As Integer
Dim intTotali As Integer
Dim intNumero As Integer
For intNumero = 0 To (intElement.Length 1)
intTotali += intElement(intNumero)
Next intNumero

6.1.4 Llogaritja e Mesatares n Array
Pr t llogaritur mesataren n nj array fillimisht duhet t mblidhen t gjitha vlerat
dhe kjo vler duhet t pjestohet me numrin e elementve t array.
Dim intElement(10) As Integer
Page 159 of 239

Dim intTotali As Integer
Dim dblMesatarja As Double
Dim intNumero As Integer
For intNumero = 0 To (intElement.Length 1)
intTotali += intElement(intNumero)
Next intNumero
Llogarit mesataren
dblMesatarja = intTotali / intElement.Length
Tregoni kujdes n fjalin e fundit e cila duhet t ekzekutohet pasi loop t ket
prfunduar ekzekutimin e saj.

6.1.5 Gjetja e vlers m t madhe dhe m t vogl n array.
Algoritmet pr gjetjen e vlers m t madhe ose m t vogl jan shum t
ngjashm. Le t shohim fillimisht algoritmin pr gjetjen e vlers m t madhe.
Dim intElement(10) As Integer
Dim intNumero As Integer
Dim intMax As Integer = intElement(0)
For intNumero = 1 To (intNumero.Length 1)
If intElement(intNumero) > intMax Then
intMax = intElements(intNumero)
End If
Next intNumero
Kodi fillon duke ruajtur vlern e elementit t par t array n varabln intMax.
N vazhdim For . . . Next loop krahason t gjitha vlerat e tjera t elementve t
array me vlern q ndodhet n pozicionin e par, ose me vlern q ka index 0.
Nse gjendet nj vler e till ajo ruhet n varabln intMax. Pasi t gjitha vlerat
jan krahasuar, vlera n variabln intMax do t jet m e madhja.
Page 160 of 239

M posht jepet kodi pr gjetjen e vlerave m t vogla, i cili sht shum i
ngjashm me kodin e msiprm.
Dim intElement(10) As Integer
Dim intNumero As Integer
Dim intMin As Integer = intElement(0)
For intNumero = 1 To (intNumero.Length 1)
If intElement(intNumero) < intMin Then
intMin = intElements(intNumero)
End If
Next intNumero

6.1.6 Kopjimi i nj array n nj tjetr

Vreni kodin n vazhdim.
Dim intVlereRe(2) As Integer
Dim intVlereVjeter(2) As Integer
intVlereVjeter(0) = 50
intVlereVjeter(1) = 60
intVlereVjeter(2) = 70
Nse ne dshirojm t kopjojm prmbajtjen e intVlereVjeter n intVlereRe ne
nuk mund ta bjm at si me kodin n vazhdim.
intVlereRe = intVlereVjeter
Kjo fjali nuk kopjon vlerat e nj array tek tjetra, por ajo vetm sa emrat
intVlereRe dhe intVlereVjeter i referohen t njjts array n memorie. Pr t
arritur kopjimin e vlerave t nj array n nj tjetr duhet prdorur loop, me ann e
s cils do vler e elementve t intVlereVjeter kopjohet n intVlereRe array.
For intNumero = 0 To (intVlereVjeter.Length1)
Page 161 of 239

intVlereRe(intNumero) = intVlereVjeter(intNumero)
Next intNumero

6.1.7 Array paralele
Paralel arrays jan dy ose m shum arrays q mbajn t dhna q kan lidhje
ndrmjet tyre. Ndonjher sht e nevojshme pr te ruajtur t dhnat n dy ose m
shum arrays.
Dim strEmri(4) As String
Dim strAdresa(4) As String
Array strEmri ruan emrat e pes njerzve dhe array strAdresa ruan adresat e tyre
prkatse. Informacioni pr personin e par ruhet n: emri n strEmri(0) dhe
adresa n strAdresa(0). N mnyr t ngjashme ruhet informacioni pr t gjith
personat.
Loop n vazhdim shfaq emrin dhe adresn e do personi n nj list box t quajtur
lstNjerz.
For intNumero = 0 To 4
lstNjerez.Items.Add( Emri: & strEmri(intNumero) & Adresa: &
strAdresa(intNumero)
Next intNumero
Shikoni se si n fjalit n vazhdim ruhen emrat n list box. Kur kto fjali
ekzekutohen Gjergji Shaska ruhet n index 0, Dritan Lena n index 1 dhe
Erion Kisi n index 2.
lstNjerez.Items.Add(Gjergji Shaska)
lstNjerez.Items.Add(Dritan Lena)
lstNjerez.Items.Add(Erion Kisi)
Gjithashtu supozojm se aplikimi ka nj string array t quajtur strTelefon, e cila
mban numrat e telefonit t tre personave q emrat e tyre jan ruajtur n lstbox.
strTelefon(0) = 20-235-1398
strTelefon(1) = 20-245-1398
Page 162 of 239

strTelefon(2) = 20-255-1398
Numri i telefonit i ruajtur n index 0 (20-235-1398) i prket personit q emri i
tij sht ruajtur n index 0 (Gjergji Shaska). N t njjtn mnyr lidhen dhe
elementt e tjer t array. Kur prdorusi zgjedh nj emr nga list box, numri i
telefonit t ktij personi do t shfaqet.

6.1.8 Searching Arrays
Shpesh lind nevoja pr t krkuar objekte t veant n nj array, ku metoda m e
prdorshme sht sequantial search. Ajo prdor nj loop pr ekzaminimin e
elementve n nj array, njri pas tjetrit, duke filluar me t parin dhe duke
vazhduar deri sa ta gjej at.
Kodi pr sequantial search sht si m posht, ku kodi krkon pr nj element me vlern 100.
Kjo vler krkohet n nj array t quajtur mesatarja e cila nse e gjen vlern 100 n array shfaq
mesazhin: "Urime, mesatarja juaj eshte 100" dhe nse nuk e gjen vlern 100 shfaq mesazhin:
"Mesatarja juaj nuk eshte 100". Krijoni nj projekt me nj form e cila t ket nj buton me
emrin Searching dhe fusni kodin e mposhtm pr t.
Dim mesatarja() As Integer = {87, 70, 99, 100, 80}
'Kerkon pr 100 ne array
Dim gjen As Boolean = False
Dim intNumero As Integer = 0

Do While Not gjen And intNumero < mesatarja.Length
If mesatarja(intNumero) = 100 Then
gjen = True
'position = intNumero
End If
intNumero += 1
Loop

'100 eshte ne array?
If gjen Then
MessageBox.Show("Urime, mesatarja juaj eshte 100", "Resultatet")
Else
MessageBox.Show("Mesatarja juaj nuk eshte 100", "Resultatet")
End If

Page 163 of 239

6.1.9 Sorting array
Shpesh her vlerat n nj array jan t ruajtura duke filluar nga vlera m e vogl
tek vlera m e madhe. Vlera m e vogl sht ruajtur n index 0 dhe vlera m e
madhe sht ruajtur n indexin m t madh. Pr t realizuar kt prdoret metoda
Array.Sort.
Supozojm se kemi t deklaruar array:
Dim intNumra() As Integer = {11, 7, 35, 23, 26}
Fjalia n vazhdim do ti vendosi vlerat sipas radhs n rritje.
Array.Sort(intNumra)
Pasi kjo fjali t ekzekutohet vlerat e array do t jen si:
{7, 11, 23, 26, 35}
E njjta ide funksionon dhe pr string array. Krahasimi ktu bhet sipas Unicode t cilin
ne e kemi diskutuar m par, por sa pr ta kujtuar raditja e tyre sht: numrat,
shkronjat e mdha dhe s fundi vin shkronjat e vogla.
Pr shembull n deklarimin e mposhtm kemi:
Dim strEmra() As String = {"Vlora", "arritje", "345", "Altin"}
Array.Sort(strEmra)
Pasi fjalia t ekzekutohet kemi: 345, Altin, Vlora dhe arritje

6.2 ARRAYS SHUMDIMENSIONALE

Deri tani ne kemi par array me nj dimension, e cila sht e prdorshme kur
kemi t bjm vetm me nj tip t dhnash. Por shum shpesh do t jet i
nevojshm prdorimi i array me dy ose m shum dimensione. Arrays t cilat
prdorin m shum se nj dimension quhen array shumdimesionale.

6.2.1 Arrays me dy dimensione
Arrays dy dimensionale jan arrays t cilat kan vlera n dy dimensione t
prfytyruara si rreshta dhe kollona, ose e thn ndryshe si array t arrays. N Fig.
6. 2 tregohet nj array e quajtur Numri me dimesione 6 rreshta dhe 8 kollona. Pr
Page 164 of 239

t deklaruar nj array dy dimensionale n Visual Basic, veprohet n t njjtn
mnyr si me array me nj dimension, por n vend t nj vlere do t kemi dy
vlera: vlera e par i prket rreshtit dhe vlera e dyt i prket kollons.
Dim sngNumri(5, 7) As Single
0 1 2 3 4 5 6 7
0
1
Numri 2 55
3
5
Fig. 6. 2 Arrays dy dimensionale.
Pr t ruajtur nj vler n array nevoiten dy vlera: vlera pr rreshtin dhe vlera pr
kollonn. Pr shembull shikoni se si vlera 55 ruhet n array n rreshtin e 2 dhe n
kollonn e 3.
sngNumri(2, 3) = 55
Shum e prdorshme me array dy dimensionale sht nested loop. N vazhdim
nested loop prdoret pr ti dhn mundsin prdorusit t fusi t gjitha vlerat e
elementve t array.
Dim intRresht As Integer
Dim intKollon As Integer
Dim sngEmri(5, 7) As Single
Dim intNum As Integer

For intRresht = 0 To 5
For intKollon = 0 To 7
intNum = CInt(InputBox("Fusni noten"))
sngEmri(intRresht, intKollon) = intNum
Next intKollon
Next intRresht

Ndrsa kodi n vazhdim shfaq t gjith elementt e array sngEmri. N t njjtn
form q krijuam me butonin Searching, shtoni nj buton dhe emrojeni Array.
Shtoni gjithashtu n form nj list box dhe emrojeni lstOutput. Pr butonin Array
shkruani t dy kodet: kodin e msiprm dhe kodin e mposhtm.
For intRresht = 0 To 5
For intKollon = 0 To 7
Page 165 of 239

lstOutput.Items.Add(sngEmri(intRresht, intKollon).ToString)
Next intKollon
Next intRresht
N t njjtn mnyr si deklaruam array me nj dimension, t cilat i quajtm
initialization array , ne mund t deklarojm dhe array me dy dimensione. N kt
mnyr deklarimi array do t ket formn e nj matrice, ku secili element ndahet
me presje me elementin tjetr dhe secili rresht vendoset n kllapa dhe ndahet me
presje me rreshtin tjetr.
Dim intNumer(,) As Integer = {{10, 20, 30}, {40, 50, 60}, {70, 80, 90}}

6.2.2 Arrays tre dhe m shum dimensionale
Arrays me tre dimensione jan disi m t vshtira pr tu imagjinuar, ndrsa
mnyra e deklarimit sht e njjt me array me nj ose dy dimensione.
Dim intKarrike(9, 11, 14) As Integer
Pr t imagjinuar arrays me tre dimensione mendojeni veten n nj sall
kinemaje, ku jan 15 rreshta dhe 12 kollona n nj seksion. Gjithsej jan 10
seksione. N vazhdim jepet nj prmbledhje pr array me nj, dy dhe tre
dimensione.


Fig. 6. 3 Array nj dimensionale.

Fig. 6. 4 Array dy dimensionale.

Page 166 of 239


Fig. 6. 5 Array tre dimensionale.
Si tham dhe m lart nj array mund t ket nj, dy, tre apo shum dimensione.
Pr t prfytyruar array me dy dimensione sht kollaj, po ashtu dhe me tre
dimensione prfytyrojeni n formn e nj kubi, por me katr apo m shum
dimensione sht disi e vshtir t prfytyrohet. Shpesh ato jan t nevojshme n
programim si pr shembull nse duam t krijojm nj program pr t gjith
universitetet e Evrops, do t ishte nj ide e mir prdorimi i nj array me katr
dimensione. Dimensioni i par prezanton shtetin, dimensioni i dyt prezanton
universitetet n secilin shtet, dimensioni e tret prezanton fakultetet n secilin
universitet dhe dimensioni i katrt prezanton departamentet n secilin fakultet.
Programet t cilt prdorin array shumdimensionale krkojn nj kujdes t
veant nga programusi dhe shpesh ata nse kan mundsi plqejn ta shmangin
prdorimin e tyre.

6.3 RANDOM NUMBERS

Aplikimet n kompjuter si lojrat apo stimulimet shpesh krkojn random
numbers. Por Visual Basic siguron pr ne tools pr t gjeneruar random numbers.
Random class ka metoda q gjenerojn random numbers shum thjesht.
Private rand As New Random
Page 167 of 239

Metoda Random.Next kthen numrin n vazhdim t seris, pr t cilin nse nuk do
t prdorim parametr ndodhet ndrmjet 0 dhe 2.147.486.647.
Dim N As Integer = rand.Next()
Ju mund t gjeneroni nj numr duke prcaktuar limitin e siprm. N kodin n
vazhdim vlera e N sht ndrmjet 0 dhe 99.
N = rand.Next(100)
Kini parasysh se random numbers nuk sht e thn t fillojn n zero, pasi ju
mund t shtoni ose t hiqni vlera dhe kshtu prcaktoni t tjer kufi pr t. N
vazhdim N sht ndrmjet -50 dhe +49.
N = rand.Next(100) - 50
Klasa random ka nj metod Rando.NextDouble q kthen nj random floating
numr ndrmjet 0.0 dhe 1.0 (1.0 nuk prfshihet).
Dim D As Double = rand.NextDouble()
Nse ju doni nj tjetr kufi pr numrin, ju mund ta shumzoni me nj numr pr ta
sjell n kufit e dshiruar. Nse pr shembull duam t jemi n kufit nga 0.0 n
50
D = rand.NextDouble() * 50.0
Ose nse duam t jemi n kufit nga 10 n 60.
D = (rand.NextDouble() * 50.0) + 10

6.4 SUB PROCEDURES DHE FUNKSIONET ME ARRAYS

Ju mund t kaloni arrays si argumente t Sub procedurs ose t ktheni
arrays nga funksioni. Gjat programimit shpesh lind nevoja pr t shkruar Sub
procedures ose funksione q marrin t dhna nga arrays. Pr shembull ju mund t
shkruani nj proedur pr t ruajtur t dhnat n array, shfaq prmbajtjen e array
dhe mbleth ose llogarit mesataren e vlerave n array. T tilla proedura pranojn
nj array si argument.
Kush sht qllimi i prdorimit t sub procedures?
Page 168 of 239

Imagjinoni nj aplikim ku ju keni disa Text Boxes n form. Ne duam q kto
Text Boxes t marrin vetm vlerat q ne dshirojm, pr shembull ne nuk duam
q n Text Box pr emrin prdorusi t fusi nj vler numerike. Nse prdorusi do
t fusi nj vler numerike n nj Text Box t till, nj mesazh i cili t tregoj se
kjo sht gabim do t shfaqet. Pr kt programusi duhet t shkruaj nj proedur,
por n aplikimin ton ne kemi shum Text Boxes q na nevoitet i njjti kod. N
vend t shkruajm t njjtin kod, ne na nevoitet t shkruajm nj sub procedure ose
nj funksion dhe mund ti prdorim sa her na nevoiten, duke ju referuar vetm
emrit t tyre. Megjithse sub procedures dhe funksionet duken sikur kryejn t
njjtat funksione, n t vrtet ato ndryshojn nga njra tjetra. Funksionet
kthejn nj vler, ndrsa Sub procedures jo.
Krijoni nj aplikim dhe vendosni nj text box n t, i cili prdoret nga prdorusi
pr t shkruajtur emrin. Ju duhet t shkruani nj kod ku t siguroheni se prdorusi
futi t dhnat n t. Shtoni nj buton n form dhe shkruani kodin n vazhdim.
Dim TextBoxData As String

TextBoxData = Trim(TextBox1.Text)

If TextBoxData = "" Then
MsgBox("Ju lutemi, fusni emrin tuaj.")
End If
Run programin dhe testoje at. Mos fusni asnj vler n text box dhe kliko mbi
butonin Testo. Vini re se mesazhi ku ju tregon ju se duhet t fusni emrin n text
box shfaqet. Por nse do t na duhet t testojm dhe text boxes t tjer nuk sht
nj ide e mir t shkruajm pr do text box t njjtin kod. Kjo jo vetm do t
ishte nj humbje kohe, por imagjinoni se si kjo do ta komplikonte kodin ton n
programe shum t gjata.
Pr t realizuar kt na nevoitet nj sub procedure, e cila nuk duhet vendosur
brenda proedurs s butonit. Ajo duhet t jet jasht saj, por brenda klass.
Vendoseni kursorin jasht proedurs pr butonin, por para End Class dhe type:
Private Sub ErrorCheck()
Klikoni mbi enter dhe Visual Basic automatikisht do t shtoj End Sub. Cut kodin
e msiprm t butonit Testo dhe shtoje ndmjet rreshtit t par dhe t fundit. Ju
krijuat nj sub procedure.
Por si ta prdorim kt sub procedure?
Page 169 of 239

Tani q ne e krijuam kt sub procedure na duhet q ta prdorim at. Pr kt ne
duhet ti tregojm Visual Basic q ta ekzekutoj kt proedur. Kjo arrihet
lehtsisht duke ju referuar emrit t saj. N vend t kodit q kishim m par pr
butonin Test vendosini:
ErrorCheck()
Run programin dhe testoni butonin Test. Mesazhi i shfaqur n MessageBox duhet
t jet i njjt me at q shfaqej fillimisht pr butonin Test. Zakonisht programusit
plqejn t shtojn Call prpara fjalis s msiprme. Kjo nuk ka ndonj funksion
n kod, por vetm sht m e leht nga prdorusi pr tu kuptuar. Provojeni kt n
kodin e sapo krijuar dhe vini re se programi compile. Pr ta kuptuar m mir
funksionin e saj shtoni dhe nj, dy apo disa butona n form dhe prdoreni sub
procedure vetm duke ju referuar emrit. M posht po japim kodin e plot pr
kt sub procedure dhe pr butonit Test.
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

ErrorCheck()

End Sub

Private Sub ErrorCheck()

Dim TextBoxData As String

TextBoxData = Trim(TextBox1.Text)

If TextBoxData = "" Then
MsgBox("Ju lutemi, fusni emrin tuaj.")
End If
End Sub
End Class

6.4.1 Prdorimi i parametrave n Sub procedures
Shto dy text boxes n t njjtn form q prdorm dhe m lart. Vendos vlerat pr
text boxin e par Name: txtNumriPare dhe pr text boxin e dyt Name:
txtNumriDyte. Dy text boxes do ti japin mundsin prdorusit t fusi dy numra
dhe shyma e tyre do t shfaqet n MessageBox. Shto nj buton n form dhe
vendos vlern Text: Pergjigja. Type kodin e mposhtm jasht proedurs s
butonit Pergjigja, por brenda klass.
Page 170 of 239

Private Sub MblidhNumrat ()
Dim numriPare As Integer
Dim numriDyte As Integer
Dim pergjigja As Integer

numriPare = CInt(Val(txtNumriPare.Text))
numriDyte = CInt(Val(txtNumriDyte.Text))

pergjigja = numriPare + numriDyte

MsgBox("Totali eshte: " & pergjigja)
End Sub
Referohuni sipas emrit ksaj sub procedure, n t njjtn mnyr si n shembullin
e msiprm. Run programin dhe fusni nga nj numr pr secilin text box. Vereni
prgjigjen n MessageBox.
Call MblidhNumrat()
Cut dy rreshtat e par t deklarimit t variablave dhe kodin prkats pr to, dhe
shtoji n kodin pr butonin Pergjigja. Kodi juaj duhet t duket njsoj me:
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click

Dim numriPare As Integer
Dim numriDyte As Integer

numriPare = CInt(Val(txtNumriPare.Text))
numriDyte = CInt(Val(txtNumriDyte.Text))

Call MblidhNumrat()
End Sub

Private Sub MblidhNumrat()

Dim pergjigja As Integer

pergjigja = numriPare + numriDyte

MsgBox("Totali eshte: " & pergjigja)
End Sub
Vini re se variablat numriPare dhe numriDyte jan t nnvizuara, pasi Sub
MblidhNumrat() proedur nuk ka asnj informacion se far jan kto variabla.
Page 171 of 239

Vini re se ato deklarohen jasht ksaj proedure. Pr kt ne duhet ti tregojm
ksaj proedeure rreth tyre. Kjo realizohet duke prdorur parameters.
Ndrysho Private Sub MblidhNumrat() n:
Private Sub MblidhNumrat(numriPare As Integer, numriDyte As Integer)
Vini re se kur ju klikoni diku tjetr, automatikisht Visual Basic shton:
(ByVal numriPare As Integer, ByVal numriDyte As Integer)
Ne do ta shpjegojm n vazhdim termin ByVal, por tani le t prqndrohemi tek
parametrat. Qllimi jon sht t shtojm dy variablat numriPare dhe numriDyte,
pra kushdo qoft vlera e variablave, ajo do t drgohet n sub procedure.
Vini re se pas ksaj fjalia Call MblidhNumrat() sht e nnvizuar, ndryshoje at
n:
Call MblidhNumrat(numriPare, numriDyte)
Mbani mend se kur sub procedure merr vlerat nga variabla ato quhen parametrs,
ndrsa kur drgon vlerat e variablave ato quhen arguments. Gjithashtu nuk sht e
thn q variablat pr proedurn pr butonin t ken t njjtin emr me
parametrat pr sub MblidhNumrat. Variabla e par e proedurs s butonit do t
korespondoj me parametrin e par t sub MblidhNumrat. Nryshoni variablat pr
proedurn e butonit dhe vini re se programi compilet dhe funksionon n rregull.
Megjithat kodi pr t qen m i kollajshm pr tu lexuar, sht mir q variablat
dhe parametrat t korespondojn.

6.4.2 ByVal dhe ByRef
ByVal sht shkurtimi i fjals By Value, e cila nnkupton q ju po kaloni nj
kopjo t variabls n sub procedure. E thn m thjesht nse ndryshohet vlera e
parametrit (kopjos), vlera e variabls (origjinali) nuk ndryshon.
ByRef sht e kundrta e ByVal, nse vlera e parametrit (kopjos) ndryshon dhe
vlera e variabls (origjinali) ndryshon. ByRef sht shkurtimi i fjals By
Reference.
N aplikimin e msiprm shtoni nj buton dhe vendosni vlern pr Name:
ByVal_ByRef. Kliko dy her mbi butonin ByVal_ByRef dhe type kodin e
mposhtm.
Dim Numri As Integer
Page 172 of 239


Numri = 2008
Call Rritje(Numri)

MsgBox(Numri)
Jasht proedurs s butonit ByVal_ByRef, por brenda klass type kodin:
Private Sub Rritje(ByVal Numri As Integer)
Numri = Numri + 1
End Sub
Run programin dhe vereni output n MessageBox. Pse vlera e saj sht 2008? A
nuk duhet t jet vlera e variabls 2009, pasi ne po i shtojm 1?
Vini re se ne po prdorim ByVal, pra nse ndryshohet vlera e kopjos vlera e
origjinalit nuk ndryshohet. Ndryshoni at n ByRef dhe run programin. Vini re se
vlera n MessageBox do t shfaqet 2009, pasi nse ndryshohet vlera e kopjos
ndryshohet dhe vlera e origjinalit.
Nse keni ndonj problem me kodin e msiprm, n vazhdim po japim kodin e
plot pr butonin ByVal_ByRef dhe proedurn Private sub Rritje. Gjithashtu n
fig po japim dhe formn pr kt aplikim.
Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click

Dim Numri As Integer

Numri = 2008
Call Rritje(Numri)

MsgBox(Numri)
End Sub

Private Sub Rritje(ByVal Numri As Integer)
Numri = Numri + 1
End Sub




Page 173 of 239

Fig. 6. 6 Forma e aplikimit.


6.4.3 Krijimi i Funksionit
Nj funksion sht shum i ngjashm me sub procedures. Pasi funksioni krijohet
ai mund t prdoret sa her nevoitet. Si e kemi thn dhe m par ndryshimi
ndrmjet nj funksioni dhe nj sub procedure sht se funksioni kthen nj vler,
ndrsa sub procedure jo. Nse do i referohemi sub MblidhNumrat, ajo nuk ka
ndonj vler, ajo nuk sht e barabart me asgj, ajo tregon vetm emrin i sub
procedure.
Nj funksion sht ndryshe, ai ka nj vler, ai sht i barabart me dika. Krijimi i
nj funksioni sht pothuajse i njjt me nj sub procedure, vetm se t Sub
vendoset Function dhe shtohet As e ndjekur nga data type.
Private Function ErrorCheck () As Boolean
Fjali ( ose fjalite)
End Function
Shto nj buton dhe nj text box n t njnjtn form. Vendos vlern e butonit Text
n Funksion dhe vlern e text box Name n txtFunksioni. Kliko dy her mbi
butonin Funksion dhe shkruaj kodin e mposhtm, i cili duhet t jet jasht
proedurs s ktij butoni.
Page 174 of 239

Private Function CheckError() As Boolean

Dim textBox As String

textBox = Trim(txtFunksioni.Text)

If textBox = "" Then

MsgBox("Blank Text Box detected")

CheckError = True

End If

End Function
Ky kod sht i ngjashm me at t sub CheckError, prve se ka dhe fjalin:
CheckError = True
CheckError sht nj variabl, n kt rast sht nj variabl boolen. Pra nse nuk
ka ndonj vler n text box vlera e variabls CheckError vendoset True. Por si
dhe n rastin e sub procedure, ky kod nuk tregon gj nse ne nuk e thrrasim at.
Type kodin e mposhtm brenda proedurs s butonit Funksion. Kjo fjali thrret
funksionin CheckError() dhe vendos vlern e tij n variabln IsError.
Dim IsError As Boolean = CheckError()
Pas ksaj ne mund ta testojm kt variabl, nse nuk kemi ndonj vler n text
box kjo variabl do t jet True dhe nse kemi vler n text box variabla IsError
do t jet Fall.
If IsError = True Then

Exit Sub
Else

MsgBox("IsError = False")

End If
Run programin dhe testojeni at pr t dy rastet: kur n text box nuk ka ndonj
vler dhe kur n text box ka vler. Vreni mesazhin n MessageBox pr t dy
rastet. Pra si prfundim themi se funksioni kthen nj vler t ciln e vendosim n
nj variabl IsError dhe kt variabl e testojm. N vazhdim po japim kodin e
plot pr funksionin CheckError dhe pr butonin Funksion.
Page 175 of 239

Private Sub Button4_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click

Dim IsError As Boolean = CheckError()

If IsError = True Then

Exit Sub
Else

MsgBox("IsError = False")

End If

End Sub

Private Function CheckError() As Boolean

Dim textBox As String

textBox = Trim(txtFunksioni.Text)

If textBox = "" Then

MsgBox("Texti nuk ka asnje vlere.")

CheckError = True

End If

End Function

6.4.4 Prdorimi Parametrave me Funksionet
N t njjtn form vendosni nj buton dhe dy text boxes. Pr butonin vendosni
vlern pr Text n Pergjigja Funksion dhe pr text boxes vendos Name
prkatsisht n txtNum1 dhe txtNum2. Kliko dy her mbi butonin dhe type kodin
jasht proedurs.
Private Function MblithDyNumrat(ByVal numri1 As Integer, _
ByVal numri2 As Integer) As Integer

Dim pergjigja As Integer

pergjigja = numri1 + numri2
Page 176 of 239


'MblithDyNumrat = pergjigja 'Edhe kjo fjali punon
Return pergjigja

End Function
Emri i funksionit sht MblithDyNumrat, i cili kthen nj numr Integer.
Gjithashtu dhe dy parametrat jan integer. Kodi i funksionit mbledh far gjendet
n dy variablat dhe e kalon n variabln pergjigja. Pas ksaj far gjendet n
variabln pergjigja kalohet n emrin e funksionit. Kjo arrihet n dy mnyra:
MblithDyNumrat = pergjigja e cila sht e kollajshme pr tu kuptuar dhe n
Return pergjigja e cila sht m shum e prdorshme. Megjithat t dy mnyrat
funksionojn n rregull.
Brenda proedurs s butonit type kodin:
Dim num1 As Integer
Dim num2 As Integer
Dim result As Integer

num1 = CInt(txtNumri1.Text)
num2 = CInt(txtNumri2.Text)

result = MblithDyNumrat(num1, num2)

If result = 0 Then
MsgBox("Provojeni perseri ")
Else
MsgBox("Pergjigja eshte " & result)
End If
Fillimi i kodit sht i njojtur pr ju. Fjalia n t ciln ne i tregojm programit t
ekzekutoj funksionin sht:
result = MblithDyNumrat(num1, num2)
N kt fjali vlera q ndodhet n MblithDyNmrat vendoset n variabln result.
Me fjalit n vazhdim ju tashm jeni familjarizuar dhe nuk duhet t keni asnj
vshtirsi. Run programin dhe tesojeni duke futur dy numra n secilin text box
dhe mesazhin n Message Box. Testojni prsri programin duke type 0 n t dyja
text boxes dhe vreni ndryshimin me mesazhin e par.

Page 177 of 239

6.4.5 VB Modules
Subs dhe Functions punojn n rregull kur ato vendosen brenda rreshtave Public
Class Form1 dhe End Class. Jasht forms s klass ato nuk funksionojn. Por
kodi i tyre i vendosur brenda klass sht disi konfjuz pr lexusin, kshtu q nj
metod e mir ndarja e ktij kodi dhe vendosja e tij diku tjetr. Kjo mnyr quhet
Modules dhe jo vetm lehtson t kuptuarit e kodit, por mundson prdorimin e
tij dhe n projekte t tjera.
Krijo nj projekt dhe shto nj buton n t. Pr t shtuar nj Module kliko Project
nga menu bar dhe kliko Add Modules. N t njjtn mnyr si emrohen dhe
projektet n Visual Basic, vendosini nj emr Modulit, n rastin ton
verifikoModule1.vb. Klikoni mbi butonin Add dhe vini re se n ekran do t shfqet
nj form e zakonshme pr t shkruar kodin. Vini re se Moduli me t njjtin emr
sht shtuar n Solution Explorer. Plotsojeni kodin si tregohet n vazhdim.
Module verifikoModule1

Private Sub MblithNumrat(ByVal num1 As Integer)
Dim pergjigja As Integer

pergjigja = num1 + 25
MsgBox(pergjigja)

End Sub

End Module
Kliko mbi Form1.vb[Design] n krye t windows dhe kliko dy her mbi butonin,
t cilit mund tja ndrroni emrin n Sub_Module. Type kodin e mposhtm.
Call MblithNumrat(15)
Vini re se pasi klikoni diku tjetr MblithNumrat nnvizohet me nj vij blu, e cila
tregon se dika sht gabim me kodin ton. Nse vendosni mousin mbi t vini re
se nj mesazh shfaqet ku thot se nuk e njeh at. Vini re fjalin:
Private Sub MblithNumrat(ByVal num1 As Integer)
Deklarimi Private tregon se MblithNumrat mund t shihet vetm brenda Modules,
por jo jasht saj. Ndryshoni Private me Public dhe vini re se nnvizimi pr
MblithNumrat nuk ekziston m. Tani kodi pr modulin duhet t duket si:
Module verifikoModule1

Public Sub MblithNumrat(ByVal num1 As Integer)
Page 178 of 239

Dim pergjigja As Integer

pergjigja = num1 + 25
MsgBox(pergjigja)

End Sub

End Module
Run programin dhe kliko butonin. Ju duhet t merrni nj mesazh me vlern 40.
Stop Debugging.
Kliko n verifikoModule1.vb n krye t window dhe type kodin pr funksionin
me emrin VerifikoKodin. Type kodin pr funksionin duke e krahasuar me kodin e
mposhtm, pasi n vazhdim pr tju ndihmuar ju po japim t gjith kodin q
ndodhet n Module.
Module verifikoModule1

Public Sub MblithNumrat(ByVal num1 As Integer)
Dim pergjigja As Integer

pergjigja = num1 + 25
MsgBox(pergjigja)

End Sub

Public Function VerifikoKodin(ByVal kodi As String) As String

kodi = StrConv(kodi, VbStrConv.Uppercase)

Return kodi

End Function

End Module
E vetmja e re n kt kod sht fjalia n vazhdim. Vini re se kur e type kt fjali
pasi type VbStrConv. nj list shfaqet me disa vlera. Klikoni dy her mbi
Uppercase dhe ajo do ta sjell at si n fjalin e mposhtme. Vlerat e tjera t
lists kan funksione t ndryshme, ndrsa vlera q ne zgjodhm konverton n
shkronja kapitale.
kodi = StrConv(kodi, VbStrConv.Uppercase)
Page 179 of 239

Zgjith prsri formn dhe shto n t nj buton dhe vendos vlern pr Text n
Funksion. Shto dhe nj text box dhe vendos vlern pr Text n gjergji. Kliko dy
her mbi butonin dhe shkruaj kodin.
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click

Dim kerkoKodin As String
Dim konvertoKodin As String

kerkoKodin = Trim(TextBox1.Text)

konvertoKodin = VerifikoKodin(kerkoKodin)

TextBox1.Text = konvertoKodin

End Sub
N kodin e msiprm prdoren dy variabla: kerkoKodin dhe konvertoKodin.
Variabla kerkoKodin prdoret pr t mbajtur tekstin q ndodhet n text box, n
rastin ton mban emrin gjergji. Variabla tjetr konvertoKodin prdoret pr t
ruajtur vlern e cila merret nga funksioni VerifikoKodin. N rastin ton kjo
variabl sht Gjergji M pas kjo vler kalohet n text box. Run programin dhe
kliko butonin. Vini re se gjergji i cili ndodhet fillimisht n text box konvertohet
n GJERGJI.
Si dhe ju e keni vn re kur type kodin pr VbStrConv.Uppercase kur ju type
pikn nj list shfaqet. N kt list jan disa komanda, por m t prdorshmet
jan Uppercase, Lowercase dhe Propercase. Ne e shpjeguam m sipr Uppercase,
ndrsa Lowercase kryen t njjtin rol me Uppercase por konverton string n
shkronja t vogla. Propercase konverton n shkronja kapitale vetm shkronjat e
para t t gjitha fjalve. Kjo sht e rndsishme sidomos pr adresa. Supozojm
se kemi adresn:
20 bulevardi vlore skele
Objekti VbStrConv.Propercase do ta konvertoj at n:
20 Bulevardi Vlore Skele



Page 180 of 239

Ushtrime dhe Problema

6.1 Shkruaj fjalit pr deklarimin e arrays:
a) intNumer nj array me 50 integers
b) strQytetet nj array me 5 qytete
c) decPagesa nj array me 127.34, 50.54, 245.65 dhe 177.75
6.2 Gjeni ku qndron gabimi pr kodin e mposhtm?
Dim intNumra(4) As Integer = { 10, 20, 30}
6.3 Sa element jan n arrays:
a) Dim intNumer(6, 7) As Integers
b) Dim intNumer(76, 77) As Integers
c) Dim intNumer(176, 177) As Integers
6.4 Cila prej fjalive t mposhtme prcakton numrin e elementve n array?
a) Number Elements
b) Length
c) Elements
d) Size
6.5 Shkruaj nj kod i cili t gjej vlerat m t vogla n array dhe nj kod i cili t
gjej vlerat m t mdhaja:
Dim intNumra (5) As Integer = { 10, 20, 30, 40, 60, 70}
6.6 Shkruaj nj kod i cili t llogarisi mesataren e elementve t array
Dim intNumra (5) As Integer = { 10, 20, 30, 40, 60, 70}
6.7 Ku qndron ndryshimi ndrmjet ByVal dhe ByRef?
6.8 Ku qndron ndryshimi ndrmjet funksionit dhe sub procedure?
Page 181 of 239


KAPITULLI 7

MENUS

Visual Basic ju lejon ju t krijoni nj sistem menu pr do aplikim. Ne do
t msojm si t shtojm kto menu t cilat jan shum t prdorshme jo
vetm gjat programimit, por edhe pr vet Visual Basic, si pr shembull:
File, Edit, View, Project, Help etj. Pothuajse gjat gjith kohs q ju
prdorni kompiuterin ju pdorni kto menu dhe studimi i tyre n kt
kapitull do tju ndihmoj ju n t kuptuarin se si ato funksionojn.

7.1 OPEN MENU

Nj sistem menu sht nj grumbullim i komandave i organizuar n nj ose disa
drop down menus. Nj menu designer ju lejon ju t krijoni nj mnyr vizuale t
menu system pr do form n nj aplikim. Nj sistem menu sht i ndrtuar me
kontrollet n MainMenu. Realizimi i nj sistem menuje nuk sht shum i
vshtir, por m par le t sigurohemi se kotrolli MainMenu gjendet n Toolbox.
Shikoni me kujdes grupin e emrave nn Menus & Toolbars e cila gjendet n
Toolbox. Nse MainMenu nuk gjendet n Toolbox, kliko me butonin djathtas t
mousit mbi Menus & Toolbars. Zgjidh opsionin Choose Items dhe prisni pak pasi
nevoitet nj periudh kohe pr t sjell Choose Toolbox Items n ekran. Krkoni
MainMenu dhe klikoni n katrorin n krah t saj. Ju duhet t merrni t njjtn
form me Fig. 7. 1. Klikoni butonin OK. Vini re se tani MainMenu duhet t jet
nn Menus & Toolbars. Para se ju t msoni si t prdorni sistemin menu, ju
duhet t msoni rreth disa prej komandave n sistemin menu. Menu names sht
emri q secila drop down menu ka si: File, Edit, Help. . . .Nse prdorusi klikon
mbi emrin e ndonjrs prej tyre ajo menu aktivizohet. Menu command sht
komanda q do menu ka. Prdorusi mund ta zgjedh at duke klikuar mbi tm ose
duke futur shortcut key. Shortcut key sht nj kombinim butonsh nga keybord, i
cili shkakton q komanda t ekzekutohet. Pr shembull zakonisht ctrl+C prdoret
pr t kopjuar, apo ctrl+S prdoret pr t ruajtur materialin etj. Submenu jan
disa prej komandave n menu. Nse hapni ndonj prej menuve si File, Edit, Help
Page 182 of 239

ju do t vini re se n krah t disa emrave jan disa shigjeta me drejtim djathtas,
nse vendosni mousin mbi to do t shfaqen emrat pr submenu.
Fig. 7. 1 Shtimi i MainMenu n Toolbox.


7.1.1 Shtimi i menuve n VB
Krijo nj program t ri dhe klikoni dy her mbi MainMenu nn Toolbox. Kur ju e
bni kt do t shfaqet nj drejtkndsh n krye t forms dhe n fund t saj do t
shafaqet MainMenu1. Klikoni mbi drejtkndshin e shfaqur n krye t forms dhe
vini re se si dy drejtkndsha t tjer krijohen si n Fig. 7. 2. Type &File n
kt menu. Shenja& prpara fjals File prdoret pr t krijuar nj shortcut.
Kur programi sht duke run n vend ju t klikoni me mouse mbi File, ju mund t
shtypni n t njjtn koh alt + F dhe menuja do t shfaqet.
Type &New n drejtkndshin q ndodhet nn File dhe vini re se dy
drejtkndsha t tjer krijohen kur ju klikoni n t. Shtoni Open dhe Save n
menu n t njjtn mnyr si m lart. Forma do t duket si n Fig. 7. 3.



Page 183 of 239

Fig. 7. 2 Shtimi i nj tjetr Menuje n form.


Fig. 7. 3 N menu File jan shtuar New, Open dhe Save.

Page 184 of 239


N drejtkndshin i cili ndodhet posht Save kliko shenjn -, e cila do t
krijoj nj ndarje me pjesn e siprme. Tani type &Exit n drejtkndshin e
mposhtm. Ju duhet t merrni t njjtn form si n figurn e mposhtme.
Fig. 7. 4 New, Open, Save dhe Exit.


7.1.2 Shtimi i kodit pr menut
Ju mund t klikoni dy her mbi emrin e ndonjrs prej fjalve n menu, si pr
shembull n Exit, por mos e bni kt. Ne do t shohim nj mnyr tjetr si ta
bjm kt. Shtypni butonin F7 dhe shihni se kodi do t shfaqet pr ju. N drop
down list Form1 q shfaqet n krahun e majt vini re se tregohen shum emra.
Pr shembull MainItem6 is for Exit, por sht e pamundur t kuptohet se cili nga
kontrollet sht. Le t shkojm mbrapa duke shtypur shift + F7.
Klikoni mbi Exit dhe vendosni vlern e Name n Properties n mnuExit. Tani
klikoni prsri butonin F7 dhe klikoni mbi shigjetn pr te shfaqur drop down list.
Vini re se emri ka ndryshuar nga MainItem6 n mnuExit.
Klikoni mbi t dhe pastaj klikoni mbi shigjetn q ndodhet n krahun e djatht pr
t shfaqur nj drop down list. Objektet e shfaqura n kt list quhen Event.
Klikoni mbi Click dhe vini re se duhet t shfaqet kodi si m posht. Pr ju rreshti
Page 185 of 239

i kodit t par do t shfaqet n nj rresht i gjith, por ne po e ndajm at n dy
vetm pr arsy se duam ta shfaqim brenda faqes.
Public Class Form1

Private Sub mnuExit_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuExit.Click

End Sub
End Class
Ju do t shtoni vetm nj rresht kod brenda saj, t cilin ju e keni prdorur shum her dhe
nuk keni asnj problem pr ta kuptuar. Pasi t shtoni kodin e mposhtm run programin
dhe klikoni mbi File dhe pastaj mbi Exit.
Me.Close()
7.1.3 Shtimi i nj sub menuje
Shum shpesh menut n windows n krah t djatht kan nj shigjet, n t ciln
nse mousi vendoset sipr saj t tjera menu hapen. Kto lloj menush quhen sub
menu. Pr t krijuar nj sub menu veprohet pak a shum n t njjtn mnyr si
dhe me menut. Kliko n New n t njjtin aplikim dhe n drejtkndshin e
shfaqur djathtas ku shkruhet Type Here type New Project. N drejtkndshin
posht saj type New File dhe vini re se ajo far ju shihni duhet t jet si n Fig.
7. 5. Run programin dhe testoni sub menus. Natyrisht prve Exit, asnj prej
komandave t tjer nuk punon pasi ne nuk kemi shkruajtur ndonj kod pr to. Ne
tashm kemi plotsuar nj menu, pak a shum si ato t cilat ne shohim gjat gjith
kohs n windows.
Fig. 7. 5 Forma pr sub menu.

Page 186 of 239

Tashm ju jeni t aft t shtoni menu dhe sub menus n form, kshtu q ne po i
tregojm se si menut e tjera duhet t duken.
Shto main menut:
1) &Edit
2) &View
N Edit Menu shto:
a) &Undo
b) Cu&t
c) &Copy
d) &Paste
N View Menu shto:
a) View Textboxes
b) View Labels
c) View Images
Ndryshoni Name property n dika t prafrtt me funksionin e do menuje, n
t njjtn mnyr si bt me Exit. Mos harroni parashtesn mnu, si pr shembull
mnuNew dhe kshtu me radh.

7.1. 4 Kodi pr Open File
Deri tani ne nuk kemi shkruar kod pr ndonj prej menuve, pra ato nuk kryjn
asnj funksion. Nse do e shprehnim me fjal t tjera do t thoshim se Edit>Copy
kopjon tekstin ose Edit>Paste kalon nj tekst n pozicionin q ne zgjedhim. Si ju
e prdorni pothujse gjith kohn q ju prdorni kompiuterin, nse klikoni mbi
menun File dhe mbi Open nj dialog box do t shfaqet, prej nga ju mund t
klikoni n filen e dshiruar dhe t klikoni Open. File e klikuar do t hapet. Le ta
shohim kt se si realizohet n aplikimin pr menut tona.
Shtoni dy text boxes n form dhe vendosni Multiline property n True, e cila
gjendet nn Properties. Type pr TextBox1 Flamurtari eshte skuadra e futbollit e
qytetit te Vlores, e cila do t shfaqet n disa rreshta. Shikoni me kujdes n
Toolbox dhe gjeni OpenFileDialog1, kliko dy her mbi t. Vini re se ajo
vendoset ngjitur me MainMenu1, ndrsa asnj kontroll nuk shfaqet n form.
Kliko mbi OpenFileDialog1 dhe ndrysho Name n openFD.
Page 187 of 239

Le t shkruajm kodin pr file Open. Kliko F7 dhe n listn drop down kliko
mnuOpen. N krahun tjetr t lists drop down kliko mbi Click. Kodi i shfaqur
duhet t jet i njjt me kodin e mposhtm.
Private Sub mnuOpen_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuOpen.Click

End Sub
Type midis dy rreshtave kodin dhe run programin. Nj tjetr mnyr pr t run
programin sht duke klikuar F5. Kliko File dhe pastaj Open, nj dialog box
shfaqet. Vini re se ne mund t klikojm mbi do file q gjendet n kompiuterin
ton, por akoma nuk mund ti hapim ato.
openFD.ShowDialog()
Por ne mund dhe t caktojm nprmjet kodit direktorin fillestare. N vazhdim
jepet i gjith kodi, por vini re se vetm nj fjali sht shtuar. Run prsri
programin dhe vini re se direktoria fillestare do t jet: C:\. Ju mund ta
ndryshoni kt n nj tjetr direktori.
Private Sub mnuOpen_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuOpen.Click

openFD.InitialDirectory = "C:\"
openFD.ShowDialog()
End Sub
Vini re se kur dialog box shfaqet n krye t windows tregohet emri Open. Pra
nse ne nuk i japim ndonj vler Visual Basic atumatikisht vendos Open. Por nse
ne duam t vendosim nj vler si pr shembull: Open Text File, kjo arrihet si m
posht.
Private Sub mnuOpen_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuOpen.Click

openFD.InitialDirectory = "C:\"
openFD.Title = "Open Text File"
openFD.ShowDialog()
End Sub

Page 188 of 239

7.1.5 Open file
N shumicn e dialog boxes tregohet nj list file q mund t hapet. Pr shembull
pr t hapur text file nj prapashtes .txt nevoitet. Plotsoni kodin si m posht
dhe run programin.
openFD.InitialDirectory = "C:\"
openFD.Title = "Open Text File"
openFD.Filter = "Text Files|*.txt"
openFD.ShowDialog()
Pr t kujtuar se me far file kemi t bjm n fjalin q sapo shtuam mund t
shtojm si m posht. Run programin dhe far ju do t shihni duhet t jet si n
Fig. 7. 6.
openFD.Filter = "Text Files(*.txt)|*.txt"

Fig. 7. 6 Forma pr text file.

Por ne mund t shtojm dhe nj tjetr filtr. Pr t shfaqur file text file dhe
Microsoft Word Document, fjalin q shtuam m sipr mund ta zvendsojm me
fjalin:
openFD.Filter = "Text Files|*.txt|Word Files|*.doc"
Page 189 of 239

Ose pr t shtuar opsionin (.doc) q t shfaqet si dhe n rastin e nj text file,
fjalia e msiprme do t jet:
openFD.Filter = "Text Files|*.txt|Word Files(*.doc)|*.doc"
Open dialog box ka nj property q kthen emrin e file q zgjidhet, e cila quhet
FileName.
openFD.FileName
Kjo sht nj property q kthen nj vler string, pra ju duhet ta vendosni kt
vler n nj variabl.
Dim strFileName As String
strFileName = openFD.FileName
Vlera n strFileName do t mbaj emrin e file s zgjedhur. Pra ndroshojeni kodin
n kodin e mposhtm.
Dim strFileName As String

openFD.InitialDirectory = "C:\"
openFD.Title = "Open Text File"
openFD.Filter = "Text Files(*.txt)|*.txt"
openFD.ShowDialog()
strFileName = openFD.FileName

MsgBox(strFileName)
Run programin, kliko Open, zgjidh nj file me prapashtesn .txt dhe kliko
Open. Vini re se n MessageBox do t shfaqet emri i file. Sipas file q un
zgjodha ju duhet t shihni dika t ngjashme me Fig. 7. 7.







Page 190 of 239

Fig. 7. 7 Shfaqja e emrit t file.


7.2 SAVE MENU

Save Dialog Box funksionon n t njjtn mnyr si dhe Open Dialog Box,
megjithat ju nuk mund t prdorni t njjtin kontrol. Nse krkoni me kujdes n
Toolbox do t gjeni nj kontroll t quajtur SaveFileDialog. Kliko dy her mbi t
dhe vini re se ngjitur me openFD krijohet saveFD, por anj kontroll nuk shtohet
n form. N t njjtn mnyr si ndryshuat Name property pr open file
ndryshoni save property n saveFD. Kliko mbi butonin F7 n keybord pr t
sjell n ekran kodin e programit, ose prdor mnyra t tjera q ju tashm i njihni.
Kliko n shigjetn n krye t windows dhe kliko mbi mnuSave. Kliko n krahun
tjetr dhe kliko mbi objektin Click. Ju duhet t shihni n ekran nj kod t
ngjashm me kodin e mposhtm, me t vetmin ndyshim se ne po e ndajm n dy
pjes rreshtin e par pr arsye se sht shum i gjat pr kt faqe.
Private Sub mnuSave_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuSave.Click


End Sub
Tani veproni n t njjtn mnyr si me kodin pr Open file dhe shtoni:
Page 191 of 239

saveFD.ShowDialog()
Initial Directory
Title
Filter
File Name
Ju duhet ta shkruani kodin e msiprm pa ndonj ndihm, pasi sht shum i
ngjashm me kodin pr Open file. Megjithat n fig po japim se far ju duhet t
shihni kur programi t run dhe n vazhdim kodin e plot pr proedurn pr Save
file.
Fig. 7. 8 Run mode pr Save file.


Private Sub mnuSave_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuSave.Click

Dim strFileName As String

saveFD.InitialDirectory = "C:\"
saveFD.Title = "Save Text File"
saveFD.Filter = "Text Files(*.txt)|*.txt"
Page 192 of 239

'saveFD.Filter = "Text Files|*.txt|Word Files|*.doc"
saveFD.ShowDialog()
strFileName = saveFD.FileName

MsgBox(strFileName)

End Sub
Kini parasysh se kur programi sht n run mode, ashtu si Open file dhe Save file
kur klikohet nuk ruan gj, pasi ju akoma nuk keni shtuar ndonj kod pr ta br
kt.
7.3 COPY, PASTE, CUT, UNDO MENU

N t njjtn mnyr si thrritt mnuOpen ose mnuSave, thrrisni mnuCopy dhe
mnuPaste. Type kodin pr mnuCopy dhe mnuPaste si m posht:
Private Sub mnuCopy_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuCopy.Click

TextBox1.Copy()
End Sub

Private Sub mnuPaste_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuPaste.Click

TextBox2.Paste()
End Sub
Vini re se n proedurn sub mnuCopy ne kemi shkruar vetm kodin
TextBox1.Copy(), i cili kopjon tekstin q ndodhet n text box 1 dhe e ruan at n
clipboard. N proedurn sub mnuPaste kodi TextBox2.Paste() ne po themi far
sht n clipboard kaloje n text box 2. Run programin, nse nuk sht i zgjedhur
teksti n text box 1, zgjidhe at, kliko n menun Edit dhe kliko Copy. Kliko n
text box 2 dhe pastaj kliko n Paste. Cfar ju duhet t shihni sht si n Fig. 7. 9.
far ju realizuat me kodin e msiprm sht se fjalin q ndodhej n text box 1
Flamurtari eshte skuadra e futbollit e qytetit te Vlores e vendost n text box 2.
Vini re se fjalia ndodhet gjithashtu dhe n text box 1.
Shtoni kodin pr Cut menu dhe testojeni at. Ju duhet t shihni n ekran si n Fig.
7. 10, pra text box 1 sht i boshatisur dhe text box 2 ka fjalin: Flamurtari eshte
skuadra e futbollit e qytetit t Vlors
TextBox1.Cut()
Page 193 of 239


Fig. 7. 9 Copy dhe Paste Menu.


Fig. 7. 10 Cut Menu.

Page 194 of 239

Pr Undo Menu shkruaj kodin e mposhtm dhe testoje at duke zgjedhur tekstin
n text box 1 dhe duke klikuar Cut. Teksti do t zhduket nga text box 1. Tani
kliko Undo dhe vini re se teksti kthehet prsri n text box 1.
TextBox1.Undo()

7.4 VIEW TEXTBOXES MENU

Shto kodin e mposhtm pr View Textboxes.
Private Sub mnuTextboxes_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuTextboxes.Click

TextBox1.Visible = False
TextBox2.Visible = False
End Sub
Run programin dhe kliko View dhe pastaj View Textbox. Vini re se t dy text
boxet do t zhduken nga forma. Pra pr ta fshehur nj kontroll ju thjesht e
vendosni at n False. Nse ju e doni at prsri n form ju duhet ta vendosni at
n True. Por a mund t harrihet kjo duke e klikuar at? sht pak a shum si nj
els dritash i cili kthehet On dhe Off. Pra kur View Textbox t klikohet
fillimisht kontrolli do t fshihet dhe kur ajo t klikohet prsri kontrolli t kthehet
prsri n form.
Shikoni kodin n vazhdim se si View Textbox kthehet On dhe Off.
mnuTextboxes.Checked = Not mnuTextboxes.Checked
N krahun e majt kontrolli vendoset n property Checked, ndrsa krahu i djatht
e vendos at n t kundrtn e asaj q ndodhet n krahun e majt. Run programin
dhe testo se si shenja prpara View Textbox shfaqet dhe zhduket sa her ju
klikoni mbi t. Vini re se shenja prpara View Textbox nuk korespondon me
fshehjen dhe shfaqen e text bexes. Ju duhet ta kuptoni se pr t arritur at nevoitet
nj fjali If. Kjo realizohet sipas kodit t mposhtm.
Private Sub mnuTextboxes_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuTextboxes.Click

If mnuTextboxes.Checked = True Then
TextBox1.Visible = True
TextBox2.Visible = True
Else
Page 195 of 239

TextBox1.Visible = False
TextBox2.Visible = False
End If
mnuTextboxes.Checked = Not mnuTextboxes.Checked
End Sub
Fjalia If kontrollon Checked property: nse ajo sht True i kthen text boxes n
form dhe nse sht False text boxes do t jen t fshehura. Nse e keni vn re
kur programi run t dy text boxes shfaqen. Nse ju doni q fillimisht ato t jen t
fshehura klikoni mbi text box 1 n design form dhe vendosni Visibility q
ndodhet n Properties, n False. Kryeni t njjtat veprime dhe pr text box 2 dhe
run programin.

7.5 VIEW IMAGES MENU

Nuk sht e vshtir t insert nj fotografi n formn ton, ne e kemi br kt
dhe m par. Megjithat le ti rifreskojm veprimet, pasi m posht ne do t insert
nj fotografi dhe me kod.
Kliko dy her n PictureBox dhe nj drejtkndsh do t krijohet n formn tuaj.
N Properties kliko n Image dhe n katrorin e vogl me tre pika. Kliko n Local
resource dhe n Import. Zgjidhni nj fotografi q ju e keni t ruajtur n
kompiuterin tuaj, si pr shemubull un zgjodha stemn e Flamurtarit. Ju duhet t
merrni dika t ngjashme me Fig. 7. 11. Kliko OK dhe fotografi do t shfaqet
brenda drejtkndshit t forms. Nse nuk do t jet n prmasa t njjta me
drejtkndshin kliko SizeModule q ndodhet nn Properties dhe kliko n
AutoSize.








Page 196 of 239

Fig. 7. 11 Import fotografi.


Tani le t insert nj fotografi me View Menu. Sillni n form kodin pr
proedurn sub mnuImage_Click dhe type kodin si m posht.
Private Sub mnuImage_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuImage.Click

openFD.InitialDirectory = "C:\"
openFD.Title = "Open an Image"
openFD.Filter = "jpegs|*.jpg|gifs|*.gif|Bitmaps|*.bmp"
Dim DidWork As Integer = openFD.ShowDialog()
End Sub
Run programin, kliko n View Image dhe ju duhet t shihni n ekran dika t
ngjashme me Fig. 7. 12.




Page 197 of 239

Fig. 7. 12 View Images menu.


Por akom ju nuk mund t insert nj fotografi n Picture Box, pr t realizuar kt
nevoitet kodi i mposhtm, ku si dhe ju e kuptoni duhet t prdoret fjalia If.
If DidWork <> Windows.Forms.DialogResult.Cancel Then
strFileName = openFD.FileName
PictureBox1.Image = Image.FromFile(strFileName)
openFD.Reset()
End If
Vini re se ajo far ne po themi n rreshtin e dyt sht: hap nj file dhe vendose
n nj variabl strFileName. Duke qen se na nevoitet kjo variabl duhet dhe
deklaruar si:
Dim strFileName As String
N fjalin tjetr, pra n rreshtin e tret po loadim file q zgjodhm n PictureBox.
Vini re rreshtin para End If. Pr ta kuptuar m mir kodin e ktij rreshti kthejeni si
koment dhe run programin. Kur ju zgjidhni nj fotografi pr ta load, do gj
funksionon n rregull, por kur ju doni t load nj tjetr fotografi n PictureBox
ngelet fotografia e par. Kodi openFD.Reset() do t rregulloj kt problem, pra
do t risjelli direktorin e fillimit n open file dialog box.
Page 198 of 239

M posht po japim kodin e plot pr mnuImage.
Private Sub mnuImage_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuImage.Click

Dim strFileName As String

openFD.InitialDirectory = "C:\"
openFD.Title = "Open an Image"
openFD.Filter = "jpegs|*.jpg|gifs|*.gif|Bitmaps|*.bmp"
Dim DidWork As Integer = openFD.ShowDialog()

If DidWork <> Windows.Forms.DialogResult.Cancel Then
strFileName = openFD.FileName
PictureBox1.Image = Image.FromFile(strFileName)
openFD.Reset()
End If

End Sub

Aplikimi Menu
Tani q ju msuat si t krijoni menut dhe si t shkruani kodin pr to, pr t fituar
ekzperien le t krijojm nj projekt me emrin Aplikimi Menu. Ne do tu
orientojm n do etap t projektit dhe gjithashtu do t japim dhe kodin pr
seciln prej kontrolleve.
Etapa 1: Krijoni tre files: File, Color dhe Help. Ndrysho Text property pr
formn n Aplikimi Menu. Krijoni menun Exit e cila do t shfaqet posht menus
File. Vendosni Name property prkatsisht n mnuFile dhe mnuFileExit. Krijoni
nn menun Ngjyrat: Kuqe, Jeshile, Blu dhe Zeze. Vendosni Name property pr
menun Ngjyrat n mnuColor ose n nj emr tjetr q ju dshironi si pr
shembull mnuNgjyrat. Vendosni prkatsist Name property n: mnuColorRed,
mnuColorGreen, mnuColorBlue dhe mnuColorBlack. Pr menun Help vendos
propety n mnuHelp dhe nn t krijo menun About. Vendos property pr t n
mnuHelpAbout. Shtoni n form nj label me Name propery lblMesazhi dhe
vendos Text property n Welcom to Vlora.
Etapa 2: Type kodin e mposhtm pr secilin kontroll dhe testoni programin.
Public Class Form1

Private Sub mnuFileExit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuFileExit.Click
Page 199 of 239


'Mbyll windows
Me.Close()
End Sub

Private Sub mnuColorRed_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuColorRed.Click

'Vendos njyren e kuqe
lblMessage.ForeColor = Color.Red
End Sub

Private Sub mnuColorGreen_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuColorGreen.Click

'Vendos njyren e jeshile
lblMessage.ForeColor = Color.Green
End Sub

Private Sub mnuColorBlue_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuColorBlue.Click

'Vendos njyren e blu
lblMessage.ForeColor = Color.Blue
End Sub

Private Sub mnuColorBlck_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuColorBlck.Click

'Vendos njyren e zeze
lblMessage.ForeColor = Color.Black
End Sub

Private Sub mnuColorVisible_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuColorVisible.Click

'Vendos label visible ose jo visible
If mnuColorVisible.Checked = True Then
lblMessage.Visible = False
mnuColorVisible.Checked = False
Else
lblMessage.Visible = True
mnuColorVisible.Checked = True
End If
End Sub

Page 200 of 239

Private Sub mnuHelpAbout_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuHelpAbout.Click

'Tregon nje window
MessageBox.Show("Menu System Demo" & vbCrLf & _
"Menuja help me Visual Basic 2005")
End Sub
End Class

7.6 MANIPULIMI I STRINGS

Krijo nj projekt t ri dhe shto n form dy text boxes dhe nj buton. N text box
1 vendos Text property flamurtari. Kliko dy her mbi text box 1 dhe type kodin:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles TextBox1.TextChanged

Dim strUpper As String

strUpper = TextBox1.Text
TextBox2.Text = strUpper.ToUpper()
End Sub
N kt kod n rreshtin e dyt ne po theme se far ndodhet n TextBox1
vendoset n nj variabl t deklaruar si string. M pas nprmjet metods t
ofruar nga Visual Basic ToUpper text konvertohet n shkronja kapitale. S
fundmi far ndodhet n variabln strUpper vendoset n TextBox2. Run
programin dhe ajo far ju duhet t shihni n ekran duhet t jet si Fig. 7. 13.








Page 201 of 239

Fig. 7. 13 Metoda ToUpper.


Shtoni nj buton dhe nj text box, pr t ciln vendosni Name property n
txtEmri. Kliko dy her mbi butonin dhe shto kodin. Run programin dhe kliko mbi
butonin prkats pa shkruajtur ndonj karakter n text box.
Dim emri As String

emri = txtEmri.Text

If emri = "" Then

MsgBox("Ju lutem fusni emrin ne text box")
Exit Sub

End If
Nse prdorusi n vend t type ndonj karakter type nj hapsir boshe fjalit e
msiprme nuk do t gjejn ndonj gabim, pasi n variabl do t kalohet nj vler.
Si mund ta rregullojm kt?
Kjo arrihet nprmjet metods Trim e cila ofrohet nga Visual Basic. Funksioni i
ksaj metode nuk sht gj tjetr vese t lvizi t gjitha hapsirat nga nj string.
Pr shembull supozojm se kemi nj string Vlora (vini re hapsirn n fillim t
Page 202 of 239

string), metoda Trim do t na japi nj string Vlora. Prdorimi i saj n Visual
Basic ka disa mnyra, por ne po japim at m t thjeshtn pr tu mbajtur mend.
Supozojm se n nj program kemi nj text box me Name property txtEmri dhe
nj variabl emri.
emri = Trim(txtEmri.Text)
N kt moment nj tjetr pyetje q mund t lindi sht: Po si mund t testojm
nj string pr vlerat numerike? Pr kt prdoret Chars property. Por m par le
t rifreskojm Char pasi ato kan ndryshim me njra tjetrn.
Char sht nj tip variable e cila mund t mbaj do her vetm nj karakter. Vini
re mnyrn e deklarimit t mposhtme.
Dim njeKarakter As Char
Variabla njeKarakter mund t ruaj nj karakter si:
njeKarakter = a
Ose mund ta shkruajm n rresht si:
Dim njeKarakter As Char = a
Ne mund t shkruajm dhe nj fjal n string por n variabl prsri do t ruhet
vetm shkronja e par. Si n shembullin e mposhtm do t ruhet vetm shkronja
e par q sht a.
Dim njeKarakter As Char = altin
Chars sht nj metod pr tipin e variablave string. Kjo sht dhe diferenca me
Char pasi ajo sht nj variabl. Chars funksionon si:
emri = emri.Chars(i)
Klikoni dy her mbi butonin dhe type kodin e mposhtm. Ju nuk duhet t keni
probleme me t kuptuarin e kodit pasi ai sht i njojtur pr ju. Run programin dhe
testojeni at.
Dim njeKarakter As Char
Dim emri As String
Dim i As Integer
Dim gjatesiaTekstit As Integer

emri = Trim(txtChars.Text)
gjatesiaTekstit = emri.Length
MsgBox("Numri i karaktereve eshte: " & gjatesiaTekstit)
Page 203 of 239


For i = 0 To gjatesiaTekstit - 1
njeKarakter = emri.Chars(i)
MsgBox(njeKarakter)
Next i

7.7 PROJEKTI AXHENSI TURISTIKE

N kt projekt ju do t ndrtoni nj aplikim pr nj axhensi turistike, e cila ofron
tre oferta pr pushime: Rom, Rimini dhe Venecia.
Rom: Axhensia turistike ofron pushime n Rom me cmimin baz 1000 dollar
personi pr 10 dit. Duke qen se Roma sht nj qytet shum i lasht dhe me
histori mjaft t vjetr, axhensia ofron pr tursitt q dshirojn persona q do ti
udhzojn dhe do ti shoqrojn gjat udhtimit t tyre n qytet. Cmimi pr kt
lloj shrbimi sht 300 pr person pr person.
Rimini: Nj tjetr ofert e axhensis sht pushime n Rimini pr tre dit me
vetm 400 dollar pr person. Pr turistt q dshirojn ka ofert speciale me 80
dollar n dit, ku punonjs t hotelit do ti shoqrojn turistt gjat aktiviteteve
sportive duke u mbajtur paisjet e tyre dhe bagazhet. Nj tjetr ofert sht edhe
akomodimi i tyre n dhoma lluksoze t hotelit me 150 dollar n nat shtes.
Venecia: Oferta e fundit e axhensis turistike sht pes dit pushimi n Venecia.
Cmimi baz do t jet 700 dollar personi dhe nj ofert me 50 dollar personi,
pr ata persona t cilt dshirojn t marrin me qira disa nga paisjet e ofruara nga
hoteli si: motorra uji, varka apo paisje t tjera.
Axhensia ofron nj ulje prej 10 prqind pr grupet mbi 5 persona, por axhensia
krkon nj depozit 50 prqind nse ju do t dshironi t rezervoni nj prej
paketave.
Etapa 1: Krijoni nj projekt me emrin Axhensi Udhetaresh. Ju deri tani keni
ndrtuar aplikime me nj form, por n kt projekt do t keni t bni me katr
forma. Nse ju nuk keni vshtirsi me aplikimet me nj form, nuk do t keni
asnj problem dhe me aplikimet me shum forma, pasi secila form funksionon
njsoj si nj form e vetme. Pr t krijuar nj form sht fare kollaj duke klikuar
mbi Projekct n properties windosws dhe duke klikuar mbi Add Windows
Form. Kur prdorni shum forma n nj projekt, ju duhet t vendosni Option
Strict On n Project Properties Windows. Mundet ajo t jet e vendosur On,
megjithat sigurohuni pr kt duke klikuar djathtas kur mouse t jet i
Page 204 of 239

vendosur mbi emrin e projektit Axhensi Udhetaresh, q ndodhet nn Solution
Explorer. Zgjidh Properties nga lista e shfaqur, kliko Compile n krahun e majt
dhe n kutin pr Option Strict zgjidh On. Ju duhet t shihni n ekran Fig. 7. 14.
Mbylleni Project Properties window.

Fig. 7. 14 Kthimi On n Option strict.


Etapa 2: Vendos Name property n frmMain dhe vendos kontrollet si n Fig. 7.
15. Name properties pr label q do t prdoren n kod jan: lblPaketa,
lblPjesemarresit, lblCmimiParaUljes, lblUlja, lblTotal dhe lblDepozit. Shtoni nj
MainMenu dhe krijoni tre menu file: File, Paketa dhe Help. Pr File shtoni Reset
dhe Exit, t cilat do t shrbejn pr t pastruar formn pr Axhensin Turistike.
Pr Paketa shtoni Rome, Rimini dhe Venecia, tre paketa q ofrohen nga axhensia
pr udhtimet turistike n Itali. S fundmi pr Help shtoni About, q do t shfaqi
nj mesazh. Referohuni dhe Fig. 7. 15 pr t par se si menut do t duken n
form.



Page 205 of 239

Fig. 7. 15 frmMain Axhensi Turistike.


N kodin pr formn frmMain, proedura krijon nj objekt frmRome dhe e shfaq
at.
Dim romeForm As New frmRome

'Tregon paketen e formes per ne Rome
romeForm.ShowDialog()
Kodi vazhdon duke treguar mimin pr kt paket. E njjta ide prsritet pr t
tre paketat. N vazhdim po japim kodin e plot pr formn frmMain.
Public Class frmMain

Private Sub mnuFileReset_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuFileReset.Click

'Reset formen
lblPaketa.Text = String.Empty
lblPjesemarresit.Text = String.Empty
lblCmimParaUljes.Text = String.Empty
lblUlja.Text = String.Empty
lblTotal.Text = String.Empty
lblDepozit.Text = String.Empty

Page 206 of 239

'Pastron variablat global
g_strPaketa = String.Empty
g_intPjesemarresit = CStr(0)
g_decTotal = 0
End Sub

Private Sub mnuPaketaRome_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuPaketaRome.Click

'Llogarit dhe shfaq koston per paketen ne Rome
Dim romeForm As New frmRome

'Tregon paketen e formes per ne Rome
romeForm.ShowDialog()
'Shfaq koston dhe depoziten e kerkuar
TregonCmimin()
End Sub

Private Sub mnuPaketaRimini_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuPaketaRimini.Click

'Llogarit dhe shfaq koston per paketen ne Rimini
Dim riminiForm As New frmRimini

'Tregon paketen e formes per ne Rome
riminiForm.ShowDialog()
'Shfaq koston dhe depoziten e kerkuar
TregonCmimin()
End Sub

Private Sub mnuPaketaVenecia_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuPaketaVenecia.Click

'Llogarit dhe shfaq koston per paketen ne Rome
Dim veneciaForm As New frmVenecia

'Tregon paketen e formes per ne Rome
veneciaForm.ShowDialog()
'Shfaq koston dhe depoziten e kerkuar
TregonCmimin()
End Sub

Private Sub mnuHelpAbout_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuHelpAbout.Click

'Shfaq About box
Page 207 of 239

MessageBox.Show("Cmimi per " & "Axhensin Turistike", "About")
End Sub

Private Sub TregonCmimin()

'Llogarit dhe shfaq uljen (nese ka), pagesen totale,
'dhe depoziten e kerkuar
Dim decUlja As Decimal 'Ulja
Dim decTotal As Decimal 'Cmimi Total
Dim decDeposit As Decimal 'Deposita e kerkuar

'Llogarit uljen nese ka ulje
decUlja = CalcDiscout(CInt(g_intPjesemarresit), g_decTotal)
'Llogarit cmimin total
decTotal = g_decTotal - decUlja
'Llogarit depoziten e kerkuar
decDeposit = CalcDeposit(decTotal)

'Shfaq te dhenat
lblPaketa.Text = g_strPaketa

lblPjesemarresit.Text = g_intPjesemarresit.ToString
lblCmimParaUljes.Text = FormatCurrency(g_decTotal)
lblUlja.Text = FormatCurrency(decUlja)
lblTotal.Text = FormatCurrency(decTotal)
lblDepozit.Text = FormatCurrency(decDeposit)
End Sub

Private Sub mnuFileExit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuFileExit.Click

'Mbyll windows
Me.Close()
End Sub
End Class
Etapa 3: Shtoni nj form n projektin tuaj dhe vendosni Name property
frmRome. Vendosni kontrollet si n Fig. 7. 16, ku Name property pr text boxes
jan: txtUdhezime dhe txtJoUdhezime dhe pr label jan: lblPjesemarres,
lblCmimBaze, lblUdhezime dhe lblTotal. Vendosni Name property pr tre
butonat e forms si: btnLlogarit, btnReset dhe btnMbyll. N vazhdim jepet kodi
pr frmRome. Shkruani kodin dhe ju mbaruat dhe me formn e pakets pr Rom.


Page 208 of 239

Fig. 7. 16 frmRome.


Public Class frmRome

'Kjo forem llogarit cmimin per per paketen e Romes
'------------------------------------------------------

'Deklaron variablat class-level
Const decBazeRoma As Decimal = 1000 'Cmimi baze
Const decUdhezimRoma As Decimal = 300 'Cmimi per udhezimet

Private Sub btnLlogarit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnLlogarit.Click

'Llogarit dhe shfaq cmimin total per informacionin
Dim intNumUdhezime As Integer
Dim intNumJoUdhezime As Integer
Dim decCmimBaze As Decimal
Dim decCmimUdhezim As Decimal

'Merr numrin e fillestarve dhe avancuarve
intNumUdhezime = CInt(txtUdhezime.Text)
intNumJoUdhezime = CInt(txtJoUdhezime.Text)

'Llogarit numrin e pjesemarresve
g_intPjesemarresit = CStr(intNumUdhezime + intNumJoUdhezime)

'Llogarit cmimin baze
Page 209 of 239

decCmimBaze = CDec(decBazeRoma * CDbl(g_intPjesemarresit))

'Llogarit cmimin per udhezimet
decCmimUdhezim = intNumUdhezime * decUdhezimRoma

'Llogarit cmimin total
g_decTotal = decCmimBaze + decCmimUdhezim

'Shfaq te dhenat e kesaj forme
lblPjesemarresit.Text = g_intPjesemarresit.ToString
lblCmimBaze.Text = FormatCurrency(decCmimBaze)
lblUdhezime.Text = FormatCurrency(decCmimUdhezim)
lblTotal.Text = FormatCurrency(g_decTotal)

'Vendos emrin e paketes
g_strPaketa = "Roma"
End Sub

Private Sub btnReset_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnReset.Click

'Pastron te gjitha fushat
txtUdhezime.Clear()
txtJoUdhezime.Clear()
lblPjesemarresit.Text = String.Empty
lblCmimBaze.Text = String.Empty
lblUdhezime.Text = String.Empty
lblTotal.Text = String.Empty

'Pastron variablat global
g_strPaketa = String.Empty
g_intPjesemarresit = CStr(0)
g_decTotal = 0

'Kthen kursorin
txtUdhezime.Focus()
End Sub

Private Sub txtJoUdhezime_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles txtJoUdhezime.Validating

'txtAvancuar duhet te mbaje nje pozitiv numer
If Not IsPositive(txtJoUdhezime.Text) Then
'Shfaq mesazhin per gabimin
MessageBox.Show("Ju lutem fusni nje numer pozitiv ", "Gabim")
'Zgjidh permbajtjen e txtAvancuar dhe vendos kursorin
Page 210 of 239

txtJoUdhezime.SelectAll()
txtJoUdhezime.Focus()
e.Cancel = True
Else
e.Cancel = False
End If
End Sub

Private Sub txtUdhezime_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles txtUdhezime.Validating

'txtFillestar duhet te mbaje nje pozitiv numer
If Not IsPositive(txtUdhezime.Text) Then
'Shfaq mesazhin per gabimin
MessageBox.Show("Ju lutem fusni nje numer pozitiv ", "Gabim")
'Zgjidh permbajtjen e txtFillestar dhe vendos kursorin
txtUdhezime.SelectAll()
txtUdhezime.Focus()
e.Cancel = True
Else
e.Cancel = False
End If
End Sub

Private Sub btnMbyll_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnMbyll.Click

'Mbyll window
Me.Close()
End Sub
End Class
Etapa 4: Shtoni nj form t re dhe quheni frmRimini. Vendosni kontrollet duke
ju referuar Fig. 7. 17. Name property pr text boxes jan: txtZakonshem dhe
txtLuks dhe pr label jan: lblPjesemarres, lblCmimBaze, lblBagazh dhe
lblTotal. Vendosni Name property pr tre butonat e forms: btnLlogarit,
btnReset dhe btnMbyll. M posht jepet kodi pr frmRimini.





Page 211 of 239

Fig. 7. 17 frmRimini.


Public Class frmRimini

'Kjo forem llogarit cmimin per paketen e Riminit
'----------------------------------------------------

'Deklaron variablat class-level
Const decCMIM_RIMINI As Decimal = 400
Const decCMIM_SHTES As Decimal = 80
Const decCMIMI_LUKS As Decimal = 150

Private Sub btnLlogarit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnLlogarit.Click

'Llogarit dhe shfaq cmimin total per informacionin
Dim intNumeron As Integer
Dim intLluks As Integer
Dim decCmimBaze As Decimal
Dim decCmimBagazh As Decimal

'Merr numrat ne secilin pozicion
intNumeron = CInt(txtZakonshem.Text)
intLluks = CInt(txtLuks.Text)

Page 212 of 239

'Llogarit numrin e njerezve
g_intPjesemarresit = CStr(intNumeron + intLluks)

'Llogarit cmimin baze
decCmimBaze = CDec(decCMIM_RIMINI * CDbl(g_intPjesemarresit))

'Llogarit cmimin e bagazhit
decCmimBagazh = (intNumeron * decCMIM_SHTES) + (intLluks * decCMIMI_LUKS)
'Llogarit cmimin total
g_decTotal = decCmimBaze + decCmimBagazh

'Shfaq te dhenat ne kete forem
lblPjesemarresit.Text = g_intPjesemarresit.ToString()
lblCmimiBaze.Text = FormatCurrency(decCmimBaze)
lblBagazh.Text = FormatCurrency(decCmimBagazh)
lblTotal.Text = FormatCurrency(g_decTotal)

'Vendos emrin ne pakete
g_strPaketa = "Rimini"
End Sub

Private Sub bnReset_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles bnReset.Click

'Pastron te gjitha fushat
txtZakonshem.Clear()
txtLuks.Clear()
lblPjesemarresit.Text = String.Empty
lblCmimiBaze.Text = String.Empty
lblBagazh.Text = String.Empty
lblTotal.Text = String.Empty

'Pastron variablat global
g_strPaketa = String.Empty
g_intPjesemarresit = CStr(0)
g_decTotal = 0

'Kthen kursorin
txtZakonshem.Focus()
End Sub

Private Sub txtLuks_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles txtLuks.Validating

'txtLuks duhet te mbaje nje pozitiv numer
If Not IsPositive(txtLuks.Text) Then
Page 213 of 239

'Shfaq mesazhin per gabimin
MessageBox.Show("Ju lutem fusni nje numer pozitiv ", "Gabim")
'Zgjidh permbajtjen e txtLuks dhe vendos kursorin
txtLuks.SelectAll()
txtLuks.Focus()
e.Cancel = True
Else
e.Cancel = False
End If
End Sub

Private Sub txtWildernessLodge_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles txtZakonshem.Validating

'txtWildernessLodge duhet te mbaje nje pozitiv numer
If Not IsPositive(txtZakonshem.Text) Then
'Shfaq mesazhin per gabimin
MessageBox.Show("Ju lutem fusni nje numer pozitiv ", "Gabim")
'Zgjidh permbajtjen e txtWildernessLodge dhe vendos kursorin
txtZakonshem.SelectAll()
txtZakonshem.Focus()
e.Cancel = True
Else
e.Cancel = False
End If
End Sub

Private Sub btnClose_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnClose.Click

'Mbyll formen
Me.Close()
End Sub
End Class

Etapa 5: Shtoni nj form t re dhe quheni frmVenecia. Vendosni kontrollet duke
ju referuar Fig. 7. 18. Name property pr text boxes jan: txtQira dhe txtJoQira
dhe pr label jan: lblPjesemarres, lblCmimBaze, lblCmimiQiras dhe lblTotal.
Vendosni Name property pr tre butonat e forms: btnLlogarit, btnReset dhe
btnMbyll. M posht jepet kodi pr frmRimini.


Page 214 of 239


Fig. 7. 18 frmVenecia.


Public Class frmVenecia

'Kjo forem llogarit cmimin per ne Venecia
'----------------------------------------------

'Deklaron variablat class-level
Const decCMIM_VENECIA As Decimal = 700
Const decCMIM_QIRA As Decimal = 50

Private Sub btnLlogarit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnLlogarit.Click

'Llogarit dhe shfaq cmimin total per informacionin
Dim intQira As Integer
Dim intJoQira As Integer
Dim decCmimBaze As Decimal
Dim decCmimQira As Decimal

'Merr numrat ne secilin pozicion
intQira = CInt(txtQira.Text)
intJoQira = CInt(txtJoQira.Text)
Page 215 of 239


'Llogarit numrin e pjesemarresve
g_intPjesemarresit = CStr(intQira + intJoQira)

'Llogarit cmimin baze
decCmimBaze = CDec(decCMIM_VENECIA * CDbl(g_intPjesemarresit))

'Llogarit cmimin e qirase
decCmimQira = intQira * decCMIM_QIRA
'Llogarit cmimin total
g_decTotal = decCmimBaze + decCmimQira

'Shfaq te dhenat ne kete forem
lblPjesemarresit.Text = g_intPjesemarresit.ToString()
lblCmimiBase.Text = FormatCurrency(decCmimBaze)
lblCmimiQiras.Text = FormatCurrency(decCmimQira)
lblTotal.Text = FormatCurrency(g_decTotal)

'Vendos emrin ne pakete
g_strPaketa = "Venecia"
End Sub

Private Sub btnReset_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnReset.Click

'Pastron te gjitha fushat
txtQira.Clear()
txtJoQira.Clear()
lblPjesemarresit.Text = String.Empty
lblCmimiBase.Text = String.Empty
lblCmimiQiras.Text = String.Empty
lblTotal.Text = String.Empty

'Pastron variablat global
g_strPaketa = String.Empty
g_intPjesemarresit = CStr(0)
g_decTotal = 0

'Kthen kursorin
txtQira.Focus()
End Sub

Private Sub txtJoQira_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles txtJoQira.Validating

'txtJoQira duhet te mbaje nje pozitiv numer
Page 216 of 239

If Not IsPositive(txtJoQira.Text) Then
'Shfaq mesazhin per gabimin
MessageBox.Show("Ju lutem fusni nje numer pozitiv ", "Gabim")
'Zgjidh permbajtjen e txtJoQira dhe vendos kursorin
txtJoQira.SelectAll()
txtJoQira.Focus()
e.Cancel = True
Else
e.Cancel = False
End If
End Sub

Private Sub txtQira_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles txtQira.Validating

'txtQira duhet te mbaje nje pozitiv numer
If Not IsPositive(txtQira.Text) Then
'Shfaq mesazhin per gabimin
MessageBox.Show("Ju lutem fusni nje numer pozitiv ", "Gabim")
'Zgjidh permbajtjen e txtQira dhe vendos kursorin
txtQira.SelectAll()
txtQira.Focus()
e.Cancel = True
Else
e.Cancel = False
End If
End Sub

Private Sub btnMbyll_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnMbyll.Click

'Mbyll formen
Me.Close()
End Sub
End Class

Etapa 6: Shtoni nj Module duke klikuar Project dhe Add Module. Quheni at
CmimFavorizus.vb dhe type kodin.
Module CmimFavorizus

'Kodi per module
'------------------------------------------

'Perqindja e kerkuar per depoziten
Page 217 of 239

Private Const decDEPOSIT_PERQIND As Decimal = 0.5D

'Minumumi i personave pjesemarres per ulje
'perpara uljes
Private Const intMIN_ULJE As Decimal = 5
Private Const decULJE_PERQIND As Decimal = 0.1D

'Deklaron variablat global
Public g_strPaketa As String 'Emri i paketes
Public g_intPjesemarresit As String 'Numri pjesemarresve
Public g_decTotal As Decimal 'Cmimi total

Public Function CalcDiscout(ByVal intNumPeople As Integer, _
ByVal decSubtotal As Decimal) As Decimal

'Ky funksion kthen uljen, nese ka
'--------------------------------------

If (intNumPeople >= intMIN_ULJE) Then
Return decSubtotal * decULJE_PERQIND
Else
Return 0
End If
End Function

Public Function CalcDeposit(ByVal decPackageCharges As Decimal) As Decimal

'Ky funksion kthen depoziten e kerkuar
Return decPackageCharges * decDEPOSIT_PERQIND
End Function

Public Function IsPositive(ByVal strArg As String) As Boolean

'Ky funksion pranon nje string argument dhe e kthen ate True
'nese string permban nje pozitiv numer, ndryshe e kthen False
If IsNumeric(strArg) Then
If CDbl(strArg) >= 0 Then
Return True
End If
End If
Return False
End Function

End Module

Page 218 of 239

Etapa 7: Run programin dhe nse shfaqen ndonj gabim referohuni prsri n
pjest ku tregohet se ka gabime. Pasi t keni rregulluar gabimet programi duhet t
compilet n rregull. Ju sapo keni prfunduar nj program nga jeta e prditshme, i
cili nuk sht dhe aq i thjesht pr tu ndrtuar.






















Page 219 of 239

Ushtrime dhe Problema

7.1 far ndodh nse ju vendosni Checked property pr MenuItem n True?
Po nse e vendosni n False?
7.2 Nj form prdor kt fjali pr t mbyllur metodn?
a) Form.Close()
b) Me.Close()
c) Close(Me)
d) ThisForm.Close()
7.3 Nse nj sistem menu ka nj komand Cut n menun Edit, kush do t jet emri i
kontrollit pr menun?
a) mnuEditCut
b) mnuEdit
c) mnuCutEdit
d) mnuCut
7.4 Shkruani kodin pr View Labels, ku m par duhet t shtoni dy Label n
form. Kto Labels duhet t kthehen On dhe Off n t njjtn koh me text
boxes.
7.5 Gjeni gabimin n fjalin e mposhtme.
Dim emri As frmemri
Emri.ShowDialog()
7.6 Shpjegoni pr kodin e mposhtm kush do t jet vlera n variabln emri
nse n run mode prdorusi fut nj hapsir boshe . Po nse prdorusi
nuk type asnj karakter cila do t jet vlera e variabls.
7.7 Kush do t jet karakteri q do t mbaj variabla emri?
Dim njeString As String
Dim njeKarakter As Char
njeString = flamurtari
njeKarakter = njeString.Char(6)
7.8 Duke ju referuar kodit pr projektin e Axhensis Turistike gjeni gabin n
kodin e forms frmRome t mposhtm. Si mendoni kodi i mposhtm do
Page 220 of 239

t copilet apo jo? Nse do t compilet far vlere do t ket variabla
intNumJoUdhezime
'Merr numrin e fillestarve dhe avancuarve
intNumUdhezime = CInt(txtUdhezime.Text)
intNumJoUdhezime = CInt(txtUdhezime.Text)
7.9 Duke ju referuar projektit t Axhensis Turistike kush do t jet vlera e
funksionit t mposhtm nse vlera e variabls intNumPeople = 3? Nse
do tu nevoitet ta rishikoni n program kt funksion, ai gjendet n Module
CmimFavorizus.
Public Function CalcDiscout(ByVal intNumPeople As Integer, _
ByVal decSubtotal As Decimal) As Decimal

'Ky funksion kthen uljen, nese ka
'--------------------------------------

If (intNumPeople >= intMIN_ULJE) Then
Return decSubtotal * decULJE_PERQIND
Else
Return 0
End If
End Function
Page 221 of 239


KAPITULLI 8

DATABASES

Shumica e bizneseve n ditt e sotme ruajn t dhnat e kompanis n
databases. Visual Basic e bn m t leht pr t par dhe modifikuar
databases, t cilat jan krijuar me Microsoft Access, Microsoft SQL dhe t
tjera. N kt kapitull ju do t msoni konceptet baz t database si dhe
shfaqjen e tabelave database n kontrollin DataGridView. Ky kapitull do t
prfundoj me nj projekt, i cili do t tregoj si t shfaqen t dhnat e
database n list boxes, text boxes, labels dhe combo boxes.

8.1 FAR SHT NJ DATABASE?

Nj database sht nj bashkim i nj apo m shum tabelave. Kto tabela
mbajn t dhna t nj ideje t caktuar, si pr shembull nj tabel mund t mbaj
informacion pr puntort e nj kompanie si numr telefoni, emai etj. Nj tabel
tjetr mund t mbaj informacion rreth pagess s puntorve dhe kshtu mund t
kemi disa tabela sipas krkesave t secils kompani. Shikoni n Fig. 8. 1 tabeln
database t quajtur Departamente, e cila prmban informacion rreth
departamenteve t nj kompanie. Secili rresht i tabels korespondon n nj
departament, t cilt quhen record. Kollonat t quajtura dept_id, dept_emri dhe
num_punetor quhen fields. do tabel ka nj design, e cila tregon pr do kollon
emrin, tipin e t dhnave dhe madhsin. N Fig. 8. 2 tregohet design pr tabeln
Departamente. Vini re kollonn e par n Fig. 8. 1 dept_id. Duke qen se ajo
identifikon do departament ajo sht e vetme dhe quhet primary key. N kt
tabel primary key sht nj kollon, por mund t jet dhe dy ose m shum
kollona. sht e qart se n tabeln Departamente do t ekzistoj vetm nj dept_id
i quajtur primary key. Por n nj tabel tjetr Puntort, mund t ekzistoj asnj,
nj apo shum dept_id. N rastin kur ekziston t paktn nj dept_id n tabeln
Puntort ai quhet foreign key. Nse do e prmblidhnim me nj fjali far tham
m lart mund t thoshim: Database sht nj grumbullim t dhnash q jan
t organizuara n tabela, rreshta dhe kollona.
Page 222 of 239

Fig. 8. 1 Tabela Departamente
dept_id dept_emri num_punetor
1 zyre punes 20
2 Llogaria 15
3 Compiuter 7
4 Research 30

Fig. 8. 2 Tabela Departamente design.
Field Type Madhesia
dept_id Integer -32,768 ne 32,767
dep_emri Text 30 char
num_punetor Integer -32,768 ne 32,767

8.1.1 Microsoft Access Data Types
Ju do t msoni si t prdorni tabelat databases t krijuara nga Microsoft Access.
Kur ju t prdorni Visual Basic pr t lexuar t dhnat, ju duhet t zgjidhni
variablat koresponduse ndrmjet Microsoft Access dhe Visual Basic. Shikoni Fig.
8. 3.
Fig. 8. 3 Krahasimi i Microsoft Access types me Visual Basic types.
Access Vissul Basic
Auto Number Long
Data Type Data, Data Time
Byte Byte
Currency Decimal
Integer Long Integer
Single Single
Text String
Yes/No Boolean

8.1.2 Dizenjimi i Tabelave Database
Nj skem database sht nj dizenjim i tabelave, kollonave dhe mardhnie
ndrmjet tabelave. Pr ta kuptuar m mir le t marrim nj shembull. Supozoni se
ju doni t ruani t dhnat pr antart e nj shoqate. Le t supozojm se ju doni t
ruani emrin, mbiemrin, numrin e telefonit, e-mail dhe takimet e antarve t
shoqats. Fig. 8. 4 tregon nj dizenjim t mundshm. Vini re se pr zgjedhjen e
madhsis s t dhnave ju sht mir t zgjidhni nj madhsi disi m t madhe,
pasi ju nuk do t donit q fields t vepronin jasht hapsirs s caktuar prej jush.
Page 223 of 239

Fig. 8. 4 Tabela pr antart e shoqats.
Emri Tipi Madhesia
emri Text 20
mbiemri Text 20
telefon Text 15
e-mail Text 10
telefon Byte 1

8.2 KRIJIMI I DATABASE N VB

Visual Basic n mnyr t thjesht bn t mundur shfaqjen e databases n
Window dhe Web. N kt kapitull ju do t msoni si ti shfaqni t dhnat n
Window dhe n kapitullin tjetr do t msoni si ti shfaqni t dhnat n Web.
Pr t lidhur tabelat database me formn n programin ton, Visual Basic prdor
nj teknik t quajtur data binding. Kontrollet specifike q sigurojn kt lidhje
quhen component, ndrsa software q realizon kt proes quhet wizard.
N Fig. 8. 5 tregohen t dhnat q mund t lvizin nga tabelat database n nj
aplikim dhe ansjelltas. N vazhdim jepet shpjegimi pr secilin prej blloqeve. Vini
re se shigjetat tregojn n t dy drejtimet, e cila tregon se t dhnat mund t lvizin
n t dy kraht.
Data source sht zakonisht nj database, por mund t prfshi nj file
text, Excel, t dhna n XML ose shrbime n Web.
Biding source mban t dhnat e database si: emrin, pozicionin, user
name, pasword dhe informacione t tjera q nevoiten pr lidhjen.
Table adapter trheq t dhnat prej nj ose disa databases dhe i kalon ato
n programin ton. Table adapter ka aftsin t zgjedhi disa ose t gjith
rreshtat e tabels, t shtoj rreshta t rinj, t fshij rreshta ose t modifikoj
rreshtat ekzistus. Pr t realizuar kt prdoret gjuha e quajtur Structured
Query Language (SQL), e cila pothuajse sht e prdorshme nga t
gjitha databases.
Dataset sht nj kopjo e t dhnave t marra nga tabelat database. Table
adapter trheq t dhnat dhe kto t dhna kopjohen n dataset. Programi
jon mund ti modifikoj rreshtat n dataset, t shtoj rreshta t rinj ose t
fshij rreshta. E rndsishme sht se kto ndryshime ndodhin vetm n
dataset dhe jo n database, vetm nse ne do i tregojm table adapter t
bj kto ndryshime n database, ndyshimet psqyrohen dhe n database.
Page 224 of 239

Dataset mund t marri t dhna nga nj ose disa data source dhe nga nj
apo m shum tabela database.


Fig. 8. 5 T dhnat lvizin nga data source n aplikim.
Le t shohim nj shembull t thjesht se si mund t prdoret Wizard pr t krijuar
nj program i cili lexon t dhnat nga database dhe na lejon ne ti prdorim ato.
Para se ju t filloni krijimin e projektit, le t krijojm nj database, ta ruajm at n
nj file q m von t mund ta prdorim. N Microsoft Ofice gjeni programin
Microsoft Office Access dhe hapeni at. N pamje t par ky program sht
shum i ngjashm me Exel, kshtu q ju nuk duhet t keni ndonj problem pr t
krijuar tabeln e mposhtme. Kini kujdes kur ta ruani kt file, emri q ju
dshironi ti jepni duhet t mbaroj me .mdb. Ne e kemi ruajtur me emrin
8.2_Libri Adresave.mdb. Kur ky program t hapet kollonat do t shfaqen me
emrin Field1 e kshtu me radh. Ju tashm e kuptoni kt pasi ne tham se pr
tabelat n database, kollonat quhen field. Emrin e field ndryshojeni duke klikuar
djathtas n mous dhe duke zgjedhur opsionin Rename. Pasi t keni vendosur
fields: Emri, Mbiemri, Adresa, Telefoni dhe e-mail vendosni vlerat sipas tabels
s mposhtme ose nse dshironi mund ti ndryshoni ato me persona t tjer t
familjes ose t shoqris suaj. Ju mund ta keni vn re, se n krahun e majt
gjendet nj file me emrin Tabela1, ose ju mund tja kishit ndrruar emrin kur ju
ruajtt punn tuaj. N rastin ton kjo nuk ka rndsi pasi ne po prdorim vetm
nj tabel, kshtu q nuk ekziston mundsia q ti ngatrrojm ato. Si e
shpjeguam q n fillim t ktij kapitulli ju mund t krijoni m shum se nj tabel
database.
Table1
ID Emri Mbiemri Adresa Telefoni e-mail
1 Gjergji Shaska Rr. 31 20-4251 gshaska@oakland.edu
2 Dritan Lena Rr. 32 20-4252 dlena@procredit.al
3 Erion Kisi Rr. 33 20-4253 ekisi@yahoo.com
4 Eno Bushi Rr. 34 20-4254 ebushi@hotmail.com
5 Geron Brati Rr. 35 20-4255 gbrati@mail.com
6 Arjan Lamaj Rr. 36 20-4256 alamaj@yahoo.com
7 Taulant Shaska Rr. 37 20-4257 tshaska@mail.com
8 Edmon Arizaj Rr. 38 20-4258 earizaj@hotmail.com
Page 225 of 239

Table1
ID Emri Mbiemri Adresa Telefoni e-mail
9 Ilir Xhomaqi Rr. 39 20-4259 ixhomaqi@yahoo.com
10 Vrano Xhomaqi Rr. 40 20-4260 vxhomaqi@mail.com

Krijoni nj projekt t ri dhe quheni at Libri Adresave. Ngjitur me Solution
Explorer ndodhet Data Source, kliko mbi t. N krahun e djatht t ekranit do t
hapet nj window Data Source dhe n t do t gjendet nj link me ngjyr blu ku
thuhet Add New Data source,shiko Fig. 8. 6.
Fig. 8. 6 Add New Data Source

Pr t shtuar nj data source kliko n t dhe duhet t shihni n ekran Error!
Reference source not found..
Fig. 8. 7 Local Database File.

Page 226 of 239

Ju doni t lidheni me Local Database file, kshtu q klikoni mbi t dhe klikoni
Next. Klikoni n New Conection dhe n window q shfaqet kliko Change. Kliko
mbi Microsoft Access Database File (OLE DB) dhe pasi t zgjidhni filen e
ruajtur n kompiuterin tuaj duhet t shihni n ekran Fig. 8. 8. Kliko OK, kliko
Next dhe nj mesazh ju shfaqet, kliko Yes. Pastaj kliko Next dhe n window q
shfaqet kliko n shenjat + pr t hapur t gjith objektet. Pasi t gjith objektet
t jen t hapur kliko n katrorin Tables, vini re se t gjith objektet jan
zgjedhur si n Fig 8.9.

Fig. 8. 8 Add Connection form.







Page 227 of 239

Fig. 8. 9 Data Source Configuration Wizard.


Kliko Finish dhe nse ju po prdorni t njjtn database me tonn ju duhet t
shikoni n ekran dika t ngjashme me Fig. 8. 10.
Fig. 8. 10 Vendosja e dataset n projektin ton.

Page 228 of 239

Ju vut re se gjat proesit t transferimit t t dhnave nga database n datset, nj
fjali pyetse ju krkoi se cilin prej objekteve ju doni t trasferoni n dataset ( ju i
zgjodht t gjith). Por ju mund t zgjedhnit t kopjonit n dataset nj, disa ose t
gjith objektet e tabels s database. Kjo arrihet duke klikuar n at objekt q ju
doni t transferoni, megjithat n rastin ton ne duam t transferojm t gjitha
objektet e tabels. Pr kt n vend q t klikoni mbi secilin prej tyre mnyra m
e thjesht sht t klikoni n katrorin Tables. Ajo far ju sapo realizuat sht se
t dhnat e tabels s nj database i transferuat n programin tuaj, pra n data set.
Tani q ju i keni t dhnat n program ju mund ti prdorni ato.
Pr t shtuar nj field n form, nse nuk e mbani mend se far field sht
kthehuni mbrapa dhe rifreskojeni at, field sht nj kollon, kliko mbi nj prej
objekteve n dataset dhe duke e mbajtur krahun e majt t mousit t shtypur
trhiqeni dhe vendoseni mbi form dhe aty leshojeni. Pra pr t shtuar objektin e
par ID, klikoni mbi t dhe mbajeni mousin majtas t shtypur, dhe trhiqeni at
mbi form.
N momentin q ju lini butonin e mousit mbi form vini re se si n form krijohet
nj text box dhe nj label. Kjo tregohet n Fig. 8. 11. Run programin duke klikuar
F5 ose n mnyrat e tjera q ju tashm jeni familjarizuar me to. Vini re far
shfaqet dhe ndaloni programin s runuri.
Fig. 8. 11 Label dhe text box n form.

Page 229 of 239

N t njjtn mnyr njra pas tjetrs ju mund t vendosni t gjitha objektet e
dataset n form. Vini re se ato jan t vendosura n mnyr shum t rregullt
dhe n vend q t mundoheni t rregulloni seciln prej tyre, nj mnyr e shpejt
pr ti vendosur n nj paraqitje vrtet t rregull sht kjo. Kliko me krahun e
majt t mouse mbi labeln e par, Emri, mbani t shtypur ctrl dhe klikoni mbi t
gjitha label. Kliko n Format n krye t windows, kliko Align>Left. T gjitha
label vendosen n t njjtn renditje n lidhje me labeln ID. Kliko prsri n
Format dhe kliko Vertical Spacing>Make Equal. Label rediten me t njjtn
distanc vertikale me njra tjetrn. Veproni n t njjtn mnyr me text boxes.
far ju duhet t shihni sht si n Fig. 8. 12.
Run programin dhe vini re se si informacionet e forms do t plotsohen sipas t
dhnave q sht plotsuar dataset. N Fig. 8. 13 tregohet se si informacioni pr
Gjergjin plotsohet me: ID, Emrin, Mbiemrin, Adresa, Telefoni dhe e-mail. Vini
re butonat n krye t forms t cilt i japin mundsi prdorusit t lvizi para ose
mbrapa n rreshtat e tabels database. Numri i rreshtit i cili mbush informacionin
pr formn dhe numri maksimal i rreshtave jepen n krye t forms.
Ndaloni s runuri aplikimin dhe save projektin. Tani q ju msuat se si t
transferoni t dhnat nga database n dataset sht momenti q ju dhe t msoni
se si t shtoni apo t hiqni rreshta nga dataset. Kini parasysh se ndryshimi i t
dhnave n dataset nuk do t ndryshoj t dhnat n database, prve se rastit kur
ju i tregoni table adapter t ndryshoj t dhnat.











Page 230 of 239

Fig. 8. 12 Forma e aplikimit e prfunduar.


Fig. 8. 13 Aplikimi duke runur.


Page 231 of 239

Pr t fituar m tepr eksperienc me tranferimin e t dhnave t tabelave t
databases, le t krijojm dhe nj program tjetr ku do t msojm se si t shtojm
ose t heqim rreshta n dataset. N kt projekt ne na nevoitet filimisht t
krijojm nj tabel database si tabela e mposhtme.
Table1
ID Emri Mbiemri Ore_Plota Data_Fillimit Rroga
1 Gjergji Shaska Po 07/15/2008 $100,000.00
2 Dritan Lena Po 12/02/2007 %90,000.00
3 Ilir Xhomaqi Jo 11/08/1993 %70,000.00
4 Eno Bushi Po 06/12/2005 %80,000.00
5 Olsi Durolli Po 02/24/2006 %60,00.00

Krijo nj projekt t ri dhe quheni RrogatPunetorve. Vendos Text property pr
Form1 n Rrogat e Punetoreve dhe ruajeni projektin. N Tolbox kliko dhe
mbaje mousin t shypur mbi DataGridView, duke e mbajtur mousin t shtypur
trhiqeni dhe lshojeni mbi form. Ju duhet t shihni Fig. 8. 14 n ekranin tuaj.
Fig. 8. 14 Vendosja e DataGridView n form.


Page 232 of 239

N fund t window t shfaqur kliko mbi Dock in parent container dhe grid do t
mbushi komplet formn. Kliko mbi shigjetn q tregon posht n krah t Choose
Data Source (Fig. 8. 15) dhe kliko mbi Add Project Data Source.
Fig. 8. 15 Add Project Data Source

Zgjith Database dhe kliko Next. N t njjtn mnyr si dhe n projektin e
mparshm t ktij kapitulli kliko New Connection, dhe ndiq t gjitha veprimet si
n projektin e par. far ju duhet t shihni pasi ti ndiqni me kujdes t gjitha
veprimet sht Fig. 8. 16. Pr t par saktsisht t njjtn form me tonn ju
mund tu nevoitet t zmadhoni formn deri sa ta prshtasni me tabeln.
Fig. 8. 16 Kontrolli DataGridView.

Page 233 of 239


Ruani projektin dhe klikoni mbi F5 pr ta runur at. Ju duhet t shihni Fig 8.17.
Fig. 8. 17 Aplikimi duke runur.


Klikoni mbi kollonn Mbiemri dhe vini re se si rreshtat renditen sipas Sorting.
Ne e kemi shpjeguar m par se si sorting funksionon duke u bazuar n tabeln
ASCII (shikoni Apendix I). Klikoni prsri mbi kollonn Mbiemri dhe vini re se
rreshtat vendosen n mnyr t anasjellt, pra rreshti i par do t jet i fundit dhe
anasjelltas.
Lvize kursorin n kufirin midis dy kollonave deri sa kursori t kthehet
horizontalisht, mbani t shtypur mousin djathtas dhe lvizeni majtas apo djathtas.
Vini re se gjersia e kollons ndryshon.
Klikoni n nj prej ndarjeve mbi ann e majt t tabels, jasht kollons ID, vini
re se i gjith rreshti do t vendoset n ngjyrn blu. Klikoni Delete dhe vini re se
ky rresht u fshi nga tabela.
Klikoni mbi rreshtin e fundit, atje ku gjendet nj yll. I gjith rreshti do t vendoset
n ngjyrn blu. Tani ju mund t vendosni informacion pr seciln kollon. N
dataset prdorusi mund t shtoj rreshta, t heqi rreshta ose t kryj veprime t
tjera me to dhe kto ndryshime nuk reflektohen n database. Pr tu siguruar pr
Page 234 of 239

kt ndaloni programin dhe run at prsri. Vini re se tabela sht e pandryshuar.
Ndaloni programin s runuri.

8.3 STRUCTURED QUERY LANGUAGE

Structured Query Language (SQL) sht nj gjuh e cila prdoret pr t punuar
me databases. Fillimisht ajo u prdor nga IBM n 1970, por shum shpejt ajo u
adoptua nga pothuajse do software pr databases. SQL konsiston n disa fjal
baz t cilat prdoren pr t ndrtuar fjali t njojtura si queries, t cilat i japin
komandn database pr ti ekzekutuar. Por kini parasysh se megjithse SQL sht
nj gjuh programimi, ju nuk e prdorni at pr t shkruajtur aplikime, pasi ajo
prdoret vetm pr t bashkpunuar me database. Pr t shkruajtur aplikime ju keni
nevoj pr nj gjuh si Visual Basic.
















Page 235 of 239


Ushtrime dhe Problema

8.1 Krijoni nj tabel n programin Mcrosoft Access me fields: emri, mbiemri, ditlindja,
vendlindja dhe profesioni, pr 5 prej shokve/shoqeve tuaj. Transeroni t dhnat n nj
projekt t quajtur: Informacion dhe shfaqini ato n formn e ktij projekti.
8.2 Pr t njjtn tabel q krijuat n problemn 6.1, krijoni nj program duke prdorur
DataGridView. Run programin dhe shto dhe tre rreshta t tjer n dataset.
Page 236 of 239

Appendix I
Logical Operators
Operatori Not
Kur kushti sht False operatori Not e kthen at True dhe e anasjellta kur kushti sht False
operatori Not e kthen at True.

Truth Table
Condition Not Condition
True False
False True

Operatori And
Operatori And sht True vetm kur t dy kushtet jan True, n t gjith rastet e tjer sht False.


Truth Table
Condition1 Condition2 Condition1 And Condition2
True True True
True False False
False True False
False False False

Operatori Or
Operatori Or kthehet True kur t paktn nj prej prej kushteve sht True. N t kundrt sht
False.

Page 237 of 239

Truth Table
Condition1 Condition2 Condition1 Or Condition2
True True True
True False True
False True True
False False False
Operatori Xor
Operatori Xor kthehet True kur njri prej kushteve sht True, por jo t dy True ose t dy False.
Truth Table
Condition1 Condition2 Condition1 Xor Condition2
True True False
True False True
False True True
False False False
Page 238 of 239

Appendix II
ASCII Table
American Standard Code for Information Interchange (ASCII), shqiptohet ski sht
prcaktimi i karaktereve bazuar n alfabetin Anglisht. ASCII prezanton tekstin n kompjuter,
paisjet e komunikimit dhe paisjeve t tjera q punojn me text.
Historikisht, ASCII u zhvillua nga kodet telegrafike dhe prdorimi i par i tij ishte seven-bit i
krijuar nga Bell. Zyrtarisht puna pr ASCII filloj n 6 Tetor 1960 dhe standarti i par u puplikua
n 1963, u rishqyrtua prsri n 1967, dhe botimi m i plot u botua n vitin 1986.
ASCII prfshin prcaktimin pr 128 karaktere, 33 jan t paprintushm, 94 jan t printushm
dhe hapsira boshe. Karakteret ASCII prdoren n ditt e sotme n t gjith kompiuterat.

Konvertimi Hex n Decimal
0 1 2 3 4 5 6 7 8 9 A B C D E F.
0 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
1 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
2 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
3 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
4 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079
5 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095
6 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111
7 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
8 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
9 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
A 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
B 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
C 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
D 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
E 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
F 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255





Page 239 of 239

ASCII Table



This document was created with Win2PDF available at http://www.win2pdf.com.
The unregistered version of Win2PDF is for evaluation or non-commercial use only.
This page will not be added after purchasing Win2PDF.

Potrebbero piacerti anche