Professional Documents
Culture Documents
Hyrje
Avni Rexhepi
Prishtin, 2003
1
Hyrje
PARATHNIE
Ky libr u dedikohet atyre q kan dshir t msojn programimin n Visual
Basic. Meqense prgatitjen e librit dhe shembujve prkats e pata filluar akoma
pa dalur n treg versioni Visual Studio.Net, shpjegimet dhe shembujt jan n
versionin Visual Basic 6.0.
Ky sht botimi i par dhe vrejtjet e sygjerimet e lexuesve jan t mirseardhura,
n rast ribotimi. T gjith shembujt e marr n libr, jan marr m shum pr
qllime shkollore, pr t shrbyer si udhzime n realizimin e detyrave t caktuara,
e jo si projekt i gatshm pr prdorim, apo pjes t ndonj projekti.
N CD-n e bashkangjitur, ndodhen fajllat e mse 200 shembujve t prdorur dhe
t shpjeguar n libr. Pr kopjimin dhe prdorimin e tyre lexoni fajllin me
udhzime n CD.
Njohurit paraprake lidhur me programimin, bazat e t dhnave dhe programet e
paketit Microsoft Office do t jen lehtsim pr prdorimin e ktij teksti.
Pr vrejtjet dhe sygjerimet, mund t na kontaktoni prmes posts elektronike, n
adresn: avnirexhepi@hotmail.com.
Hyrje
Hyrje
HYRJE
Visual Studio sht nj prmbledhje e aplikacioneve dhe pajisjeve vizuele t
Microsoftit pr programim. Roli i saj sht sigurimi i nj burimi dhe nj kornize
pr t gjitha nevojat e programerve t ndonj ekipi, i cili merret me krijimin e
aplikacioneve pr prdorim t prgjithshm n pun. Ka aty edhe disa dyfishime,
mirpo t gjitha njsit, kryesisht jan t krijuara ashtu q ta plotsojn njra tjetrn
e njkohsisht sigurojn ambient t plot programues, projektues dhe zhvillimor.
N versionin Enterprise Edition, pajisjet vizuele kryesore jan Visual Basic, Visual
C++, Visual FoxPro, Visual J++, dhe Visual Interdev. Aty ndodhen edhe
komponentet dhe veglat e prbashkta. Me rastin e instalimit t Visual Studios, ka
mundsi t zgjedhet se cilat aplikacione do t instalohen. Veglat ndihmse jan t
projektuara ashtu q t plotsojn nevojat e shumta t programerve t ndryshm,
duke prfshir programert pr Web, ata t aplikacioneve, programeve pr
kompani dhe aplikacioneve multimediale. Disa prej veglave t prbashkta jan:
- DAO (Data Access Objects) objektet pr qasj n t dhna,
- Designers Komponente t prbashkta, q prdoren n t gjitha
programet e Visual Studios,
- Repository (Depoja) q prdoret pr vendosjen dhe leximin e
informatave,
- VBA Visual Basic for Applications, t cilin e prdorin jo vetm
programet e VS (Visual Studios) por edhe aplikacionet e Microsoftit, si
Word-i, Excel-i, Access-i, etj.
- Web Programert (Web Developer) shkruajn dhe zhvillojn aplikacione n
Web. Prdorin Internet Information Server-in e Microsoftit dhe SQL Serverin e
Microsoft-it, s bashku me ASP (Active Server Pages-Faqet Aktive t Serverit) n
prapavijw, si dhe faqet q prmbajn VBScript, kontrolla ActiveX dhe Java
Applet-e, n plan t par.
- Programert e aplikacioneve (Application Developer) shkruajn dhe zhvillojn
aplikacione dhe vegla t pavarura pr Windows. Pr krijimin e aplikacioneve t
tilla mund t prdoret kombinimi i Visual Basic-ut dhe Visual C++, me rast si
baz e t dhnave mund t prdoret Microsoft Access-i.
- Programert e kompanive (Enterprise Developer) zhvillojn aplikacione
strategjike pr udhheqjen e resurseve t ndonj kompanie. Programert e
4
Hyrje
Instalimi
Instalimi i paketit Visual Studio, e n kuadr t ksaj edhe Visual Basic-ut, bhet
prmes CD-s instaluese. Posa t vendoset CD-ja n njsin e CD-ve (CD-ROM),
automatikisht aktivizohet programi instalues. N t paraqiten instruksionet pr
instalim si dhe pyetjet pr at se cilat pjes t instalohen dhe n cilin folder t
instalohen. Pas instalimit, programi startohet prej menys Start-ProgramsMicrosoft Visual Studio 6.0-Microsoft Visual Basic 6.0 ose prmes shkurtess n
desktop, nse ajo sht krijuar paraprakisht.
Hyrje
Hyrje
Hyrje
Versionet e VB
Visual Basic-u origjinal pr DOS dhe Visual Basic pr Windows u paraqit m
1991.
Versioni Visual Basic 3.0 doli n treg m 1993.
Visual Basic 4.0 doli n treg n fund t vitit 1995 (shtoi prkrahjen pr aplikacionet
32-bitshe).
Visual Basic 5.0 doli n treg m 1996. Ambienti punues i ri, prkrahja pr krijimin
e kontrollave ActiveX dhe eleminimi i prkrahjes s aplikacioneve 16 bitshe.
Visual Basic 6.0 u paraqit m 1998 dhe disa nga karakteristikat e tij jan:
- Kompajlimi i shpejt
- ActiveX objekti i ri pr kontroll t t dhnave
- Lejon integrimin e bazave t t dhnave me nj mori aplikacionesh.
- Dizajneri i ri i raporteve t t dhnave
- Magjistari pr paketim dhe distribuim (New Package & Deployment izard)
- Aftsi t reja pr Internet.
- Visual Basic 7.0 (Visual Studio .Net) wshtw paraqitur nw fund tw vitit 2002.
Aplikacionet 32-bitshe ekzekutohen vetm n Windows 95 e tutje ose Windows
NT 3.51 e tutje, por jo edhe n versionet m t vjetra.
10
Menyt
Menya kryesore e Visual Basic-ut sht mjaft e pasur e gjithashtu edhe prbrja e
mnyve sh e pasur me opcione t ndryshme. Aktivizimi i menyve bhet n
mnyr t zakonshme prmes mausit apo prmes tastiers me ALT ose me
ALT+Shkronja e nnvizuar n meny (Alt+F, Alt+E, etj). Prbrja e menys dhe
aktivizimi i opcioneve t mundshme n to varet edhe prej kontekstit t puns dhe
objekteve t zgjedhura momentalisht gjat puns.
Menya File
N menyn File ndodhen komandat pr pun me projekte: shtimi, hapja, ruajtja,
shtypja, etj. Komandat e ndrlidhura me ndonj veprim t caktuar jan t ndara n
grupe, prmes vijave ndarse (Fig. 1.3).
- New project (Projekt i ri), mundson fillimin e projektit t ri
- Open Project (Hape projektin), bn hapjen e projektit
ekzistues.
- Add project... (Shto projekt...), shton nj projekt brenda
projektit aktual, me qllim t krijimit t grupit t projekteve.
- Remove project (Largo projektin).
- Save Project (Ruaje projektin), bn ruajtjen e ndryshimeve
t bra n projekt dhe e ruan me emrin me t cilin ka qen i
ruajtur.
- Save Project As... (Ruaje projektin si...) bn ruajtjen dhe
emrtimin e projektit pr t parn her ose ruajtjen e projektit
t ruajtur paraprakisht, por tani me emr t ri.
- Save Form1 (Ruaje formn )
Menya Edit
N menyn Edit, si zakonisht ndodhen komandat pr prerje, kopjim, krkim,
zvendsim, etj (Fig. 1.4).
Menya View
N menyn View (pamja), ndodhen komandat t cilat kan t
bjn me rregullimin e elementeve t cilat do t shihen n
dritaren e VB dhe menyrn se si do t duken ato (Fig. 1.5).
Gjithashtu, mundson kalimin prej nj pamje n tjetrn.
Njherit prmes ksaj menye mund t paraqesim ose t
largojm nga ekrani dritaret e ndryshme, si Project Explorer,
Form Layout Window, etj.
N kt meny ndodhet edhe nnmenya Toolbar, prmes s
cils zgjedhim se cili shirit i veglave do t shihet n ekran.
Zakonisht, varsisht prej kontekstit aktivizohet shiriti i
caktuar i veglave, kurse prmes menys Toolbar mund t
shtojm ose largojm shiritat tjer t veglave.
14
Menya Project
Menya Format
Menya Format, prmban komandat t cilat prdoren pr
formatizimin e objekteve t projektit (programit) (Fig. 1.7).
Prmes tyre lehtsohet rreshtimi dhe formsimi i objekteve,
shprrndarja horizontale dhe vertikale e tyre brenda forms,
qendrsimi (centralizimi) dhe rradha e paraqitjes. Njherit
kemi edhe opcionin Lock Controls, prmes s cilit bjm
mbylljen e kontrollave, q t mos ket mundsi t bhet
ndryshimi i pozits s tyre n kuadr t forms, kur
dshirojm q pozita e prcaktuar e objektit t mos
ndryshohet rastsisht, etj.
Fig. 1.7 Menya
Format
15
Menya Debug
Menya Debug sht shum e rndsishme gjat shkruarjes s
kodit t programeve. Prmban shum komanda t cilat
ndihmojn gjetjen e gabimeve n programe. Mundson
ekzekutimin hap pas hapi t programit. Mundson
ndrprerjen e ekzekutimit t programit, pr t br ndryshime
n kod ose n vlera t ndryshme ose n rradhn e ekzekutimit
t rreshtave t kodit. T gjitha kto mundsojn gjetjen dhe
prmirsimin e leht t gabimeve n programet e VB.
Fig. 1.8 Menya
Debug
Menya Run
Menya Tools
Menya Tools ndr t tjera prmban komandat pr shtimin e
procedurave n kod dhe prcaktimin e tipareve t tyre si dhe
opcionet Menu Editor (Editorin e menyve) programi prmes
s cilit krijojm menyt e programit dhe menyn Options
(Opcionet) prmes s cils bjm konfigurimin e programit.
Fig. 1.10 Menya
Tools
Menya Add-Ins
Menya Window
Menya Help
Shiritat e veglave
Si shumica e programeve t Microsoft-it edhe VB ka shiritat e veglave (Toolbars)
n t cilt ndodhen funksionet dhe komandat t cilat prdoren m s shpeshti, pr
t lehtsuar dhe shpejtuar prdorimin e tyre. Nse mbahet treguesi i mausit pr nj
koh mbi tastin prkats n shiritin e veglave, do t paraqitet shpjegimi ose
prshkrimi i shkurtr (ToolTip) i tastit prkats. Shpjegimi paraqitet n nj fush t
verdh pran tastit ku sht pozicionuar treguesi i mausit.
VB ka katr shirita t veglave: Standard, Debug, View dhe Form Editor. N fillim
shihet vetm shiriti i veglave standarde, i pozicionuar prfundi menys kryesore.
Shiritat tjer t veglave mund t paraqiten duke zgjedhur n menyn View Toolbars. Aty paraqitet lista e shiritave t veglave dhe shiriti i aktivizuar paraqitet
me shenjn e zgjedhjes para tij. Shiritat paraqiten n dritare t veanta dhe kan
titullin e dritares dhe tastin pr mbyllje n skajin e djatht t titullit. Mirpo shiritat
jan t tipit Dockable (t ankorueshm, mund t lidhen n dok (si anijet), pra mund
t vendosen t lidhen n pjesn e shiritave ose n pjest ansore t dritares s
VB). Kur jan t lidhur, mund t zgjedhen prmes shenjs me vij t dyfisht ose si
17
vij e hijezuar n skajin e majt ose t lart dhe mund t zhvendosen n pjest tjera
t dritares duke i zvarritur.
N shiritin standard t veglave ndodhen shumica e komandave nga menya File dhe
Edit dhe ato nga menya Run (Ekzekuto). Gjithashtu ndodhen edhe tastet prmes s
cilave aktivizojm/deaktivizojm dritaret Project Explorer, Properties Widow,
Form Layout Window, etj.
AddNew
Add Form
Menu
Editor
Save
Open
Copy
Cut
Find
Paste
Redo
Undo
Break
Start
End
Project
Explorer
Form Layot
Window
Properties
Window
Object
Browser
Toolbox
Data View
Window
Quick
Info
Complete
Word
Outdent
Comment
Block
Uncomment
Block
Clear All
Bookmarks
Next Bookmark
List
Constants
Parameter
Info
Indent
Toggle
Breakpoint
Toggle
Bookmark
Previous
Bookmark
18
Start
Break
End
Local Variables
Window
Step Over
Watch Window
Quick Watch
Step Out
Set Breakpoint
Immediate Window
Step Into
Call Stack
Send to Back
Alignment
Drop-down
Centering
Drop-down
19
Kontrolla-Prshkrimi
Treguesi (i mausit), Zgjedhesi - selektuesi. Bn zgjedhjen e kontrollave
Pointer
PictureBox
Label
Text Box
Frame
Command Button
Check Box
Option Button
Combo Box
List Box
Shiriti rrshqits (rrotullues) horizontal.
HScrollBar
Shiriti rrshqits (rrotullues) vertikal.
VScrollBar
Timer
DriveListBox
DirListBox
FileListBox
Shape
Line
Image
Data
OLE
20
View
Object
Toggle Folders
21
Dritarja Properties
Dritarja Properties (tiparet, karakteristikat, vetit) paraqet listn e tipareve t
objektit t zgjedhur. N Visual Basic do gj konsiderohet Object (Objekt). Objekti
ka tiparet e tij (ang. Properties) dhe veprimet ose metodat (ang. Methods). Prmes
tipareve prshkruhen karakteristikat e objektit kurse prmes metodave objekti
reagon n ngjarje t ndryshme dhe kryen veprime t ndryshme, t prcaktuara sipas
kodit ose sipas tipareve t caktuara.
Nse nuk sht e hapur, dritarja e tiparave hapet prmes menys: View Properties
Window ose duke shtypur tastin funksional F4.
Pr secilin objekt dhe kontroll t zgjedhur paraqitet lista e tipareve t cilat pastaj i
rregullojm dhe ndryshojm sipas nevojs dhe sipas dshirs, duke dhn vlerat e
caktuara pr tiparin prkats. Pr kt qllim jan t dedikuara dritarja Properties
dhe dritarja e bashkangjitur me t, Description (prshkrimi) (Fig. 1.20). N fillim
ndodhet fusha ku paraqitet emri i objektit t zgjedhur dhe lloji
. N
kt fush paraqitet lista e objekteve n dritaren punuese dhe nse hapet lista (me
shenjn n skajin e djatht t saj) mund t kalohet n kontrolln tjetr dhe t shihen
tiparet e saj. Kjo bn edhe zgjedhjen e kontrolls prkatse n form.
22
Pr fusha t tilla vlera mund t ndryshohet edhe me klik t dyfisht brenda fushs.
N listn e tipareve ka shum tipare t cilat kan ndikim n elementet e njjta, si
pr shembull pozita e dritares, madhsia, gjersia, lartsia, etj.
Dritarja Properties ka dy faqe, t cilat mundsojn listimin e tipareve sipas alfabetit
dhe sipas kategoris. Listimi sipas kategoris bn grupimin e tipareve n grupe t
cilat kan t bjn me ndonj element ose qllim t caktuar. Kategorit q
paraqiten pr Form1 jan:
- Appearance (paraqitja, dukja, pamja) ku prshkruhet ngjyra dhe karakteristikat
tjera grafike.
- Behaviour (sjellja) sjellja e objektit n kuadr t aplikacionit.
- DDE (Dynamic Data Exchange - shkmbimi dinamik i t dhnave) mekanizm
pr komunikim mes formave dhe dritareve ose programeve n Windows.
- Font (Fonti-lloji i shkronjave).
- Misc (shkurtesa pr Miscellaneous e llojllojshme), prfshin tiparet e forms q
kan t bjn me at se a do t paraqitet n listn e punve (Taskbar), si do t jet
emri i saj n program, a do t paraqiten tastet n skajin e djatht t titullit (pr
minimizim, maksimizim dhe mbyllje), etj.
- Position (pozita) pr prcaktimin e pozits dhe madhsis n ekran dhe,
- Scale (shkalla) prdoret pr matjen e brendsis s forms dhe shprndarjen e
objekteve n t.
23
Rradhitja sipas alfabetit apo sipas kategoris sht shtje personale dhe mund t
ndryshohet sipas dshirs.
Dritarja Description (prshkrimi) n t ciln prshkruhet tipari i zgjedhur mund t
mos paraqitet fare, nse shtypim tastin e djatht kudo brenda dritares dhe
eleminojm zgjedhjen pr t (Description). Pr ta kthyer n ekran e prsrisim
veprimin dhe e aktivizojm prsri.
25
Projekti i par
Projekti i par
Pr t shpjeguar mnyrn e krijimit t aplikacionit n Visual Basic do t prdorim
shembujt e ndryshm, prmes t cilve do t shpjegohen mundsit e Visual Basicut dhe mnyrat e prdorimit t objekteve t tij.
Para se t fillojm me shembullin e par, t prshkruajm edhe nj her Visual
Basic-un dhe elementet dhe rregullat q prdoren pr krijimin e nj aplikacioni
(programi).
Visual Basic-u sht vegl e cila mundson zhvillimin e aplikacioneve pr
Windows (GUI-Graphic User Interface). Aplikacionet e tilla kan pamje t njohur
(t familjarizuar) pr shfrytzuesit.
Visual Basic-u sht i udhhequr prej ngjarjeve, ka do t thot se kodi sht i
papun derisa t thirret pr tu prgjegjur n ndonj ngjarje (si shtypja e tastit t
mausit, zgjedhja n meny, etj). Visual Basic-u sht i udhhequr nga procesori i
ngjarjeve dhe asgj nuk ndodh deri sa nuk detektohet ndonj ngjarje. Kur
detektohet ngjarja, ather ekzekutohet kodi q i prgjigjet asaj ngjarjeje (event
procedure-procedura e ngjarjes). Pastaj kontrolla e programit i kthehet prsri
procesorit t ngjarjeve.
Event?
Ngjarja?
Event Procedures
Procedurat e
ngjarjeve
VB Code
Kodi i VB
VB Code
Kodi i VB
Event processor
Procesori i ngjarjeve
VB Code
Kodi i VB
Projekti i par
Struktura e aplikacionit n VB
Aplikacionet q krijohen, n Visual Basic dhe n menyt e tij njihen si Project(Projekte). Kur ruhet projekti i krijuar, formohet nj folder dhe n t vendosen t
gjith fajllat e projektit:
Tipi i fajllit
.FRM
.BAS
.FRX
.OCX
.CLS
.VBP
Prshkrimi
Form
Modul
Fajlli i gjeneruar automatikisht pr do grafik n projekt
Kontroll ActiveX
Modul i klass (Class module)
Visual Basic Projekt
Projekti (.VBP)
Forma1 (.frm)
Forma2 (.frm)
Forma 3 (.frm)
Kontrolla
Kontrolla
Kontrolla
Kontrolla
Kontrolla
Kontrolla
Kontrolla
Kontrolla
Kontrolla
Moduli (.bas)
27
Projekti i par
28
Projekti i par
29
Projekti i par
Procesi i programimit
1.
2.
3.
4.
5.
6.
T gjith kta hapa nuk kryhen patjetr nj pas nj gjat shkruarjes s nj programi.
Mirpo kta paraqesin fazat npr t cilat do t kalohet dhe rikthehet disa her,
para se t finalizohet aplikacioni.
Projekti i par
Projekti i par
Projekti i par
Nse klikohen nj pas nj nga dy her disa kontrolla, ato do t vendosen njra mbi
tjetrn n mes t forms. Pastaj mund t zgjedhen dhe zvarriten n pozita t
ndryshme.
Klikojm dy her kontrolln Label, pr t vendosur n form nj kontroll Label
(etiket) (Fig. 1.23).
Ekzekutimi
Tani mund t ekzekutojm programin n gjendjen aktuale, pr t par se si do t
duket n modin e ekzekutimit (Run-Time). Ekzekutimi mund t bhet duke
zgjedhur n meny: Run-Start (F5), duke shtypur direkt n tastier shkurtesn pr
kt komand F5 (tasti funksional F5) ose duke shtypur n shiritin e veglave
standarde tastin: Start. N ekran do t paraqitet dritarja e forms n modin e
ekzekutimit (Fig. 1.24) dhe ajo bhet dritare aktive. T gjitha komandat n shiritin
33
Projekti i par
e veglave standarde bllokohen gjat kohs s ekezkutimit dhe jan aktive vetm
komandat Break (Ndrpreje) dhe End (Prfundo).
Pra, n ekran do t hapet dritarja e
forms, e cila ka pamjen e
dritareve standarde t Windows-it,
me titull, tastet pr minimizim,
maksimizim dhe mbyllje dhe
prmbajtjen e dritares. N fillim
shihet vetm kontrolla Label1, q e
vendosm n form paraprakisht.
T gjitha veprimet e zakonshme q
kryhen me dritarete e Windows-it,
mund t kryhen edhe me kt
dritare (zhvendosja, ndryshimi i
Fig. 25 Dritjarja n modin e ekzekutimit
madhsis, minimizimi, etj).
Pra, shfrytzuesi nuk ka nevoj t brengoset pr realizimin e ktyre funksioneve n
kuadr t sistemit operativ, sepse t gjitha i bn vet Visual Basic-u. Detyr e
shfrytzuesit mbetet vetm dizajnimi i forms, kontrollave ngjarjeve dhe sjelljes s
tyre.
Pr t ndrprer ekzekutimin dhe pr tu kthyer prsri n modin e dizajnimit,
shtypim tastin End n shiritin e veglave ose zgjedhim n meny Run-End.
Ndrprerjen e prkohshme t ekzekutimit mund ta bjm me Run-Break, ose duke
shtypur tastin Break n shiritin e veglave ose Run-Break (shkurtesa Ctrl+Break).
N kt rast kontrolla i kthehet programit, ku mund t bhen ndryshime n kodin e
programit dhe pastaj t vazhdohet ekzekutimi me Run-Restart (Shift+F5) n
shiritin e veglave tani tasti Start, tregon Continue (Vazhdo). Prndryshe mund t
ndrprehet trsisht ekzekutimi me End.
Projekti i par
Projekti i par
- Left (Skaji i majt) nga vlera ekzistuese, n 1 (njsia tani sht centimetr, sepse
pr formn aktuale, e kemi ndryshuar tiparin ScaleMode, n cm).
- Top (Skaji i eprm) nga vlera ekzistuese n 2 (2cm), dhe
- Width (Gjersia) nga vlera ekzistuese n 6 (6cm). Tani mund t shihet, se n
Label1 shihet teksti i plot Msojm Visual Basic.
Ekzekutojm programin (F5, ose
Forma e par (Fig. 1.26).
36
Projekti i par
Pjesa tjetr e dritares, paraqet zonn ku duhet shkruar kodin e Visual Basic-ut. N
listn Objects, zgjedhim Form. Ather n fushn e procedurave paraqitet
procedura Load (Ngarkimi, hapja, paraqitja e forms). Gjithashtu n pjesn e
dritares pr shkruarje t kodit, automatikisht do t paraqiten dy rreshta t tekstit:
Private Sub Form_Load()
End Sub
Projekti i par
38
Projekti i par
Kur t jet zgjedhur emri i dshiruar, mjafton t shtypet tasti Tab n tastier, dhe
fjala e zgjedhur shkruhet automatikisht n kod dhe largohet lista. Radhitja e emrave
t kontrollave dhe t tipareve sht alfabetike, kurse para secils paraqitet edhe
ikona, q tregon se a sht fjala pr ndonj tipar (ikona si e Label1) apo funksion
q ekzekutohet, metod (si LCase, nn Label1), etj.
Kjo sht e prshtatshme, pr t eleminuar mundsin e gabimeve t shtypit gjat
shkruarjes s emrave t kontrollave dhe tipareve t caktuara.
Ti kthehemi, tash shembullit ton. Kemi hapur dritaren e kodit pr ngjarjen Load,
pr formn dhe fillojm shkruarjen e komandave q do t ekzekutohen me kt
rast. Pozicionojm kursorin mes rreshtave Private Sub Form_Load() dhe End Sub.
S pari do t bjm ndryshimin e njsis matse n form, duke ndryshuar tiparin
ScaleMode. Hapim listn e tipareve/metodave me Ctrl+J dhe shtypim shkronjat S
dhe C, pr tu pozicionuar n list n pjesn e tipareve q fillojn me fjaln Scale
dhe pastaj e zgjedhim duke klikuar me tregues t mausit (ose duke lvizur me
shigjetat n tastier, posht-lart), tiparin ScaleMode, dhe shtypim Tab pr t
shkruar kt fjal n pjesn e kodit. Pastaj shtypim shenjn e barazimit (=) dhe
vlern 7 pr njsin cm. (ScaleMode=7). Porsa t shtypim Enter, pr t kaluar n
rreshtin e ri, VB automatikisht bn prshtatjen e tekstit sipas sintakss s tij, duke
larguar nga nj pozit fjaln prej fjals, duke shtuar zbraztir para dhe pas shenjs
s barazimit.
Vazhdojm kshtu me shkruarjen e kodit si n vijim:
-------------------------------------------------Private Sub Form_Load()
ScaleMode = 7
Form1.Caption = "Forma e par"
Form1.BackColor = &HC0FFFF
Form1.BorderStyle = vbFixedSingle
Titulli i forms
Ngjyra e prapavis
Stili i kufirit
Label1.Alignment = 2
Label1.BackStyle = 0
Label1.Caption = "Msojm Visual Basic"
39
Projekti i par
Label1.Font = Arial
Label1.FontSize = 14
Label1.FontBold = True
Label1.Left = 1
Label1.Top = 2
Label1.Width = 6
Fonti
Madhsia
Bold
Skaji i majt i Label-s
Skaji i eprm
Gjersia
End Sub
Fundi i procedurs
Tani mund t ekzekutojm programin, duke shtypur F5 ose tastin Start n shiritn e
veglave standarde. N ekran do t paraqitet dritarja e forms e njjt me at n Fig.
1.26.
40
Projekti i par
Object Browser
Nj ndihmes tjetr e mirseardhur gjat shkruarjes s kodit, sht edhe Object
Browser (Shfletuesi i objekteve), i cili startohet duke klikuar ikonn e tij
n shiritin e veglave ose duke zgjedhur n meny: View - Object Browser
(F2), pra prmes shkurtess F2 i qasemi direkt.
Dritarja e Object Browser-it (Fig. 1.31) ndahet n disa pjes. N fillim kemi fushn
pr zgjedhjen e projektit/libraris (Librarit e komandave t Visual Basicut), pastaj
fushn pr krkim (Search Text) dhe pjesn e tasteve komanduese pr krkim,
lvizje para/prapa, kopjim n Clipboard dhe ndihm.
Nn t kemi pjesn Search Results (Rezultatet e krkimit), ku paraqitet lista e
rezultateve pr fjaln e shtypur n fushn Search Text.
N figur kemi krkuar fjaln Label
dhe rezultati sht treguar n figur.
N pjesn e poshtme t dritares,
kemi dritaret e listave pr klasat
(Classes) dhe Members of Fjala e
krkuar, ku paraqiten t gjitha
tiparet dhe metodat q kan t bjn
me kontrolln ose objektin e
zgjedhur n listn e klasave. Dhe n
fund t dritares tregohet sintaksa e
prgjithshme pr kontrolln e
zgjedhur. Kjo sht nj mnyr e
mir dhe e shpejt pr gjetjen e
informatave t nevojshme pr
mundsit e manipulimit me ndonj
kontroll ose objekt t caktuar.
Kshtu do t sigurojm informatat e
nevojshme pr komandat e caktuara
dhe sintaksn e tyre.
Fig. 1.31 Dritarja Object Browser
41
Procedurat
Procedurat
Procedura Sub sht bllok i kodit q ekzekutohet si reagim n ndonj ngjarje. Duke
ndar kodin n module, n procedura t tipit Sub, bhet shum m e leht t gjindet
dhe t modifikohet kodi n aplikacionin e shkruar.
Sintaksa e procedurs Sub sht:
[Private|Public][Static]Sub emriprocedurs(argumentet)
urdhrat
End Sub
Seciln her q t thirret procedura, ekzekutohen urdhrat mes Sub dhe End Sub.
Procedurat Sub mund t vendosen n module standarde, module t klasave ose
module t formave. Procedurat Sub standard jan t tipit Public (Publike) n t
gjitha modulet, q do t thot se mund t thirren prej cils do pozit n aplikacion.
Argumentet pr procedur jan si variablat pr deklarimin. N Visual Basic
dallojm dy lloje procedurash: procedurat e prgjithshme (General procedures)
dhe procedurat e ngjarjeve (Event Procedures)
Procedurat e prgjithshme
Procedura e prgjithshme i tregon aplikacionit si t kryej ndonj detyr specifike.
Kur deklarohet procedura e prgjithshme, ajo duhet t thirret prej aplikacionit. Pr
ndryshim, procedura e ngjarjeve mbetet joaktive deri sa t thirret pr t reaguar n
ndonj ngjarje t shkaktuar prej shfrytzuesit ose t inicuar prej sistemit.
Procedurat e prgjitshme krijohen pr arsye, se disa procedura t ngjarjeve mund t
krkojn kryerjen e veprimeve t njjta. sht praktik e mir n programim q
urdhrat e prbashkt t vendosen n nj procedur t veant (procedur t
prgjithshme) dhe q ngjarjet e caktuara ti thrrasin ato pr ekzekutim. Kjo
eleminon nevojn pr kode t dyfishta dhe gjithashtu e lehtson mirmbajtjen e
aplikacionit.
Procedurat e ngjarjeve
Procedur e ngjarjes sht pjesa e kodit, e cila shkruhet pr ekzekutimin e ndonj
ngjarjeje n program. Pr shembull, kur hapet forma, gjenerohet ngjarja Load().
Visual Basic-u ofron procedurn e ngjarjes Form_Load(). Disa kontrolla kan
shum ngjarje, e disa m pak. Kjo varet prej kontrolls.
Tiparet prshkruajn objektin. Metodat bjn q objekti t bj dika. Ngjarjet jan
ato q ndodhin kur ndonj objekt bn dika. Ngjarja ndodh si rezultat i ndonj
42
Procedurat
Edhe pse procedurat e ngjarjeve mund t shkruhen shum shpejt prej fillimit,
sht m e leht q t prdoret kodi i ofruar prej Visual Basic-ut, i cili
automatikisht prfshin emrat korrekt t procedurave. Shablloni i procedurs mund
t zgjedhet n dritaren e editorit t kodit duke zgjedhur objektin prej fushs Object
dhe pastaj duke zgjedhur procedurn prej fushs Procedure. Gjithashtu preferohet
q emrat e tipareve t kontrollave t prcaktohen para se t fillohet me shkruarjen e
kodit t procedurave t ngjarjeve pr to, sepse nse ndryshohet emri i kontrolls
pasi t jet krijuar procedura pr t, duhet rishtazi t ndryshohet emri i procedurs
n kodin e shkruar, prndryshe Visual Basic-u nuk do t jet n gjendje t prshtat
43
Procedurat
ka ndodh, veprimi
Change
Click
DblClick
DragDrop
DragOver
GotFocus
KeyDown
KeyPress
KeyUp
Event
LostFocus
MouseDown
MouseMove
MouseUp
Thirrja e procedurave
Procedurat n program thirren prmes emrit t tyre dhe lists s argumenteve, nse
i kan t definuara argumentet. Teknikat e thirrjes s procedurave dallojn
varsisht prej tipit t procedurs, vendndodhjes s procedurs dhe mnyrs s
prdorimit t saj n aplikacion. N vijim jan prshkruar mnyrat e thirrjes s
procedurave.
Thirrja e procedurave Sub
Procedura Sub nuk mund t thirret prmes emrit t saj n ndonj shprehje tjetr.
Thirrja e procedurs Sub sht nj urdhr i veant, n rresht t veant. Gjithashtu,
procedura Sub nuk kthen vlern prmes emrit t saj, si funksionet. Mirpo, ajo
mund t modifikoj vlerat q i prcillen. Ekzitojn dy mnyra t thirrjes s
procedurs Sub:
Thirrja e procedurs me emrin ProceduraABC
Call ProceduraABC (Argumenti1, Argumenti2)
ProceduraABC Argumenti1, Argumenti2
Si shihet, kur prdoret sintaksa prmes urdhrit Call (Thirre), argumentet duhet t
jen t mbyllur n kllapa. Nse nuk prdoret fare fjala e rezervuar Call, argumentet
mund t jepen pa kllapa.
Procedura Sub mund t jet rekurzive, q do t thot se ajo mund t thrras
vetveten pr t kryer detyrn e caktuar. Megjithat, rekursioni mund t shkaktoj
tejkalimin e Stack-ut (tejmbushjen e Stack-ut).
44
Procedurat
45
Procedurat
Prcjellja e argumenteve
Argumentet e procedurs, mund t thirren edhe prmes opcioneve: By Value (Sipas
vlers), By Reference (Sipas referencs) dhe ParamArray.
By value mnyra e prcjelljes s vlers s argumentit n procedur n vend t
prcjelljes s adress (adress n memorje ku sht vendosur vlera). Kjo lejon q
procedura ti qaset kopjes s variabls. Si rezultat i ksaj, vlera aktuale e variabls
nuk mund t ndryshohet prej procedurs, t cils i sht prcjellur. Pra, procedura e
merr vlern e variabls, duke krijuar nj kopje pr vete, me t ciln manipulon
brenda procedurs, por pa ndryshuar vlern e variabls.
By reference mnyra e prcjelljes s adress s argumentit n vend t prcjelljes
s vlers. Kjo lejon q procedura ti qaset variabls aktuale. Si rezultat, vlera
aktuale e variabls mund t ndryshohet prej procedurs t cils i sht prcjellur.
Nse nuk specifikohet ndryshe, ather gjithmon argumentet prcillen sipas
referencs.
ParamArray prdoret vetm si argument i fundit n listn e argumenteve pr t
treguar se argumenti i fundit sht nj varg opcional i elementeve t tipit Variant.
Fjala e rezervuar ParamArray lejon prcaktimin e nj numri arbitrar t
argumenteve. ParamArray nuk mund t prdoret me ByVal, ByRef ose Optional.
Emrtimi i kontrollave
Nj prej atributeve m t rndsishme t do kontrolle sht edhe emri, sepse
thjesht do her q dshirohet t bhet dika, duhet ti referohemi kontrolls
prmes emrit t saj. Visual Basic-u automatikisht emrton do kontroll q e
vendosni n form, sepse kjo sht shum e rndsishme. Nse shtoni nj Label-,
ajo emrtohet Label1, nse shtohet nj TextBox ai emrtohet Text1, nse shtohet
ndonj tast komandues ai emrtohet Command1 e kshtu me radh. Pr do
kontroll t re t tipit t njjt, vazhdohet me ...2, ...3 etj.
Mirpo emrtimi i till i kontrollave mund t shkaktoj konfuzion, sepse n rastet
kur duhet prdorur disa kontrolla t tipit t njjt, p.sh 20 taste komanduese,
ather do t jet e vshtir t mbahet mend se p.sh., ka bn tasti Command14.
Pra, duhet br emrtimin e kontrollave me emra t zakonshm, varsisht prej
funksionit q kan, ashtu q ajo t tregoj jo vetm se far tipi i kontrolls sht
por edhe se ka bn ajo. Kshtu do her kur kontrolla emrtohet me emr
prshkrues, ather n do moment do ta dini se ka bn ajo.
Pr t emrtuar kontrolln, ajo zgjedhet dhe n dritaren Properties, klikohet n
tiparin Name (Emri) dhe n kolonn e djatht t saj fshihet emri ekzistues dhe
prcaktohet emri i ri i kontolls.
sht rregull e Visual Basic-ut, q kontrolla t emrtohet duke dhn s pari
shkurtesn (prefiksin, parashtesn) prej tri shkronjash t llojit t kontrolls me
46
Procedurat
Prefiksi
lbl
fra
chk
cbo
hsb
tmr
dir
shp
img
ole
Kontrolla
PictureBox
TextBox
CommandButton
OptionButton
ListBox
VscrollBar
DriveListBox
FileListBox
Line
Data
Prefiksi
pic
txt
cmd
opt
lst
vsb
drv
fil
lin
dat
47
Procedurat
Kontrollat shtes
Pr t prdorur komponentet dhe kontrollat tjera n ndonj projekt, ather duhet
hapur dritaren Components (Komponentet), (prmes menys Project-Components)
dhe duhet zgjedhur komponentn e dshiruar (Fig. 1.32).
Dritarja Components mund t hapet
edhe duke klikuar me tastine djatht
n ToolBox dhe n menyn e
kontekstit q hapet me kt rast,
duke zgjedhur Components. N
dritaren Components selektohet
(vrtetohet) check-box-i para emrit
t komponentes dhe shtypet OK.
Komponenta shtohet n kutin e
veglave ToolBox dhe mund t
prdoret si t gjitha kontrollat e
brendshme, brenda projektit aktual.
Pr shembull do t shtojm
kontrolln pr kalendar, Microsoft
Calendar Control 8.0.
Fig. 1.32 Shtimi i komponenteve
.
Kur zgjedhet komponenta n pjesn e poshtme t dritares shihet edhe emri dhe
shtegu i saj. Vreni se tipi i fajllit sht .OCX (q sht prapashtesa e kontrollave
ActiveX t Microsoft-it).
Prndryshe, kutija e veglave mund t organizohet edhe n faqe (Tab-faqe) ashtu q
kontrollat e caktuara t vendosen n faqe t caktuara. Kontrollat e brendshme
ndodhen n faqen standarde General. Pr t shtuar nj faqe t re, klikohet me tastin
e djatht n hapsirn e Toolbox-it dhe n menyn q paraqitet zgjedhet Add Tab
(Shto faqe). Ather pas emrtimit t faqes, n t mund t vendosen kontrollat e
caktuara, duke i zgjedhur dhe duke i zvarritur deri n faqen e krijuar (shtypet tasti i
mausit, mbahet shtypur, me rast paraqitet shenja e zgjedhjes, si nj katror i
hijezuar, zvarritet dhe lirohet kur t kalohet n faqen tjetr). Faqja mund t
riemrtohet duke hapur n t menyn e kontekstit (duke klikuar me tastin e djatht)
dhe duke zgjedhur n t Rename Tab (Riemrto faqen).
ActiveX
ActiveX (emr i rezervuar i Microsoft-it) sht kontroll q mundson krijimin e programeve
t vogla, q formalisht njihen si komponente dhe kontrolla, dhe t cilat mund t shtohen n
programe tjera m t mdha. Kto programe, n t cilat mund t shtoni komponente ActiveX
mund t jen programe t pavarura, t vetme (Standalone Programs) ose programe q
48
Procedurat
Ruajtja e projektit
Pr t ruajtur projektin, klikojm tastin Save n shiritin e veglave standarde ose
zgjedhim n meny: File Save Project As... (pr t emrtuar projektin hern e par,
ose pr ta ruajtur rishtazi, por me emt t ri). Hapet dritarja e dialogut n t ciln
zgjedhet folderi ku do t ruhet projekti dhe emri me t cilindo t ruhet projekti dhe
forma. Pr shembullin q realizuam do t krijohet fajlli i projektit .vbp dhe fajlli i
forms .frm. Emrtojm projektin me emr t ri ose aprovojm emrin e propozuar
Project1.vbp dhe klikojm tastin Save. Njsoj veprojm edhe pr fajllin e forms,
duke definuar emrin ose duke aprovuar propozimin Form1.frm dhe duke klikuar
Save.
Hapja e projektit
Pr t hapur projektin e ruajtur, zgjedhim n meny: File-Open Project ose klikojm
tastin Open n shiritin e veglave standarde. Ngjashm, si me rastin e ruajtjes, hapet
dialogu (Fig. 1.33), i cili krkon t zgjedhim folderin dhe emrin e projektit q do t
hapet. Zgjedhim projektin dhe klikojm Open ose klikojm dy her emrin e
projektit dhe hapet projekti.
Kur hapet projekti, n fillim n ekran nuk shihet dritarja e forms. N dritaren
Project Explorer paraqitet folderi i projektit t hapur. Klikojm dy her folderin
dhe n listn e hapur, klikojm dy her emrin e forms dhe n ekran hapet dritarja e
forms, n modin e dizajnimit.
49
Kontrollat e brendshme
Kontrollat jan t rndsishme pr arsye se ato paraqesin interfejsin e aplikacionit
pr shrytzuesit. Shfrytzuesit bashkveprojn me aplikacionin prmes kontrollave,
duke i klikuar, duke shtypur tekste n to, etj.
T shohim se si prdoren kontrollat e brendshme t Visual Basicut.
Kontrolla Label
Label sht kontroll grafike q prdoret pr t paraqitur tekstet t cilat
shfrytzuesi nuk mund ti ndryshoj drejtprdrejt.
Zakonisht prdoret pr t dhn informata t caktuara, si p.sh., titulli i forms, apo
pran kontrollave tjera pr t shpjeguar prdorimin e tyre. Zakonisht vendoset
pran TextBox-eve pr t treguar se ka duhet shkruar n to.
M hert veq pam disa prdorime t kontrolls Label. Edhe gjat prshkrimit t
kontrollave tjera, prsri do t prdorim kt kontroll.
Kontrolla TextBox
TextBox (Tekst boksi), q nganjher quhet edhe fusha pr editim ose
kontrolla edit, paraqet informatn (tekstin) e dhn prej
shfrytzuesit gjat modit t dizajnimit ose tekstin q i ndahet kontrolls prmes
kodit gjat kohs s ekzekutimit.
TextBox-et pranojn tekstin e shtypur prej shfrytzuesve dhe e prpunojn at tekst
n program. Edhe pse disa kontrolla pranojn hyrjet prej shfrytzuesve, text-boxet jan m t lehtat pr konfigurim dhe pr reagim n ngjarjet lidhur me to. Edhe
pr shfrytzuesit sht i leht prdorimi i tyre dhe paraqiten pothuaj se n t gjitha
format.
N prgjithsi text-box kontrolla duhet t prdoret pr tekste t editueshme, por
mund t bhet edhe kontroll vetm pr lexim (Read-only) duke prcaktuar tiparin
e saj Locked (i/e mbyllur) n True (i/e sakt, i/e vrtet).
Teksti i shtypur n TextBox prmbahet n tiparin Text t tij. Zakonisht, mund t
insertohen deri n 2048 karaktere n TextBox. Nse tipari MultiLine (shum
rreshtsh) prcaktohet si True, ather mund t shtypen deri n 32Kb text.
Nse teksti i shtypur tejkalon kufijt e kontrolls, mund t lejoni q teksti
automatikisht t mbshtillet (rrotullohet) duke prcaktuar tiparin MultiLine n True
dhe duke shtuar ScrollBars (shiritat rrshqits), prmes tiparit ScrollBars.
N kt rast nuk bhet rrotullimi automatik i tekstit, por prmes shiritave
rrshqits.
50
Rreshtimi i tekstit, zakonisht bhet sipas vlers standarde, nga ana e majt (Tipari
Alignment Left Justify). Mirpo, nse tipari MultiLine caktohet True, ather
mund t bhet edhe rreshtimi prmes tiparit Alignment: n qendr (Center) ose nga
ana e djatht (Right Justify). Tiparet e zakonshme t kontrolls TextBox jan
paraqitur n tabeln vijuese.
Tipari
Alignment
BackColor
BorderStyle
Enabled
Font
ForeColor
Height
Left
Locked
MaxLength
MousePointer
MultiLine
PasswordChar
ScrollBars
TabIndex
TabStop
Text
ToolTipText
Top
Visible
Width
Prshkrimi
Rreshtimi i tekstit brenda tekst boksit: Majtas, qendr, djathtas.
Ngjyra e prapavis s tekst boksit.
Prcakton a do t paraqitet vija kufizuese prreth tekst boksit.
Prcakton a sht aktiv tekst boksi. Shpesh her, do t ndryshohet
prmes kodit, kur nuk nevojitet m tekst boksi.
Hap dialogun Font, pr t prcaktuar fontin e tekstit, stilin dhe
madhsin.
Ngjyra e tekstit n tekst boks.
Lartsia e tekst-boksit.
Largsia e skajit t majt t tekst boksit prej skajit t majt t forms.
Prcakton se a mundet shfrytzuesi t editoj tekstin n tekst boks.
Prcakton numrin e karaktereve q mund t shtypen n tekst boks.
Prcakton formn e treguesit t mausit (kursorit) kur shfrytzuesi e lviz
treguesin mbi tekst boks.
Lejon rreshtat e shumfisht t tekstit ose bn q n tekst boks t ket
vetm nj rresht t tekstit. Nse aktivizohet, duhet shtuar edhe shiritat
rrshqits, pr t lejuar q t shihet tr teksti.
Prcakton karakterin q paraqitet n tekst boks kur shfrytzuesi shtyp
fjalkalimin (shifrn, password-in).
Prcakton a do t shihen shiritat rrshqits n skaje t tekst boksit.
Prcakton rradhn e tekst boksit n rradhn e fokusit.
Prcakton a mund t marr fokusin tekst boksi.
Mban vlern e tekstit brenda tekst boksit. Tipari Text ndryshon n kohn
e ekzekutimit, kur shfrytzuesi shtyp tekstin n tekst boks. Nse
prcaktohet vlera fillestare, ather ajo bhet vlera standarde q paraqitet
n fillim n tekst boks. Nse fshihet trsisht, tekst boksi n fillim paraqitet
i zbrazt.
Mban tekstin q paraqitet si ToolTip (tekst shpjegues q paraqitet kur
mbahet kursori mbi kontroll) n kohn e ekzekutimit.
Largsia e skajit t eprm t tekst boksit prej skajit t eprm t forms.
Prcakton a do t paraqitet tekst boksi apo do t jet i fshehur prej
shfrytzuesit.
Gjersia e tekst boksit.
51
Caption
Paraqitja
Emri:
Mbiemri:
Teksti ne nje rresht
Teksti ne shume rreshta
Left
3.5
1
1
1
1
Width
1.5
1.5
1.5
1.5
1.5
TextBox-et
Name
txtEmri
txtMbiemri
txtNjeRresht
txtShumeRreshta
Left
2.5
2.5
2.5
2.5
MultiLine
False
False
False
True
TabIndex
1
2
3
4
TabStop
True
True
True
True
Text
Emri
Mbiemri
Width
4
4
4
4
Vrejtje:
Nse duke dashur q t krijoni kontrollat m shpejt, tentoni t kopjoni nj kontroll (P.sh.
Tekst-boksin Text1) dhe ta prsritni prmes Edit-Paste, n ekran do t paraqitet mesazhi
me pyetjen: You already have a control named Text1. Do you want to create a control
array? (Veq e keni krijuar nj kontroll me emrin Text1. A dshironi t krijoni varg
kontrollash?). Prgjigjuni me No (Jo). Pr vargun e kontrollave do t msojm m von.
madhsit e barabarta dhe rreshtimin n vij t drejt, prdorim menyn format dhe
komadat e saj ose aktivizojm shiritin e veglave Format Editor (View-ToolbarsFormat Editor).
Formatizimi i kontrollave
Formatizimi i kontrollave n form bhet prmes menys Format ose prmes
komandave n shiritin e veglave Form Editor (Fig. 1.35). Pr t harmonizuar
pozitn ose madhsin e dy kontrollave duhet t zgjedhen t dy kontrollat.
Zgjedhja bhet ashtu q klikohet kontrolla e par dhe zgjedhet, e pastaj mbahet
shtypur tasti Shift n tastier dhe klikohet edhe kontrolla tjetr. Kur t zgjedhet
kontrolla, asaj i paraqiten shenjat e zgjedhjes n skaje, me katrort e vegjl ngjyr
t kaltrt. Mirpo, nse zgjedhen dy e m shum kontrolla bashkarisht ather
vetm pikat e zgjedhjes s kontrolls s fundit t zgjedhur n grup kan ngjyr t
kaltr, kurse ato t kontrollave tjera t grupit marrin ngjyrn e bardh. Kjo sht
shum me rndsi, sepse harmonizimi i parametrave bhet sipas kontrolls s
fundit t zgjedhur, d.m.th asaj q pikat e zgjedhjes i duken me ngjyr t kaltr.
55
56
t shtojm shkronjat mbi dhe t shtypim shigjetn lart ose posht n tastier dhe
automatikisth bhet prshtatja n txtMbiemri.
Ekzekutojm programin rishtazi dhe shohim efektin e kodit t shkruar n modin e
ekzekutimit.
Kur t ekzekutohet programi, forma funksionon si m hert, por e kemi edhe tastin
komandues Pastro Fushat, me t cilin i pastrojm t gjitha fushat tekstuale, duke
57
Prshkrimi
BackColor
Cancel
Caption
Default
Enabled
Font
Height
Left
MousePointer
Picture
Style
TabIndex
TabStop
ToolTipText
Top
Visible
Width
Si shihet n Fig. 1.39, prmes kodit, gjat kohs s ekzekutimit ndryshojm tiparin
Visible (i dukshm, shihet) pr kontrollat prkatse, ashtu q t shfaqen dhe t
fshehen sipas nevojs.
60
61
62
(frmLevize.Width - lblInfo.Width) / 2
lblInfo.Top = _
(frmLevize.Height - lblInfo.Height) / 2 - 200
End Sub
Private Sub cmdPoshteMajtas_Click()
' Cakto vleren e tiparit Top te formes
' sa fundi i ekranit, por zbrite lartesin e formes
' ashtu qe fundi i formes eshte ne fund
' te ekranit
frmLevize.Top = Screen.Height - frmLevize.Height
'Cakto tiparin Left te formes
'ne skajin e majte te ekranit
frmLevize.Left = 0
End Sub
Private Sub cmdPoshteMajtas_GotFocus()
lblInfo.Caption = "cmdPoshteMajtas ka Fousin"
End Sub
Private Sub cmdPoshteDjathtas_Click()
'Cakto tiparin Top te formes
'ne skajin e poshtem te ekranit por ngrite
'lartesine e formes ashtu qe fundi i formes
'te jete ne fund te ekranit
frmLevize.Top = Screen.Height - frmLevize.Height
'Cakto tiparin Left te formes ne
'skajin e djathte te ekranit por zhvendose ne ekran
'sa per gjeresine e formes ashtu qe
'skaji i djathe i formes te jete ne skajin e djathte te ekranit
frmLevize.Left = Screen.Width - frmLevize.Width
End Sub
Private Sub cmdPoshteDjathtas_GotFocus()
lblInfo.Caption = "cmdPoshteDjathtas ka Fokusin"
End Sub
Private Sub cmdLartMajtas_Click()
'Cakto tiparin Top te formes
'sa skaji i eperm i ekranit
frmLevize.Top = 0
'Cakto tiparin Left te formes
'sa skaji i majte i ekranit
frmLevize.Left = 0
End Sub
Private Sub cmdLartMajtas_GotFocus()
lblInfo.Caption = "cmdLartMajtas ka Fokusin"
63
End Sub
Private Sub cmdLartDjathtas_Click()
'Cakto tiparin Top te formes
'sa skaji i eperm i ekranit
frmLevize.Top = 0
'Cakto tiparin Left te formes sa
'skaji i djathte i ekranit por zhvendose prapa
'ne ekran per gjeresin e formes, ashtu qe
'skaji i djathte i formes te jete ne skajin
'e djathte te ekranit
frmLevize.Left = Screen.Width - frmLevize.Width
End Sub
Private Sub cmdLartDjathtas_GotFocus()
lblInfo.Caption = "cmdLartDjathtas ka Fokusin"
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
'Vendosja e tiparit Caption te labeles ne ngjarjen MouseDown (tasti shtypet)
lblInfo.Caption = "Ngjarja MouseDown"
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Vendsoja e tiparit Caption te labeles ne ngjarjen MouseUp (tasti lirohet)
lblInfo.Caption = "Ngjarja MouseUp"
End Sub
Private Sub lblInfo_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
lblInfo.ForeColor = vbRed
lblInfo.FontBold = True
lblInfo.Caption = "Ngjarja MouseDown"
End Sub
Private Sub lblInfo_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
lblInfo.ForeColor = vbBlack
lblInfo.FontBold = False
lblInfo.Caption = "Ngjarja MouseUp"
End Sub
--------------------------------------------------------------------------------------------------
64
65
Llojet e t dhnave
Variablat jan vende t cilat ruajn vlerat dhe kan emrin dhe tipin e t dhnave.
Tipi i t dhnave prcakton se si do t ruhen bitat q i prezentojn ato vlera n
memorie t kompjuterit. Kur deklarohet nj variabl, asaj i caktohet edhe tipi i t
dhnave. T gjitha variablat kan tipin e t dhnave q prcakton vlerat q variabla
mund ti ruaj. Nse nuk deklarohet tipi i t dhnave, asaj i ndahet tipi Variant. Tipi
Variant sht nj lloj kameleoni q mund t prezentoj disa lloje t t dhnave n
disa situata t ndryshme. Konvertimin e llojit t variablave t tipit Variant e bn vet
Visual Basic-u.
Nse dihet se variabla gjithmon do t ruaj nj tip t caktuar t t dhnave, ather
sht m mir t deklarohet tipi i saj, sepse ather Visual Basic-u manipulon m
leht me t. Pr shembull, kur jan n pyetje emrat e njerzve ather variabla q i
ruan emrat m s miri sht t definohet si variabl tekstuale e tipit String
(ndryshore tekstuale), sepse ajo gjithmon prbhet prej shkronjave.
66
Tipi i t dhnave, prveq pr variabla, definohet edhe kur ndonj tipari i ndahet
vlera sepse edhe ajo vler ka tipin e caktuar. Edhe argumentet e funksionit kan
tipin e t dhnave. Edhe vargjet mund t definohen si t vargje t tipit t caktuar.
Deklarimi i variablave
Variabla deklarohet (krijohet) duke prdorur formn vijuese:
Dim EmriVariabls As Tipi
Kshtu pr shembull,
Dim i as Integer
Fjalt e rezervuara
Fjalt e rezervuara (Keyword-fjalt els) jan fjal t rezervuara pr prdorim
vetm prej Visual Basic-ut. Shfrytzuesi nuk mund ti prdor kto fjal pr nevoja
tjera n program. Fjalt si: Dim, As, New. ReDim, If, Then, Else, Loop, While, dhe
End jan t gjitha fjal t rezervuara t VB. VB prdor ngjyrn e kaltr pr t
treguar fjalt e rezervuara gjat shkruarjes s kodit n dritaren e kodit.
Emrtimi i variablave
Kur deklarohet variabla, ajo duhet t emrtohet dhe prmes atij emri identifikohet
n program.
Emrat e variablave mund t jen prshkrues t prmbajtjes s tyre. P.sh., mund t
prdoret variabla me emr i ose Mosha, pr t treguar moshn e personave.
Kufizimet lidhur me emrtim jan:
-
Numr Nj (ka zbraztir) etj. N ann tjetr, definim i rregullt sht: Numri&, i%,
iNj, strVleraHyrese, Numer2#, etj.
Q kodi t jet i lexueshm, emrat e variablave duhet t prshkruajn qllimin e
prdorimit, por edhe duhet t jen t shkurtr, q t shtypen m leht. Pr t
lehtsuar identifikimin, preferohet q pr llojet e t dhnave t prdoren prefikset,
q jan prshkruar n tabeln vijuese.
Prefikset e variablave dhe kontrollave
Prefiksi
B
C
D
db
ds
dt
td
h
i
l
str
s
a
g
m
ani
cbo
chk
clp
cmd
com
ctr
dat
db
dir
dlg
drv
fil
frm
fra
gau
gpb
grd
hsb
img
key
68
Variabla/Kontrolla
Boolean
Currency
Double
Database
Dynaset
Date+time
TableDef
Handle
Integer
Long
String
Single
Array
Global
Local pr modul ose form
Animation button
Combo box dhe drop-don
list box
Check box
Picture clip
Command button
Communications
Control (prdoret kur nuk
dihet tipi i kontrolls)
Data
ODBC database
Directory list box
Common dialog
Drive list box
File list box
Form
Frame
Gauge
Group button
Grid
Horizontal scroll bar
Image
Keyboard key status
Shembull
bDritaNdezur
cVleraPaTatim
dCmimiNjesi
dbLlogarite
dsPrishtina
dtAfati
tdStudentet
hnd
iNumri
lNum
strMesazhi
sPaga
A_iVarguIm
G_iTotali
m_iVlera
AniFillo
cboLista1
chkPrezent
clpEmblema
cmdEmri
comLinjaPare
ctrTjetri
datLendet
dbPagesat
dirProjektet
dlgSetimi
drvKryesor
filFotot
frmKontrolla
fraEkipet
gauThengjill
gpbAplikacionet
grdKryesore
hsbTeksti
imgPortreti
keyASCII
Label
Line
List box
MDI child form
Menu
Option button
OLE client
3D panel
Shape
Spin control
Text/edit box
Timer
Vertical scrollbar
69
Krkon
Rangu i Vlerave
2 bytes
4 bytes
Single
Numrat decimal
4 bytes
Double
Numrat decimal
(precizitet i dyfisht, 8 bytes
pika e levizhme)
-32,768 to 32,767
Prafrsisht +/- 2.1E9
-3.402823E38 to -1.401298E-45 pr vlerat
negative 1.401298E-45 to 3.402823E38
pr vlerat pozitive
-1.79769313486232E308 deri
-4.94065645841247E-324 negative ;
4.94065645841247E-324 deri
1.79769313486232E308 pozitive
Numrat deri n 15
8 bytes pr
Currency shifra para dhe 4
decimalet
pas presjes dhjetore
String
Informat tekstuale
1 byte pr
karakter
Byte
Boolean
Date
Numra t plot
Vlera logjike
Dat dhe koh
Foto dhe objekte
tjera
Cilado nga tipet
paraprake
1 byte
2 bytes
8 bytes
4 bytes
reference
16 bytes +1
byte pr tipin
Object
Variant
922,337,203,685,477.5808 deri
922,337,203,685,477.5807
Deri n 65,000 karaktere pr string me
gjatsi fikse dhe deri n 2 miliard karaktere
pr string dinamik
0 deri 255
True (Sakt) ose False (Pa Sakt)
1 Janar 100 deri m 31 Dhjetor 9999
Pa definuar
Pa definuar
70
Vlera Null
Tipi Variant mund t prmbaj edhe nj vler speciale: NULL. Null zakonisht
prdoret n bazat e t dhnave pr t treguar t dhnat e panjohura ose q
mungojn. Pr shkak t mnyrs se si prdoret n baza t t dhnave, tipi Null ka
disa karakteristika unike:
- Shprehjet q prmbajn Null, gjithmon rezultojn me Null. Kshtu, thuhet se
Null prhapet npr shprehje; nse nj pjes e shprehjes sht Null, tr shprehja
vlersohet Null.
- Nse Null sht argument n ndonj funksion, bn q funksioni t kthej
rezultatin Null.
- Vlerat Null prhapen npr funksionet e brendshme t cilat kthejn tipin Variant.
Nse Null i ndahet ndonj variable t tipit q nuk sht Variant, ather paraqitet
gabim.
Vlera Error
Error sht vler speciale q prdoret pr t treguar se n procedur ka ndodhur
ndonj gabim. Sidoqoft, pr dallim prej llojeve tjera t gabimeve, gabimi normal
n nivel t aplikacionit lejon q t ndrmirren hapa tjer si prgjigje n vlern e
gabimit. Vlerat Error krijohen duke konvertuar numrat real n vlera t gabimit
duke prdorur funksionin CVErr.
Konstantet
Shpeshher ndodh q kodi t prmbaj vlera konstante q paraqiten vazhdimisht,
ose mund t ndodh q kodi t varet prej disa vlerave q sht vshtir t mbahen
mend.
N kto raste, mund t prmirsohet lexueshmria e kodit dhe mirmbajtja e tij,
prmes prdorimit t konstanteve. Emri me kuptim i konstants z vendin e numrit
ose tekstit q nuk ndryshon. Edhepse konstanta i ngjan variabls, konstants nuk
mund ti ndahet vlera e re, si ndodh me variablat. Kemi dy burime t konstanteve:
- Konstantet e brendshme ose te definuara prej sistemit, q ofrohen prej
aplikacioneve ose kontrollave. VB prmban konstantet e listuara n librari t VB
ose VBA (Visual Basic for Applications), n librari t Object Browserit.
- Konstantet simbolike ose t definuara prej shfrytzuesit deklarohen prmes
urdhrit (komands) Const.
N Visual Basic, emrat e konstanteve jan me shkronja t prziera, me madhsi t
ndryshme, me prefiksin q tregon librarin e objekteve q definon konstanten.
Konstantet e VB dhe VBA kan prefiksin vb, si p.sh: vbTileHorizontal; vbRed,
etj. Prefiksi prdoret pr t evituar przierjen e emrave t njejt n rastet kur
konstantet kan emra t njjt por paraqesin vlera t ndryshme.
71
Deklarimi eksplicit
Deklarimi eksplicit (i caktuar, i hollsishm, i sakt), do t thot, se ju duhet t
prdorni nj urdhr (komand) pr t definuar nj variabl. Secili prej urdhrave
vijues mund t prdoret pr deklarim eksplicit t tipit t variablave:
Dim EmriVar[As TipiVar][, EmriVar2[As TipiVar2]]
Private EmriVar[As TipiVar][, EmriVar2[As TipiVar2]]
Static EmriVar[As TipiVar][, EmriVar2[As TipiVar2]]
Public EmriVar[As TipiVar][, EmriVar2[As TipiVar2]]
72
Deklarimi implicit
Deklarimi implicit (i nnkuptuar) nuk krkon specifikim t variabls. N VB nuk
jeni t detyruar t prdorni fjalt e rezervuara Dim, Private, Static ose Public. N
VB mund t prdorni edhe variabln me emr: VleraIme. Mirpo nse e shkruani
kshtu n kod, ather do t krijohet variabl me Emrin VleraIme e tipit Variant,
dhe do t ket vler standarde Empty (t zbrazt). Saher q prdoret deklarimi
implicit, VB konsideron se tipi i variabls sht Variant. Sidoqoft, deklarimi
Implicit nuk preferohet. Thjesht, kjo gj mund t shkaktoj probleme t
panevojshme. Nse prdoret deklarimi implicit, ather sa her q bni gabim
shtypi gjat shtypjes s emrit t variabls, VB do t mendoj se jeni duke br
deklarim implicit t ndonj variable tjetr, gj q mund t shkaktoj shum
probleme. Me deklarim implicit, kodi vijues do t kthente rezultatin zero, prej
variables s gabuar.
wDeklaro variablen q ruan vleren e fituesit
Dim iFituesi as Integer
wNdaja vleren variables se fituesit
iFituesi = 100
wKodi do te paraqes mesazhin:
w Fituesi ka fituar: 0
wsepse gabimisht eshte shtypur, iFitusi e jo iFituesi
MsgBox "Fituesi ka fituar: " & CStr(iFitusi)
Prapashtesat e variablave
Pr prcaktimin e tipit t variablave n vend t deklarimit me As, mund t prdoret
edhe mnyra e deklarimit t variabls dhe tipit t saj prmes prdorimit t sufiksit
(prapashtess) t tipit t t dhnave (Data Type Suffix). Me kt mnyr t
deklarimit, nj karakter special prdoret n fund t emrit t variabls kur variabls i
ndahet vlera s pari. Prmes ktij veprimi, variabls i prcaktohet tipi
automatikisht. Nuk ka nevoj t prdoret fjala e rezervuar As. Karakteret
specifikuese t tipit, q prdoren si prapashtesa jan dhn n tabeln vijuese.
Tipi i variabls
Integer
Long
Single
Double
Currency
String
Byte
Boolean
Date
Object
Variant
Sufiksi
%
&
!
#
@
$
Ska
Ska
Ska
Ska
Ska
74
75
Funksioni konvertues
Cbool
Cbyte
Ccur
Cdate
CDbl
Cint
CLng
CSng
CStr
Cvar
CVErr
Fix, Int
76
Konverton shprehjen n
Boolean
Byte
Currency
Date
Double
Integer
Long
Single
String
Variant
Error
Integer, Long
Funksionet Fix dhe Int kthejn vetm pjesn e plot t numrit. (P.sh., Fix(8,6)=8,
Int(32,46)=32, etj).
Shembull:
Fillojm nj projekt t ri
StandardEXE dhe krijojm formn
frmMbledhja si n Fig.2.2. Vendosim
n t labelat, tekst bokset dhe tastin
komandues: lblInfo, lblNumriPare,
lblNumriDyte, lblShuma,
txtNumriPare, txtNumriDyte,
txtShuma, cmdMbledhja.
Shfrytzuesi, inserton vlerat n fushat
pr numrin e par dhe numrin e dyt
dhe pastaj duke klikuar n tastin
komandues pr mbledhje, fiton
rezultatin n fushn pr shum.
Fig. 2.2 Mbledhja e dy numrave
Pr t shkruar kodin pr tastin komandues, klikojm dy her n t pr t hapur
dritaren e kodit dhe n dritaren e kodit automatikisht krijohet struktura pr ngjarjen
cmdMbledhja_Click( ). Shkruajm kodin vijues:
Option Explicit
Private Sub cmdMbledhja_Click()
Dim x As Integer
Dim y As Integer
Dim z As Integer
77
Variablat globale
N shum programe, do t paraqitet nevoja pr disa variabla q duhet t ken
mundsi qasjeje prej cilsdo pozit brenda programit. Kto quhen variabla Publike
(Public Variable) N gjuht tjera programuese, njihen si variabla globale. Kto
variabla prdoren pr ruajtjen e informatave q prdoren prgjat tr programit.
Gjithashtu mund t prdoren edhe pr prcaktimin e kushteve t ndryshme brenda
programit.
Pr t krijuar variblat publike, duhet t prdoret fjala e rezervuar, Public, n
deklarimin e variabls. P.Sh., Public bDritatNdezur as Boolean, deklaron variabln
e tipit Bulean (Boolean). N form, fjala Public, ka domethnie t veant.
Variablat e deklaruara si publike, konsiderohen si tipar i forms dhe mund t
shihen prej cilsdo pozit n program. Ktyre tiparave u referohemi si tipareve t
brendshme t programit. Pr shembull, nse kemi variabln strEmri, t deklaruar
publike, n formn frmForma1, ather pr t ju qasur variabls, prdoret shprehja:
strStringu1 = frmForma1.strEmri.
Tiparet publike mund t prdoren pr prcjelljen e informatave ndrmjet formave
dhe pjesve tjera t programit. Nse nuk ka nevoj pr qasje publike, ather nuk
prdoret fjala e rezervuar Public. Nse variabla deklarohet brenda procedurs, ajo
mund t ket qasje vetm prbrenda asaj procedure. Kjo zakonisht njihet si variabl
lokale (Local Variable). Fjala e rezervuar Private, prdoret prbrenda seksionit pr
deklarim t forms ose modulit, pr ta br t dukshme vetm prbrenda forms
ose modulit ku sht deklaruar. Kjo zakonisht njihet si variabl e nivelit t forms
ose e nivelit t modulit.
Variablat statike
Shumica e variablave t krijuara prbrenda procedurs hudhen, kur t prfundoj
procedura. Nganjher, paraqitet nevoja pr ruajtjen e vlers s variabls edhe pas
prfundimit t procedurs. Kjo ndodh shpesh kur procedura thirret disa her dhe
vlera e variabls pr njrn thirrje, varet prej vlers s mbetur prej thirrjes
paraprake. Pr t krijuar variabla q mbajn vlern e tyre edhe pas prfundimit t
ekzekutimit t procedurs, prdoret fjala e rezervuar Static (Statike) n deklarimin
e variabls. Kjo i tregon VB se variabla mund t referohet vetm prbrenda
procedurs, por duhet t ruhet vlera sepse do t nevojitet prsri.
80
Shembull:
Nj variabl statike e tipit integer,
mund t definohet si vijon:
Static Numratori as Integer
81
82
NumStudent% = 25
Shuma% = 2276
Mesatarja% = Shuma% / NumStudent%
TopStudenti$ = "Virtyt Rexhepi"
StudentiDobet$ = txtStudent.Text
Gabimi TypeMismatch
Dim x%
urdhri vijues do t shkaktoj TypeMismatch Error
x% = "Jungjatjeta!"
...
83
Vlerat standarde
Kur krijohet nj variabl, Visual Basic-u ia ndan asaj vlern standarde. Vlera
standarde momentale, varet prej tipit t variabls, si n tabeln vijuese:
Tipi
Integer
Long
Single
Double
String
Boolean
Variant
Date
Currency
84
Vlera
0
0
0
0
"" (blank - zbraztir)
False
EMPTY
0
0
Operatort
N Visual Basic, si n shumicn e gjuhve programuese, prdoren llojet e
zakonshme t operatorve: operatort matematik, pr krahasim, logjik, etj.
Simbolet e operatorve n Visual Basic, jan paraqitur n tabeln vijuese.
Operacioni
Matematik
Addition (mbledhja)
Subtraction (zbritja)
Multiplication (shumzimi)
Division (pjestimi)
Integer division (pjestimi i plot)
Modulus (moduli, mbetja e pjestimit)
Exponentiation (fuqizimi)
Krahasues
Barazi
Jobarazi
M i vogl
M i madh
M i vogl ose baraz
M i madh ose baraz
Logjik
Jo (Negacion)
Dhe
Ose
Ekskluziv Ose
Ekuivalenca
Implikacioni
Sikur
sht
Simboli i operatorit
+
*
/
\
Mod
^
=
<>
<
>
<=
>=
Not
And
Or
Xor
Eqv
Imp
Like
Is
rezultati
rezultati
rezultati
rezultati
rezultati
4.42
2.21
6.63
8.28
9.28
85
Shprehja 2
True
False
True
False
Rezultati
True
False
False
True
Biti n shprehjen 1
0
0
1
1
Biti n shprehjen 2
0
1
0
1
Rezultati
1
0
0
1
Shprehja 2
True
False
True
False
Rezultati
True
False
True
True
Biti n shprehjen 1
0
0
1
1
Biti n shprehjen 2
0
1
0
1
Rezultati
1
1
0
1
86
Shprehja 2
True
False
True
False
Rezultati
False
True
True
False
Biti n shprehjen 1
0
`0
1
1
Biti n shprehjen 2
0
1
0
1
Rezultati
0
1
1
0
87
Prioriteti i operacioneve
Varsisht prej operatorve t prdorur n shprehje, kemi edhe operatort me
prioritet, si n matematik. N tabeln vijuese, jan paraqitur operacionet sipas
prioritetit.
Operacioni
Eksponenti
Negacioni (unar)
Shumzimi, Pjestimi
Pjestimi i plot
Moduli
Mbledhja, zbritja
Bashkimi (string)
Opertarot e krahasimit
Operatort logjik
Simboli i Operatorit
^
*, /
\
mod
+, &
=, <>, <, >, <=, >+
Not, And, Or, Xor, Eqv, Imp, Like, Is
rezultati 22
rezultati 14
Rezultati=2
Rezultati=1
Rezultati=4
Eksponenti
Eksponenti ose fuqia e numrit prdoret mjaft n operacionet matematike. Pr
shembull 2 n fuqin 3 sht baraz me 2x2x2, ose 8. N shkenc dhe n teknologji,
eksponentet paraqiten si fuqi t 10 ose si logaritme natyrale. Eksponente t thjesht
prdoren n statistik, ku shum llogaritje varen prej katrorit ose rrnjs katrore t
numrit. Pr t ngritur numrin n fuqi, prdoren operatori i fuqis ( ^ - quhet Caret
dhe shtypet me Shift+6 n tastier).
88
Funksioni i aplikuar
Katrori i numrit
Rrnja katrore e numrit
Pjestimi i realizuar prmes eksponentit negativ.
Bashkimi i stringjeve
VB prkrah edhe nj operator pr string, operatorin e bashkimit, lidhjes
(Concatenation Operator). Operatori kombinon dy ose m shum ndryshore
tekstuale (String) ngjashm si vepron operatori i mbledhjes pr dy ose m shum
numra. Operatori i bashkimit paraqitet me simbolin (& - Ampersand). Kur
kombinohen dy stringj me kt operator, stringu i dyt i shtohet drejtprdrejt
stringut t par. Rezultati i fituar sht string m i gjat, q prmban t dy stringjet
burimore. Kto mund t jen string valid i farro lloji, si variabla string, shprehje
literale (t shtypura nn thonjza) ose funksione q kthejn string. Shenja & mes dy
stringjeve tregon se VB do t bashkoj (lidh) dy stringjet. Shenja & duhet t
shtohet duke u prcjellur me nj zbrastir. Mund t bashkohet nj numr i
fardoshm i stringjeve, vetm duhet t vendoset shenja e bashkimit mes tyre.
Bashkimin e stringjeve e bn edhe operatori + , kur vendoset mes dy
ndryshoreve string, por preferohet prdorimi i shenjs & pr t mos shkaktuar
konfuzion.
Str = txtEmri.text & & Mbiemri.text Str = Emri Mbiemri
Str = Koha e & bukur
Str = Koha e bukur
' Rezultati 4.
89
Urdhrat pr kushtzim
Shumica e urdhrave n program, jan urdhra pr ndarjen e vlerave, por urdhrat
tjer jan shum t rndsishm pr ekzekutimin e detyrave m komplekse. Kta
urdhra njihem me emrin urdhrat kontrollues. Pa urdhrat kontrollues, nuk mund
t shkruhen programe fleksibile, por programi do t fillonte me ekzekutimin e
urdhrit t par dhe do t vazhdonte me ekzekutimin e njpasnjshm t urdhrave
deri n fund t programit, kur edhe do t ndalej. Nj prej llojeve t urdhrave
kontrollues jan urdhrat pr kushtzim. Urdhrat pr kushtzim prdoren pr t
kontrolluar ekzekutimin e programit n pjes t caktuara t programit, varsisht
prej kushteve t caktuara gjat ekzekutimit t ndonj urdhri. Urdhrat pr
kushtzim, njihen edhe si urdhra pr degzim, sepse bjn degzimin e programit,
varsisht prej kushteve t hasura. Dy tipet kryesore t urdhrave pr kushtzim
jan: If... Then (Nse.. ather) dhe Select Case (Zgjedhe rastin).
Urdhri IF (Nse) prdor operatort pr krahasim, pr t testuar vlerat e caktuara.
Operatort pr kushtzim ose pr krahasim paraqesin kushte t testimit q
rezultojn me vler t Sakt ose t Pasakt (True, False). Prmes tyre, mund t
inicohen llogaritje komplekse. M s shumti prdoren n kombinim me kontrollat e
brendshme CheckBox (Kutia pr zgjedhje, verifikim, aktivizim) dhe OptionButton
(Tasti Opcional), t cilat do t shpjegohen pas urdhrave pr kushtzim.
Kushti paraqet fardo urdhri ose funksioni q jep rezultatin True. Kushti mund t
jet krahasim i variabls me ndonj literal, variabl tjetr ose funksion; variabl q
prmban vlern True ose False apo Funksion q kthen vlern True ose False.
90
Urdhri If...Then...Else
Ndonj her paraqitet edhe rasti kur nse plotsohet kushti ekzekutohet nj udhr
(ose disa urdhra), e nse nuk plotsohet kushti ather ekzekutohet nj urdhr
tjetr (ose disa urdhra tjer).
Sintaksa e urdhrit sht:
If Kushti Then
Urdhrat q ekzekutohen nse rezultati sht True
Else
Urdhrat q ekzekutohen nse rezultati sht False
End If
programi ekzekuton urdhrat deri te urdhri Else dhe pastaj kalon n urdhrin pas
End If. Nse kushti sht False, programi anashkalon urdhrat para Else dhe fillon
ekzekutimin e urdhrit t par pas Else.
Nse dshironi q kodi t ekzekutohet vetm pr pjesn False t urdhrit, ather
mund t vendosen urdhrat vetm pr pjesn ndrmjet Else dhe End If. Nuk sht e
domosdoshme t vendoset ndonj urdhr ndrmjet If dhe Else:
If x <= 1 then
Else
Debug.Print "X nuk sht m i vogl se 1"
End If
Dritarja Immediate
Kur t ekzekutohen programet prej dritares s VB, gjat modit t ekzekutimit n
pjesn e poshtme t ekranit paraqitet edhe dritarja Immediate (e drejtprdrejt, e
menjhershme). N t mund t shtypen rezultatet e ndyshme prmes urdhrit
Debug.Print, me qllim t testimit t rezultateve dalse t programit. Ajo mund t
aktivizohet q t shihet edhe n modin e dizajnimit, prmes menys: ViewImmediate Window. Pr testimin e kodit paraprak, mjafton q t insertojm nj
tekst boks n form, ta klikojme dy her, dhe pr t t shkruajm kodin vijues:
Private Sub Text1_Change()
x = Text1.Text
If x <= 1 Then
Else
Debug.Print "X nuk sht m i vogel se 1"
End If
End Sub
dhe t ekzekutojm programin. Nse n teks boks shkruajm vler m t vogl ose
baraz me 1, nuk ndodh asgj. Nse shtypim vler m t madhe se 1, ather n
dritaren Immediate, do t shtypet teksti "X nuk sht m i vogel se 1" .
92
Urdhrat e ndrlidhur If
Ndonjher paraqitet nevoja pr ndrlidhjen e kushteve ose pr paraqitjen e kushtit
brenda kushtit, si n rastet vijuese:
If kushti1 Then
Urdhri1
Else
If Kushti2 Then
Urdhri2
Else
If Kushti3 Then
Urdhri3
Else
Urdhri4
End if
End if
End if
93
94
Urdhri If i shumfisht
Pr vlersimin e kushteve t shumfishta, mund t prdoret edhe struktura
If...Then...ElseIf (Nse...ather...prndryshe-nse), prmes s cils mundsohet
testimi i numrit t fardoshm t kushteve t njpasnjshme, nse nuk plotsohet
kushti paraprak. Pr shembull pr vlersimin e notave t nxnsve, n baz t
numrit t pikve n testin me 12 pyetje, do t mund t prdoret forma vijuese:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Kodi fillon me testimin e kushtit t par n rreshtin e par If. Nse kushti
plotsohet (rreshti 1) ekzekutohet urdhri n vijim (rreshti 2) dhe programi kalon
n urdhrin pas urdhrit End If (rreshti 19). Nse kushti i par nuk plotsohet,
programi vazhdon te kushti i par ElseIf (rreshti 3) dhe vlerson kushtin. Nse
plotsohet kushti ekzekutohet urdhri pas ElseIf (rreshti 4) dhe programi prsri
kalon pas urdhrit End If (rreshti 19), prndryshe vazhdon me testimin e kushtit
tjetr ElseIf. Testimi vazhdon me ElseIf deri n kushtin e fundit (rreshti 15). Nse
as ai nuk plotsohet, ather vazhdohet me Else (rreshti 17) dhe ekzekutohet
urdhri pr rastin kur nuk plotsohet asnjri prej kushteve (If dhe ElseIf).
95
Prmes ksaj strukture identifikohet variabla q vlersohet dhe pastaj prmes seris
s rasteve t ndryshme (urdhrat Case) specifikohen vlerat e mundshme t saj.
Nse vlera q testohet i prgjigjet vlers s urdhrit Case, ather ekzekutohet
urdhri prkats. Nse nuk i prgjigjet vlera testuese, programi vazhdon
ekzekutimin me urdhrin Case t ardhshm.
Testimi i vlers pr testim mund t bhet n baz t vlers ose rangut t vlerave,
varsisht prej asaj se far variable testohet. P,sh, kemi rastet e testimit pr vler t
barabart:
Select Case x%
Case 1:
Debug.print "Kemi vlern 1"
Case 2:
Debug.Print "Kemi vlern 2"
End Select
96
Kur nevojitet t bhet zgjerimi i opcioneve pr ndonj rast tjetr (pr shembull pr
notn 5+, nse ka 12 prgjigje t sakta), mjafton t shtohet Case dhe urdhri
prkats pr t.
Kalimi i detyrueshm
N gjuht programuse t pastrukturuara, kalimi n pjes t ndryshme t programit
sht br prmes urdhrit pr kalim t detyrueshm n nj urdhr t caktuar t
programit, prmes urdhrit GoTo (Shko tek). Kalimi i detyrueshm ose si njihet
edhe kalimi pa kusht nuk preferohet t prdoret, por megjithat Visual Basic-u e
prkrah prdorimin e urdhrit GoTo n program. N kt rast prdoren Label-at
97
Rangu1:
Labela Rangu1
Vlera = "Vler m e madhe ose baraz me 1 dhe m e vogl ose baraz se 100"
GoTo Rezultati
Rangu2:
Labela Rangu2
Vlera = "M e madhe se 100 dhe m e vogl se 200"
GoTo Rezultati
Jasht:
Labela Jasht
Vlera = "Jasht rangut"
GoTo Rezultati
Rezultati:
Labela Rezultati
txtRezultati.Text = Vlera
End Sub
98
Kontrolla CheckBox
Kontrolla e tipit CheckBox (fusha pr zgjedhje) mund t jet e zgjedhur (e kyqur)
ose e pa zgjedhur (e kyqur). Kur sht e zgjedhur, n t paraqitet shenja e
zgjedhjes. Kur n form ka dy e me shum kontrolla CheckBox ather mund t
aktivizohet (zgjedhet) nj ose disa prej tyre apo t mos zgjedhet asnjra. Pra lejohet
zgjedhja (kyqja) e njkohshme e disa kontrollave t tipit CheckBox. Aktivizimi ose
zgjedhja e tyre bhet prmes mausit ose prmes tastiers. Prmes mausit, mjafton
t klikohet brenda kontrolls dhe ajo do t aktivizohet. Prmes tastiers, aktivizohet
ose deaktivizohet, prmes tastit t hapsirs (SpaceBar), n momentin kur kontrolla
ka fokusin. Sa her q t klikohet n t, ajo e ndryshon vlern, gjegjsisht
kyqet/kyqet (njsoj si ndrprersi i dritave t dhoms q e ndryshon gjendjen sa
her q shtypet). Gjendjen e kontrolls CheckBox e kontrollon tipari i saj Value
(Vlera), q ka optionet: 0 Unchecked (E pakyqur), 1-Checked (E kyqur) dhe
2 Grayed (E hirsuar, me ngjyr hiri, tregon se nuk sht n dispozicion). Tipari
Value prcaktohet n modin e dizajnimit dhe kur t ekzekutohet programi, gjendja
fillestare e kontrolls sht ashtu si sht prcaktuar prej tiparit Value. N modin e
ekzekutimit, prmes tiparit Value dhe vlers s tij ( 0 Unchecked, ose me n kod
me vlern vbUnchecked dhe 1 Checked, ose n kod me vlern vbChecked) e
kontrollojm gjendjen e kontrolls CheckBox dhe ndikimin e saj n pjesn tjert t
programit.
Shembull:
99
100
Shembull:
Insertojm n form dy kontrolla t tipit CheckBox, nj kontroll t tipit TextBox
dhe nj kontroll t tipit CommandButton, si n fig 2.6.
Kontrolla OptionButton
Kontrolla OptionButton (Tasti opcional) paraqet nj opcion q mund t kyqet ose t
kyqet. Nse n form ka disa kontrolla t tipit OptionButton ather n nj
moment mund t jet aktive vetm njra prej tyre dhe patjetr njra prej tyre duhet
t jet e zgjedhur. Kontrollat e tipit OptionButton jan prjashtuese (nse zgjedhet
njra, deaktivizohet tjetra). Nse paraqitet nevoja pr disa grupe t veanta t
tasteve opcionale pr shtje t ndryshme, ather mund t bhet grupimi i tyre, n
kuadr t kontrollave Frame (Korniz) ose PictureBox (Fush pr foto, shpjegohet
m von). Nse bhet ndarja n grupe t veanta t kontrollave OptionButton,
ather mund t aktivizohet vetm nga nj kontroll n grup.
Kontrolla e tipit OptionButton gjithashtu zgjedhet me maus, mirpo nse sht e
zgjedhur, ather kliku i prsritur n t nuk ka ndikim.
Prmes tastiers, mund t bhet ndryshimi i gjendjes s kontrolls duke shtypur
tastin SpaceBar (Hapsirn) n tastier, n momentin kur kontrolla e ka fokusin.
101
Shembull:
N nj form q prdoret pr regjistrimin e studentve, prveq fushave tjera t
zakonshme (Emri, Mbieri, Numri Ideksit, etj) n nj pjes t forms mund t bhet
edhe insertimi i nj fushe opcionale pr gjinin (Fig. 2.7).
Insertojm dy kontrolla t tipit
OptionButton me tiparet vijuese:
Name: optM, Caption: Mashkull
dhe Name: optF, Caption: Femr.
Gjithashtu insertojm edhe nj
fush tekstuale (Tekst-boks),
txtDalja, t ciln prmes kodit
vijues, e kontrollojn tastet
opcionale (optM dhe optF).
Fig. 2.7 Kontrolla e tipit OptionButton
Private Sub optM_Click()
txtDalja.Text = "Mashkull"
End Sub
Private Sub optF_Click()
txtDalja.Text = "Femr"
End Sub
Kontrolla Frame
Kontrolla Frame (korniza) shrben si korniz prmbledhse (kontejner,
barts) pr grupimin e disa fushave t tipit CheckBox ose OptionButton.
Ajo mund t prdoret edhe vetm pr qllime estetike, pr ndarjen e formave n
trsi t vogla funksionale. Nse n form insertohet nj korniz (Frame) e pastaj
n t vendosen kontrolla tjera, ather ajo shrben si barts i tyre dhe nse
zhvenoset koriniza, do t zhvendosen edhe t gjitha kontrollat q ndodhen brenda
kufinjve t saj.
Pr t insertuar disa kontrolla t tipit CheckBox ose OptionButton brenda nj grupi,
s pari insertohet nj kontroll e tipit Frame e pastaj n t insertohen kontrollat e
102
103
104
Unaza For...Next
Unazat pr numrim, njihen si unaza For...Next (Pr...Tjetri) sepse unaza fillon me
urdhrin For dhe prfundon dhe urdhrin Next. Sintaksa e unazs For...Next, sht
si vijon:
For VariablaNumrator = VleraFillestare To VleraPerfundimtare [Step Hapi]
urdhrat
Next [VariablaNumrator]
105
Shembuj:
Dim i as Integer
For i = 1 To 10
Debug.Print Vlera momentale e i sht: i = & i
Next i
do t shtypet me rradh:
Vlera momentale e i sht: i = 10
Vlera momentale e i sht: i = 9
...
Vlera momentale e i sht: i = 1
Duhet pasur kujdes n rastet kur vlera e numratorit prdoret brenda unazs. Kurr
nuk duhet br resetimin e vlers s numratorit brenda unazs, sepse kjo do t
shkaktonte unaz t pafund, si p.sh., q do t ndodhte n rastin vijues:
For i = 0 to 4
urdhri
i=0
ky rresht shkakton unaz t pakufishme
Next i
Ndrprerja e unazs s pafund
Nse rastsisht ekzekutohet programi, n t cilin keni ndonj unaz t pafund, ndrprerja e
programit bhet prmes kombinimit: Ctrl+Break, n tastiere.
106
Si shihet, kemi dy forma unazs, Do ... While, q dallojn pr nga pozita e kushtit,
n fillim apo n fund t unazs.
107
Unaza Do ... hile (Bj ... Gjersa), si tregon edhe emri, vepron deri sa kushti i
caktuar sht True (i sakt). Pr shembull, pr t rritur vlern pr 1 gjersa vlera
sht m e vogl se 10 do t prdorej kodi vijues:
i=1
Do While i <= 10
Debug.Print " I = " & i
i=i+1
Loop
108
Edhe pr unazn Do ... Until, si pr unazn Do ... While kemi edhe opcionin:
Do
Urdhri/at
Loop Until kushti
Pr shembullin e njjt, si pr unazat Do ... While, kemi:
i=1
Do Until i > 10
Debug.Print " I = " & i
i=i+1
Loop
Gjegjsisht:
i=1
Do
Debug.Print " I = " & i
i=i+1
Loop Until i > 10
Unazat Do ekzekutohen s paku njher nse testohen n fund.
Si u pa deri m tani, testimi i kushtit bhet n fillim ose n fund t unazs. Nse kushti
vendoset n rreshtin e njjt me fjaln e rezervuar Do (n fillim t unazs), kushti vlersohet
para se t ekzekutohet unaza. Nse kushti vendoset n rreshtin e njjt me fjaln e
rezervuar Loop (n fund t unazs), ather unaza ekzekutohet s paku nj her para se t
vlersohet kushti, sepse testimi i kushtit bhet tek pas ekzekutimit t par.
Unazat Do ... While bjn ekzekutimin e urdhrave deri sa kushti sht True
(plotsohet kushti), ndrsa unazat Do ... Until, bjn ekzekutimin e urdhrave deri
sa kushti sht False (nuk plotsohet kushti). Testimi pra bhet pr gjendje t
kundrta, <= dhe >, ose >= dhe <.
109
Ndrthurrja e unazave
N disa raste, duhet br prsritjen e disa urdhrave brenda prsritjes s nj
urdhri. Kjo bhet duke shkruar urdhrat pr unaz brenda unazs dhe njihet si
Unaz brenda Unazs ose Unaza t ndrthurrura. Unazat e tilla prdoren zakonisht,
pr prshkrimin e matricave ose vargjeve dydimensionale. Pr shembull, nse
dshirojm q brenda do kalimi npr unazn i, t bjm t gjitha kalimet pr
unazn j, ather pr unazat For ... Next dhe Do ... While, prdoren format vijuese:
Private Sub Form_Load()
For i = 1 To 3
Debug.Print "Vlera momentale e i sht: i = " & i
For j = 1 To 3
Debug.Print "Vlera momentale e j sht: j = " & j
Next j
Next i
End Sub
gjegjsisht:
Private Sub Form_Load()
i=1
Do
Debug.Print " I = " & i
j=1
Do
Debug.Print " J = " & j
j=j+1
Loop While j <= 3
i=i+1
Loop While i <= 3
End Sub
Shtypet i = 1 dhe j = 1, j=2, j=3, pastaj: i=2 dhe j=1, j=2, j=3, e kshtu me rradh.
110
Vargjet
Variabla paraqet nj emr t cilit Visual Basic-u mund tia ndaj nj vler.
Bashksia e variablave t ngjashme, n t ciln secila ka emrin e njjt dhe t gjitha
jan t tipit t njjt dhe t cilave Visual Basic-u mund tua ndaj listn e vlerave,
paraqet varg (Variabl Varg).
Elementi i par i vargut, zakonisht ka Indeksin 0 (pozitn zero). Vargjet mund t
jen t madhsive t ndryshme, e gjithashtu mund t krijohen vargje t cilat nuk
kan fare elemente, por kan mundsin e krijimit t mvonshm t tyre.
Deklarimi i vargjeve
Deklarimi vargut mund t bhet ngjashm si deklarimi i variablave t thjeshta ose
prmes fjals s rezervuar To.
Pr t deklaruar vargun n form t thjesht, prdoret sintaksa vijuese:
Dim|Public|Private EmriiVargut(Indeksi) As Tipi
- Dim, Public dhe Private jan fjalt e rezervuara t VB, t cilat deklarojn vargun
dhe domenin e tij. Nse prdoret Dim, vargu sht privat pr procedurn n t ciln
sht deklaruar. Public, e bn vargun t dukshm pr cilndo pjes t programit
dhe Private (brenda seksionit General t forms ose modulit) e bn vargun t
dukshm pr formn ose modulin n t cilin sht deklaruar. Nse prdoret Dim
brenda procedurs s modulit, vargu do t jet n dispozicion vetm pr procedurat
prbrenda modulit.
- EmriVargut sht emri q i ndahet vargut.
- Indeksi sht numri i elementit t fundit t vargut. Mbani mend se elementi i par
i vargut sht zakoisht zero, kshtu q vargu me indeks 5 do t ket 6 elemente.
Indeksi paraqet dimenzionin (madhsin) e vargut.
- As sht fjala e rezevuar e VB q tregon deklarimin e tipit
- Tipi sht tipi i t dhnave, si Integer, Double, etj.
Kshtu, pr t deklaruar nj varg t numrave t plot, me pes elemente, do t
kemi:
Dim Vargu1(4) as Integer
111
Vargu1 (3) = 0
Vargu1 (4) = 8
Ridimensionimi i vargut
Edhe pse madhsia e vargut definohet me rastin e deklarimit t tij, ka mundsi q t
ndryshohet madhsia e vargut edhe m von. Kur ndryshohet numri i elementeve t
vargut, bhet ridimensionimi i tij. Pr t br ridimensionimin, duhet prdorur
sintaksn vijuese:
ReDim [Preserve] ArrayName(Subscript) As DataType
- ReDim - sht fjala e rezervuar e Visual Basic-ut e cila tregon se vargu sht duke
u ridimensionuar.
- Preserve - sht fjal e rezervuar opcionale q bn ruajtjen e t gjitha vlerave
ekzistuese t elementeve t vargut, para ndryshimit t dimensionit t tij. Nse nuk
112
Vargjet shumdimensionale
Prveq vargjeve njdimensionale, si ishin vargjet e mparshme, n Visual Basic
mund t krijohen edhe vargje shumdimensionale, me deri n 60 dimensione.
Zakonisht mjafton t prdoren vargjet dy-dimensionale (matricat) ose eventualisht
vargjet tre-dimensionale, kurse dimensionet m t larta, ka pak gjasa q t
prdoren.
Vargu dy-dimensional paraqitet si tabel ose si rrjet e rreshtave dhe kolonave.
Secila qelul e rrjets ka lokacion t definuar prmes numrit t kolons dhe numrit
t rreshtit.
Pr t krijuar varg dy-dimensional, prdoret sintaksa vijuese:
Dim|Public|Private EmriVargut(IndeksiKolones, IndeksiRreshtit) As Tipi
Ku:
- Dim, Public dhe Private jan fjal t rezervuara t VB q deklarojn vargun dhe
domenin e tij. Nse prdoret Dim, vargu sht privat pr procedurn ku sht
deklaruar. Public, bn q vargu t shihet prej kudo n program, kurse Private
(brenda General Section t forms ose modulit) bn q t shihet vetm brenda
forms ose modulit ku sht deklaruar. Prdorimi i Dim brenda modulit,
automatikisht bn q vargu t jet n dispozicion kudo n program, njsoj sikur t
ishte prdorur deklarimi Public.
- EmriVargut sht emri i vargut
- IndeksiKolones sht numri i kolons s fundit t vargut
- IndeksiRreshtit sht numri i rreshtit t fundit t vargut
- As fjala e rezervuar q tregon deklarimin e tipit
113
114
115
Vargjet e kontrollave
N Visual Basic mund t krijohen vargje t t gjitha tipeve t t dhnave.
Gjithashtu mund t krijohen edhe vargje t kontrollave. Vargjet e kontrollave jan
nj karakteristik e VB q i japin gjuhs efikasitet dhe fuqi. Mund t prdoren pr
t krijuar procedura t prbashkta pr t gjitha kontrollat n vargun e kontrollave.
Gjithashtu mund t prdoren pr t shtuar ose larguar kontrollat dhe format n
program, n mnyr dinamike, gjat ekzekutimit. T gjitha kontrollat n vargun e
kontrollave kan tiparin Index (Indeksi) q prdoret pr t identifikuar kontrolln e
veant n vargun e kontrollave.
LblMuaji( )
TxtMuaji( )
Tipari
Caption
Heigth
Width
Index
Caption
Left
Top
Height
Width
Index
Text
Top
Left
Height
Width
Vlera
Muajt e vitit
4500
2800
0
Jan
500
250
300
500
0
(zbrastir)
250
1000
300
1000
118
Pr t krijuar vargun e
kontrollave n modin e
ekzekutimit prdoret urdhri
Load. Prcaktojm tiparet Top
dhe Height t kontrollave q
krijohen, pr t prcaktuar
pozitat e tyre n form. Pr t
paraqitur shkurtesn pr emrat
e muajve n gjuhn angleze,
do t prdorim stringun
EmrateMuajve dhe funksionin
Mid (Mesi) i cili shrbn pr
nxjerrjen e disa karaktereve t
mesme prej nj stringu.
119
Kontrolla PictureBox
Kontrolla PictureBox (boksi, fusha pr fotografi) prdoret pr paraqitje t
grafiks ose tekstit por shrben edhe si bartse e kontrollave tjera, si p.sh
tasteve opcionale (OptionButton).
Kontrolla PictureBox mund t paraqes grafik t tipit bitmap (*.bmp), metafile
(*.wmf), ikonat si dhe fajllat JPEG (*.jpg) dhe GIF (*.gif). Teksti i shkruar
paraqitet n PictureBox prmes metods Print. N modin e dizajnimit mund t
prcaktohet fajlli i cili do t paraqitet n kontrolln PictureBox, duke prcaktuar
tipatin Picture. Kur klikohet shenja n skajin e djatht t tiparit Picture ( ), hapet
dritarja pr dialog Load Picture, prmes s cils zgjedhim ndonj prej fajllave q i
kemi n dispozicion, pr ta paraqitur n kuadr t PictureBox-it.
picFoto1.Picture = LoadPicture("C:\Fotot\Kompjuteri.bmp")
121
End Sub
122
Kontrolla Image
Kontrolla Image (imazhi, figura), s bashku me kontrolln Shape (Forma, trajta,
modeli) dhe Line (Viza), t cilat do t shpjegohen n vazhdim, njihen edhe si
kontrolla t lehta, sepse prkrahin vetm nj pjes t tipareve, metodave dhe
procedurave q i ka kontrolla PictureBox. Pr kt arsye, ato krkojn m pak
resurse t sistemit dhe paraqiten m shpejt se kontrolla PictureBox.
Kontrolla Image prdoret pr paraqitje t grafiks. Mund t paraqes
grafik t tipit, bmp, jpg, ikona, metafile, etj.
Kontrolla Image sht e ngjashme me kontrolln PictureBox por prdoret vetm
pr paraqitje t fotove dhe nuk ka mundsi t prdoret si kontejner (barts) pr
kontrolla t tjera si dhe nuk prkrah metodat e avancuara t kontrolls PictureBox.
Fotografit vendosen n kontrolln Image njsoj si n PictureBox. N kohen e
dizajnimit prmes tiparit Picture zgjedhet fajllin prkats, kurse n kohn e
ekzekutimit prdoret funksioni LoadPicture.
Kur insertohet s pari n form kontolla Image paraqitet vetm me kornizn me
vija t ndrprera. Prcaktimi i madhsis s kontrolls Image ndryshon prej asaj t
kontrolls PictureBox. Kontrolla Image ka tiparin Stretch (trheqe, shtrije,
zmadhoje), derisa PictureBox ka tiparin AutoSize. Kur pr kontrolln PictureBox
prcatkohet tipari AutoSize - True, ather kontrolla PictureBox ndryshon
madhsin dhe i prshtatet dimensioneve t fotografis. Nse tipari AutoSize
prcaktohet si False, ather fotografia prehet dhe n kontroll shihet vetm
pjesrisht. Sa i prket kontrolls Image, kur tipari Stretch prcaktohet si False
(vlera standarde), ather kontrolla ndryshon madhsin dhe i prshtatet madhsis
s fotos. Kur tipari Stretch prcaktohet si True, bn q fotografia t ndryshoj
madhsin dhe t prshtatet me madhsin e kontrolls Image, gj q mund t bj
q fotografia t deformohet.
Kontrolla Image mund t prdoret pr krijimin e tasteve komanduese.
Kontrolla Image gjithashtu njeh ngjarjen Click, kshtu q mund t prdoret si tast
komandues. Kjo sht e prshtatshme pr krijimin e tasteve komanduese me
fotografi (Picture) n vend t teksteve (Caption). Grupimi i disa kontrollave Image
s bashku, n nj varg horizontal prgjat pjess s eprme t ekranit (zakonisht
brenda kontrolls PictureBox) u mundson shfrytzuesve krijimin e shiritit t
veglave npr aplikacione.
123
124
End Sub
Private Sub ImgFoto2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
Single)
imgFoto2.BorderStyle = 1
Text1.Text = "BorderSyle = 1 - FixedSingle"
End Sub
Private Sub ImgFoto3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
imgFoto3.Appearance = 1
Text1.Text = "Appearance = 1 - 3D"
End Sub
Private Sub ImgFoto3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
Single)
imgFoto3.Appearance = 0
Text1.Text = "Appearance = 0 - Flat"
End Sub
125
Kontrolla Line (Viza) sht e ngjashme me kontrolln Shape, por mund t vizatoj
vetm vija t drejta horizontale, vertikale ose t pjerrta. Pr t definuar me
precizitet poziten e vijs, prdoren tiparet X1, X2, Y1, Y2, t cilat paraqesin
koordinatat e pikave t skajshme (X1, Y1) dhe (X2, Y2).
Prparsit dhe t metat (kufizimet) e kontrollave grafike
Kontrollat Image, Line dhe Shape jan t prshtatshme pr krijimin e grafiks n
modin e dizajnimit. Ato krkojn m pak resurse t sistemit sesa kontrollat tjera t
Visual Basic-ut , gj q prmirson performansat e aplikacionit, Prparsi tjetr
sht se krijohet grafik me m pak kod se prmes metodave grafike (q i prkrah
PictureBox). Pr shembull, pr t vizatuar rrethin n nj form, mund t prdoret
metoda Circle ose kontrolla Shape. Metoda Circle krkon q rrethi t krijohet
prmes kodit n kohn e ekzekutimit, gjersa prmes kontrolls Shape thjesht
mund t vizatohet rrethi dhe t prcaktohen tiparet e tij n modin e dizajnimit.
Derisa kontrollat grafike jan t dizajnuara pr t maksimalizuar performansat
prmes krkesave minimale n aplikacion, ato e arrijn kt duke limituar tiparet
tjera t zakonshme pr kontrollat e Visual Basic-ut. Kontrollat grafike nuk mund t
paraqiten prmbi kontrollat tjera, prveq nse ndodhen brenda kontejnerit (si.
P.sh. n PictureBox), nuk mund t pranojn fokusin gjat kohs s ekzekutimit,
nuk mund t prdoren si kontejner pr kontrollat tjera dhe nuk kan tiparin hWnd.
Step
(x1, y1)
Step
126
Shpjegimi
Opcional. Shprehja objekt prcakton
objektin. Nse nuk definohet objekti, ather
supozohet se objekti sht Forma q
momentalisht ka fokusin.
Opcional. Fjala e rezervuar q specifikon se
koordinatat e piks fillestare jan relative
ndaj pozits momentale grafike t
prcaktuar me tiparet CurrentX dhe
CurrentY.
Opcionale. Vlera t tipit Single, q tregojn
koordinatat e piks fillestare t vijs ose
drejtkndshit. Tipari ScaleMode prcakton
njsin matse q prdoret. Nse nuk jepet,
viza fillon n pozitn e treguar me CurrentX
dhe CurrentY.
Opcionale. Fjala e rezervuar q specifikon
se koordinatat e piks s fundit jan
(x2, y2)
color
Pra, s pari jemi pozicionuar n pikn (1000, 500) dhe prej aty pastaj me
zhvendosjet relative djathtas pr vler pozitive dhe majtas pr vler negative pr
koordinatn e par dhe lart e posht pr koordinatn e dyt, vizatohet
drejtkndshi. Sikur t shypej vetm rreshti:
Line (1000, 500)-Step(3000, 1500), , B
127
128
InputBox
Normalisht, tekst-boksi prdoret pr t pranuar t dhnat, shpjegimet pr t cilat
jipen prmes Label-s. Ndonjher, kur nevojitet ndonj e dhn, por pa pasur
nevoj pr ta ruajtur at n ndonj tekst-boks t veant, e ndonjher edhe pr t
trhequr vrejtjen e shfrytzuesit prdoret InputBox-i.
Prmes urdhrit:
strEmri = InputBox(prompt, title)
N kt rast kthehet stringu i zbrazt. Edhe nse shtypet tasti OK pa shtypur fare
tekst n fushn prkatse, kthehet stringu i zbrazt.
Gjat shkruarjes s kodit, posa t shtypet fjala e rezervuar InputBox dhe t hapet
kllapa, automatikisht n ekran aktivizohet rreshti me shpjegime i cili prmban
129
N form insertojm nj
PictureBox (picRezultati) dhe nj
tast komandues (cmdEmri). Pr
tastin komandues shkruajm kodin
pr procedurn e ngjarjes
cmdEmri_Click. Kur t shtypet tasti
komandues Emri dhe Mbiemri
(cmdEmri) n ekran do t paraqitet
InputBox-i, (Fig. 2.12), i cili krkon
shtypjen e emrit dhe mbiemrit. Pasi
t shtypet emri dhe mbiemri,
shtypet tasti OK.
130
MsgBox
Pr shtypjen e rezultateve t prkohshme ose vrejtjeve t ndryshme n ekran,
ashtu q t trhiqet vrejtja e shfrytzuesve dhe t mbetet rezultati n ekran deri sa
t sigurohet q shfrytzuesi e ka lexuar at, prdoret MsgBox (Dritarja, boksi i
mesazhit), q sht n dispozicion si urdhr dhe si funksion. Forma e thjesht e
MsgBox-it (Fig. 2.15), paraqitet prmes urdhrit:
MsgBox Prompt, , Title
Vlera
0
1
2
3
4
5
64
0
256
512
16384
Prshkrimi
Paraqet vetm tastin OK.
Paraqet tastet OK dhe Cancel.
Paraqet tastet Abort, Retry, Ignore
Paraqet tastet Yes, No, Cancel
Paraqet tastet Yes, No
Paraqet tastet Retry and Cancel buttons.
Paraqet ikonn Information Message.
Tasti i par sht standard (Default)
Tasti i dyt sht standard (Default)
Tasti i tret sht standard (Default)
Shton tastin Help n MsgBox.
P.sh., prmes urdhrit: MsgBox "A sht rezultati i sakt?", vbYesNoCancel, "Rezultati",
do t paraqes MsgBox-in, si n fig. 2.16.
Pr secilin prej opcioneve t tasteve
komanduese, prmes kodit
definohen urdhrat prkats t cilt
varsisht prej prgjigjes s dhn
ekzekutojn urdhrat e caktuar n
program.
Fig. 2.16 MagBox-i me tastet opcionale
Shembull:
Krijojm formn si n fig. 2.16. Insertojm tastin komandues cmdRegjistro, labeln
lblEmri dhe tekst-boksin txtEmri. Pr kontrollat lblEmri dhe txtEmri definojm
tiparin Visible-False, ashtu q kur t ekzekutohet programi, fillimisht t mos shihen
(fig. 2.17b). Pastaj klikojm dy her n tastin komandues dhe kalojm n dritaren e
kodit, n procedurn e ngjarjes: cmdRegjistro_Click, strukturn e s cils veq e
prgarit vet programi, dhe shkruajm kodin vijues.
Private Sub cmdRegjistrimi_Click()
Dim Mesazhi, Stili, Titulli, Pergjegja, strEmri
lblEmri.Visible = False
txtEmri.Visible = False
132
133
Nse forma paraqitet si modale, kodi q pason urdhrin Show (shfaqe, paraqite)
nuk mund t ekzekutohet deri sa nuk mbyllet dritarja pr dialog. Nse forma
paraqitet si jomodale ather kodi pas urdhrin Show ekzekutohet automatikisht,
menjher pasi t paraqitet forma.
135
Leximi i t dhnave
T dhnat mund t mirren prej fajllave, prmes urdhrit Input #.
Input #filenumber, varlist
137
Shembull:
N nj projekt t ri, n form insertojm dy taste komandues dhe nj PictureBox
(Fig. 2.18).
Emrtojm kontrollat: picTabela,
cmdShtypja dhe cmdInput. Pr t
shtypur n tabel adresat dhe
numrat e shtpive do t deklarojm
dy variabla: Adresa - variabl e tipit
String dhe Numri, variabl e tipit
Single. T dhnat pr adres dhe
numr, prmes tastit Shtypja
Direkte (cmdShtypja) i shtypim
direkt prej programit, duke br
ndarjen e vlerave prmes programit.
Fig. 2.18 Forma pr shembullin me Input
Prmes tastit Leximi prej fajllit (cmdInput) t dhnat do ti lexojm prej fajllit:
C:\Temp\Adresat.txt, n t cilin kemi shtypur vetm nj rresht t tekstit:
Sheshi Nna Terez, 128
138
Shembull:
N fajllin C:\Temp\Notat.txt kemi shkruar tekstin si n vijim:
"Shpresa Berisha", 101, 9
"Albin Topi
", 101, 8
"Shpresa Berisha", 102, 10
"Albin Topi
", 102, 10
139
picTabela.Cls
picTabela.Print "Studenti", , "Lenda Numer", "Nota"
picTabela.Print
Open "C:\Temp\Notat.txt" For Input As #1 ' Hape fajllin.
Do While Not EOF(1) ' Unaza deri ne fund te fajllit
Input #1, Emri, NrLendes, Nota
picTabela.Print Emri, NrLendes, Nota
Loop
Close #1 ' Mbylle fajllin.
End Sub
i cili prdor funksionin EOF (End Of File Fundi i fajllit) pr t detektuar fundin
e fajllit. Visual Basic, n fillim dhe n fund t do fajlli njeh identifikatorin BOF
(Beginning of File Fillimi i fajllit) dhe EOF (End Of File).
Kshtu prmes unazs, n do hap t saj lexojm t dhnat prej fajllit prmes
urdhrit Input # dhe i shtypim prmes picTabela.Print (Fig. 2.19b).
N fund, me Close # mbyllim fajllin.
Kur hapet fajlli me Open, kursori vendoset n fillim t fajllit dhe fillon leximin. Me
secilin urdhr t leximit, lexon numrin e specifikuar t variablave. Nse fajlli
mbyllet me Close dhe hapet prsri pr lexim, ather prsri leximi fillon prej
fillimit.
Pr t pastruar tabeln, pr t
shtypur titujt e fushave dhe pr t
shtypur rreshtin e zbrazt, kemi
prdorur tre urdhrat
picTabela.Print n fillim t kodit
pr t dy tastet komanduese. Ndarja
e variablave me presje shkakton
zhvendosjet pr nga 14 kolona
(Vler e predefinuar n Visual
Basic). Pr shtypjen pa distanc,
pr ndajre t variablave t
njpasnjshme prdoret pikpresja
(;).
Fig. 2.19b Rezultati pr rastin e dyt
140
Leximi nga fajlli mund t bhet edhe duke lexuar numr t caktuar karakteresh,
prmes funksionit Input (n #NrFajllit), ku prej fajllit me numr NrFajllit lexohen n
karaktere.
T dhnat q lexohen prej fajllit mund t prdoren edhe pr lloagritje t ndryshme,
nse jan n pyetje vlerat numerike. P.sh., nse dy vlera numerike lexohen prej
fajllit dhe u ndahen variablave intX dhe IntY:
Input #1, intX,intY
PicRezultati.Print intX*intY
141
dhe n fund gjithashtu mbyllet prmes Close #NrFajllit. Nse fajlli hapet me Output,
kursori vendoset n fillim t fajllit (BOF) dhe bhet rimbushja e fajllit, pra
prmbajtja e vjetr fshihet. Me Append, kursori vendoset n fund t fajllit (EOF)
dhe vazhdon m mbushjen e mtutjeshme t fajllit, pa i dmtuar t dhnat e
mparshme.
Shembull:
N kt shembull, s pari do t mbushim fajllin me t dhna, e pastaj do t lexojm
t dhnat prej tij. N formn e projektit t ri, insertojm kontrollat si n Fig. 2.20.
142
143
145
146
T gjitha rekordet n fajllin me qasje t rastit kan gjatsi t njjt. Gjatsia mund
t jet cilido numr ndrmjet 1 dhe 32767.
Shembull:
Insertojm n form, kontrollat si
n fig. 5.5: lblEmri, lblMbiemri,
lblVendlindja, lblMosha, txtEmri,
txtMbiemri, txtVendlindja,
txtMosha, cmdRegjistroje,
cmtListo, cmdDalja dhe picLista.
N fushat tekstuale do ti japim t
dhnat t cilat me ant t tastit
komandues cmdRegjistro, i
regjistrojm n fajllin me qasje t
rastit. Pastaj me an t tastit
cmdListo e shfletojm prmbajtjn
e fajllit n kontrolln picLista (t
tipit PictureBox). Mbylljen e fajllit
dhe t programit e bjm me an t
tastit komandues cmdDalja.
Kodi pr kt shembull sht si
vijon:
Fig. 5.5 Fajlli me qasje t rastit
Private Type Studentet
'Definojm Variabln(Rekordin) Studentet
Emri As String * 15
Mbiemri As String * 15
Vendlindja As String * 20
Mosha As Integer
End Type
Private Sub Form_Load()
Dim Studenti As Studentet
'Deklarojm variabln e tipit Studentet
Dim NumriRekordit As Integer
Form1.Height = 3750
'Gjatsia fillestare e forms
'Hapja e fajllit me qasje t rastit
Open "C:\Temp\Studentet.txt" For Random As #1 Len = Len(Studenti)
NumriRekordit = 0
End Sub
Private Sub cmdRegjistroje_Click()
'Shkruaj rekordet n fajllin Studentet.txt
Dim Studenti As Studentet
147
148
Formatizimi i shtypjes
Rezultatet e shtypura n ekran (n kontroll PictrueBox) mund t formatizohen,
sepse do rresht i kontrolls PictureBox mund t konsiderohen si i ndar n zona
me nga 14 karaktere, ku gjersia e secils pozit sht proporcionale me gjersin
mesatare t karakterit t fontit t prdorur.
Nse gjat shtypjes me urdhrin Print elementet ndahen me pikpresje (;) ato
shtypen njra pas tjetrs. Nse n vend t pikpresjes vendoset presja (,) ather
elementet shtypen (paraqiten) n zona t njpasnjshme.
Shembull:
N form insertojm nj PictrureBox (picRezultati) pr t ciln zgjedhim fontin
Courier dhe tastin komandues Shtypja. Pr tastin komandues shkruajm
procedurn e ngjarjes cmdShtypja_Click:
Private Sub cmdShtypja_Click()
PicRezultati.Cls
picRezultati.Print "Mesojm", "Visual", "Basic"
picRezultati.Print "123456789012345678901234567890123456789"
picRezultati.Print "Mesojm "; "Visual "; "Basic"
End Sub
Funksioni Tab
Formatizimi i shtypjes mund t bhet edhe prmes funksionit Tab(n), i cili
elementin q shtypet (menjher pas funksionit Tab) e zhvendos n pozitn e n-t
t rreshtit.
Pr shembull, nse n shembullin paraprak, shtojm nj tast komandues Tab
(cmdTab, Fig. 2.22) dhe pr t shkruajm kodin vijues:
149
150
Shtypja n Printer
Shtypja e t dhnave dhe rezultateve n letr prmes shtypsit (Printerit) bhet n
mnyr pak a shum t njjt me shtypjen n kontrolln PictureBox. Visual Basicu e trajton shtypsin si nj objekt me emrin Printer. Nse duhet shtypur n letr
nj string ose nj vler numerike me emrin VarShprehja, ather urdhri:
Printer.Print VarShprehja
Disa nga urdhrat e dobishm dhe t prshtatshm pr shtypje n printer jan dhn
n tabeln vijuese:
Urdhri
Printer.Print NePage
Prdorimi
Pr t filluar shtypjen n faqe t re
Form1.PrintForm
Printer.KillDoc
Printer.EndDoc
Printer.ScaleHeight, Printer.Scaleidth
Printer.Orientation
Printer.CurrentX, Printer.CurrentY
Printer.DeviceName
151
Next
End Sub
152
153
Objekti FileSystemObject
Objekti FileSystemObject ofron qasje n sistemin e fajllave t kompjuterit.
Sintaksa e tij sht:
Scripting.FileSystemObject
Kopjon tw gjith fajllat e tipit (*.doc) nga folderi MyDocuments n folderin Temp.
Ngjashm, urdhri pr kopjim t folderit:
object.CopyFolder source, destination[, overwrite]
154
155
Set fc = f.SubFolders
For Each f1 In fc
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox "Nnfolderat e folderit: '" & folderspec & "' jan: " _
& vbCrLf & s, vbInformation, "ShowFolderList"
End Sub
Prmes kodit vijues fitohet objekti File dhe shikohet nj prej tipareve t tij:
DateCreated (data e krijimit):
Sub ShowFileInfo(filespec) 'filespec - Specifikimi i fajllit
'filespec - ("C:\Temp\Pyetjet.txt")
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(filespec)
s = f.DateCreated
MsgBox "Fajlli: '" & filespec & "' sht krijuar m: " & s _
, vbInformation, "ShowFileInfo"
End Sub
'Krijo fajllin
'Shkruaj n t
156
Metoda OpenAsTextStream
Metoda OpenAsTextStream hap fajllin e specifikuar dhe kthen objektin
TextStream i cili mund t prdoret pr t lexuar, shkruar ose shtuar tekstin n fajll.
Sintaksa:
object.OpenAsTextStream([iomode, [format]])
Prshkrimi
Object
Iomode
Format
Konfigurimi
Argumenti imode mund t ket vlerat vijuese:
Konstanta
Vlera
Prshkrimi
ForReading
ForWriting
ForAppending
Vlera
Prshkrimi
TristateUseDefault
TristateTrue
TristateFalse
Sub TextStreamTest
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fs, f, ts, s
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CreateTextFile "test1.txt"
'Create a file
Set f = fs.GetFile("test1.txt")
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write "Jungjatjeta"
ts.Close
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
s = ts.ReadLine
MsgBox s
ts.Close
End Sub
158
159
Funksionet numerike
Disa nga funksionet e brendshme numerike t Visual Basic-ut jan: Sqr, Int,
Round. Nse konsiderojm se kemi dhn shprehjen: Y=Funksioni(X), ather X
sht vlera hyrse, kurse Y vlera dalse, gjegjsisht Rezultati i funksionit. N
tabeln vijuese do t japim disa shembuj pr kto funksione.
Funksioni
Sqr(9)
Sqr(0)
Sqr(20)
Sqr(-4)
Rezultati
3
0
4.4721359
Gabim
Funksioni
Int(2.8)
Int(3)
Int(-3.8)
Int(5.3)
Rezultati
2
3
-4
5
Funksioni
Round(2.7)
Round(2.317,2)
Round(2.317,1)
Round(-3.8)
Rezultati
3
2.32
2.3
-4
String funksionet
Disa prej funksioneve t zakonshme pr manipulim me variablat e tipit string jan:
Funksioni
Prshkrimi
Chr(Int)
Len(Str)
Mid(Str,i,n)
Left(Str,n)
Right(Str,n)
String(n, Str)
StrReverse(Str)
Trim(Str)
LTrim(Str)
RTrim(Str)
StrRezultati =
Funksioni(Str)
Chr(65)
strRezultati
Len(Prishtina)
Mid(Prishtina,6,4)
9
tina
Left(Prishtina,2)
Pr
Right(Prishtina,4)
tina
String(4,P)
String(4,65)
StrReverse(Prishtina)
PPPP
AAAA
anithsirP
Trim( Pr )
Pr
Ltrim( Pr )
Pr
Rtrim( Pr )
Pr
Str.SelText
Shembull:
Pr t demonstruar mnyrn e prdorimit t SelLength, SelStart dhe SelText,
insertojm n form kontrollat si n fig. 3.2.
161
Kodi pr kt shembull:
Private Sub cmdLlogarit_Click()
Text2.Text = Text1.SelText
Text3.Text = Text1.SelLength
Text4.Text = Text1.SelStart
End Sub
162
Procedurat e funksioneve
Visual Basic-u ka shum funksione t brendshme. N nj aspekt, funksionet jan si
programe minuaturale, t cilat prpunojn t dhnat hyrse (Input) dhe japin
rezultatet prmes vlers dalse (Output). Funksioni mund t ket nj ose disa vlera
hyrse, por gjithmon ka vetm nj vler dalse. Parametrat e funksionit shkruhen
n kllapa, pas emrit t funksionit. Vlerat q shkruhen n kllapa mund t jen
konstante, variabla ose shprehje, si n tabeln vijuese:
163
Funksioni
Shembull
Rezultati
Hyrja (Input)
Int
Chr
Len
Mid
InStr
Int(2.6)
Chr(65)
Len(Prishtina)
Mid(Prishtina,4,2)
InStr(dhe n, )
2
A
9
sh
4
Numr
Numr
String
String, Numr, Numr
String, String
Dalja
(Output)
Numr
String
Numr
String
Numr
164
Thirrja e funksionit
Thirrja e funksionit bhet ngjashm me thirrjen e procedurave Sub. Sipas mnyrs
standarde (t predefinuar), variablat i prcillen funksionit sipas referencs (By
Reference), q do t thot se vlerat e tyre jan subjekt i ndryshimeve prej
procedurave t funksioneve. Variablat gjithashtu mund ti prcillen funksionit sipas
vlers (By Value) ashtu q vlerat e tyre t ruhen. Njsoj sikurse pr procedurat Sub,
variabla prcilles sipas vlers nse sht e mbyllur n thonjza t veanta shtes
kur t thirret funksioni ose nse parametri prkats n urdhrin Private Function
paraprihet prej fjals s rezervuar ByVal. Funksionet e brendshme i kan t gjitha
argumentet e tyre t prcjellura sipas vlers.
Edhe procedurat e funksioneve mund t kryejn veprimet e njjta si procedurat Sub
(pr shembull, ato mund t krkojn nj vler hyrse dhe t paraqesin ndonj
tekst), mirpo prdorimi primar i tyre sht pr llogaritjen e nj vlere. Normalisht,
procedurat Sub prdoren pr kryerjen e punve tjera.
Procedurat e funksioneve dallojn prej procedurave Sub pr nga mnyra e qasjes.
Procedurat Sub thirren prmes urdhrit Call, ndrsa funksionet thirren duke i
vendosur n pozitat ku prndryshe pritet ndonj konstante, variabl apo shprehje
tjetr. Pra funksionet prmes emrit t tyre futen n shprehje t ndryshme, si
variabla t zakonshme si dhe brenda procedurave t ngjarjeve. Pr dallim prej
funksioneve, procedurat Sub nuk mund t prdoren n ndonj shprehje.
Si edhe pr procedurat Sub, funksionet nuk sht e domosdoshme t ken ndonj
parametr (argument). Kur thirren funksionet pa paramatra, mjafton t jepet vetm
emri, nuk sht e domosdoshme, sikur pr procedurat Sub, q t shtypen kllapat e
zbrazta.
Nj mnyr tjetr pr krijimin e procedurave t funksioneve sht q n dritaren e
kodit, t vendoset kursori n nj rresht t zbrazt, jasht procedurave, t shtypet
Private Function EmriFunksionit dhe ENTER.
Edhe procedura e funksioneve mund t insertohet prmes menys: Tools-Add
Procedure (ALT+T+P).
N vazhdim do t jepen disa shembuj funksionesh.
Shembull:
Do t definojm funksionin i cili bn shndrrimin (konvertimin) e vlers s dhn
t gjatsis nga Milat n Kilometra.
Private Function MilaneKm(GjatesiaM As Single) As Single
'Shndrrimi i Milave ne Kilometra
MilaneKm = GjatesiaM * 1.609
End Function
N...
Mila
litra
litra
cm
metra
yard
yard
cm
Inch katror
Celsius
166
Shembull:
Do t definojm funksionin i cili gjen numrin m t madh, prej dy numrave t
dhn. Prgatisim formn si n fig. 3.6.
Kodi:
Public Function NumriMadh(Num1 As Integer, Num2 As Integer) As Integer
If Num1 > Num2 Then
'Nse numri i par sht m i madh se i dyti
NumriMadh = Num1
'kthe numrin e par
Else
NumriMadh = Num2
'prndryshe kthe numrin e dyt
End If
End Function
Shembull:
Pr llogaritjen e hipotenuzs s trekndshit knddrejt, krijojm funksionin
Hipotenuza.
N form, insertojm kontrollat si
n figur dhe prmes kontrolls
Line, vizatojm trekndshin
knddrejt.
Hipotenuza e trekndshit
knddrejt llogaritet n baz t
teorems s Pitagors, prmes
shprehjes: c= a 2 + b 2 .
Prmes funksionit Sqr (Square Root
Rrnja katrore), llogarisim
gjatsin e Hipotenuzs, kur t jen
dhn gjatsit prkatse t
kateteve a dhe b.
169
Shembull:
T llogaritet shprehja: S =
(a i + b)
i=m
Kodi:
Private Function Shuma(m As Integer, n As Integer, a As Single, b As Single) As Single
Dim i As Integer, S As Single
S=0
For i = m To n
' Unaza prej m deri n n
S = S + (a * i + b)
' Shums s mparshme i shtohet (a*i+b)
Next i
' Hapi tjetr (i ardhshm)
Shuma = S
' Rezultati q e kthen funksioni
End Function
Private Sub cmdShuma_Click()
Dim m As Integer, n As Integer, a As Single, b As Single
m = CInt(txtm.Text)
n = CInt(txtn.Text)
a = CSng(txta.Text)
' Konverto n Single
b = CSng(txtb.Text)
' Konverto n Single
txtShuma.Text = Shuma(m, n, a, b)
' Thirrja e funksionit pr vlerat e dhna
End Sub
Pr t llogaritur shumn e numrave prej 1 deri n 10, jepet: m=1, n=10, a=1 dhe
b=0. Pra pr shumn e numrave t njpasnjshm, duhet caktuar a=1 dhe b=0.
Ngjashm, mund t krijohen edhe funksionet pr Prodhimin dhe Faktorielin.
(Shiko shembujt: ProdhimiMN.vbp dhe Faktorieli.vbp).
170
171
173
Editori i menyve
Kontrolla ListBox
Kontrolla ListBox paraqet listn e elementeve, ndonj ose disa prej t
cilave shfrytzuesi mund ti zgjedh.
Nse numri i elementeve tejkalon numrin e elementeve q mund t shfaqen n
ListBox, automatikisht shtohen shiritat rrshqits.
Nse nuk zgjedhet asnj element, tipari ListIndex ka vlern 1. Elementi i par n
list sht ListIndex 0 dhe vlera e tiparit ListCount sht gjithmon pr nj m e
madh se vlera m e madhe e ListIndex, sepse numrimi fillon prej zeros (0).
Pr t shtuar ose pr t larguar elementet n kontrolln ListBox n modin e
dizajnimit, prdoret tipari List. N modin ekzekutimit, kto veprime kryhen prmes
metodave AddItem (shto elementin) dhe RemoveItem (largo elementin). Pr t
lejuar shfytzuesin q ti qaset kontrolls ListBox duhet prcaktuar tiparet List,
ListCount dhe ListIndex.
Prmes kontrolls ListBox, vargjet e vlerave dhe vargjet e kontrollave
manipulohen m leht. Kto kombinohen q t punojn n harmoni gjat
prpunimit t listave t informatave.
Kur vendoset kontrolla ListBox n form, duhet prcaktuar madhsin e saj, ashtu
q ajo t jet mjaft e madhe sa t zr elementet e lists. Mirpo n shum raste
nuk dihet paraprakisht se far t dhna do t paraqiten n ListBox, sepse t dhnat
mund t mirren prej diskut ose prmes shtypjes n tastatur, kshtu q duhet
supozuar madhsin e lists.
Kontrolla ListBox mund t ket nj ose m shum kolona, mirpo paraqitja me nj
kolon lehtson zgjedhjen, edhe pse shfrytzuesit duhet t rrotullojn vertikalisht
prmbajtjen prmes shiritit rrshqits. Numri i kolonave prcaktohet prmes tiparit
Columns (kolonat).
Tiparet m t rndsishme t kontrolls ListBox q prcaktohen n modin e
dizajnimit, jan prshkruar n tabeln vijuese.
Tiparet
BackColor
174
Prshkrimi
Ngjyra e prapavis s kontrolls ListBox
Editori i menyve
Columns
Numri i kolonave.
ForeColor
Height
IntegralHeight
List
MultiSelect
Sorted
Style
AddItem
Prshkrimi
Shton nj element n ListBox.
Clear
List
ListCount
RemoveItem
AddItem sht metoda m e rndsishme, sepse i shton elementet n list dhe sht
pr kontrolln ListBox si urdhri pr ndarjen e vlerave pr variablat.
175
Editori i menyve
Metoda List krkon indeksin ashtu q Visual Basic-u t dij ciln vler t lists tia
ndaj variabls.
Pr t prcaktuar numrin e elementeve, prdoret ListCount, si n vijim:
intNum = lstQyteti.ListCount
Pra variabla intNum merr vlern e numrit t elementeve n list. ListCount prdoret
edhe pr t prshkruar tr listn prmes unazs For-Next.
Shembull:
N form insertojm kontrollat si n fig. 3.10.
176
Editori i menyve
177
Editori i menyve
'Pastro listn
'Pastro teks-boksin
'Paraqite tekstin
Kontrolla ComboBox
Kontrolla ComboBox bn kombinimin e karakteristikave t kontrollave
TextBox dhe ListBox.
Kjo kontroll lejon shfrytzuesin t zgjedh nj element duke e zgjedhur prej lists
ose duke e shtypur tekstin n fushn pr tekst t ComboBox-it.
ComboBox prezenton listn pr zgjedhje pr shfrytzuesit. Nse numri i
elementeve tejkalon at q mund t paraqitet, automatikisht paraqiten shiritat
rrshqits. Shumicn e tipareve i ka si kontrolla ListBox.
N krahasim me kontrolln ListBox, n prgjithsi, ComboBox-i sht i
prshtatshm kur ekziston lista me opcione t sugjeruara (t preferuara) por lejohen
edhe tjera, ndrsa ListBox sht e prshtatshme kur duhet kufizuar hyrjen vetm n
opcionet nga lista. ComboBox-i prmban nj fush pr editim, ashtu q opcionet
q nuk jan n list mund t shtypen n kt fush.
Kontrolla ComboBox kursen hapsirn n form, sepse lista e plot nuk paraqitet
deri sa t shtypet shigjeta te posht, pr hapje t lists dhe mund t vendoset n nj
hapsir t vogl, ku nuk mund t vendoset ListBox-i.
Ekzistojn edhe versionet speciale t kontrollave ListBox dhe ComboBox, pr
lidhje me bazat e t t dhnave, DataCombo dhe DataList, q njihen si Data-Bound
Controls (Kontrollat e lidhura me t dhnat).
ComboBox mund t paraqitet n tri stile, t cilat mund t zgjedhen n modin e
dizajnimit prmes vlerave ose konstantave ekuivalente t Visual Basic-ut, pr
tiparin Style (Stili).
Stili
Drop-down combo box
Simple combo box
Drop-down list box
Vlera
0
1
2
Konstanta
vbComboDropDown
vbComboSimple
vbComboDropDownList
Editori i menyve
ku, box - Emri i kontrolls; item Stringu q shtohet n list. Nse sht konstant
literale, duhet shtypur nn thonjza; index prcakton pozitn n list, ku do t
insertohet elementi. Indeksi 0 paraqet pozitn e par. Nse nuk prcaktohet indeksi,
elementi shtohet n fund t lists ose n pozitn prkatse, nse lista sht e
sortuar.
Deri sa pr lista, elementet zakonisht shtohen n procedurn Form_Load( ), pr
ComboBox metoda AddItem mund t prdoret n do koh. Kjo i jep aftsi q t
shtohen elementet n mnyr dinamike (si prgjigje n veprimet e shfrytzuesit).
Shtimi i elementeve n modin e dizajnimit, bhet duke shtypur listn e elementeve
n tiparin List. Elementet shtypen n list dhe me CTRL+ENTER filohet rreshti i ri,
pr t shtuar elementin e ri. Pr t sortuar listn, tipari Sorted vendoset n True.
Pr t shtuar elementin n pozitn e specifikuar, prcaktohet vlera e indeksit t
elementit t ri. Nse tipari Sorted sht true, prdorimi i metods AddItem me
argumentin Index, mund t shkaktojn rezultate t paparashikueshme dhe t
pasortuara.
Pr t larguar (Fshir) elementet nga lista, prdoret medota RemoveItem, me
sintaks:
box.RemoveItem index
Editori i menyve
ComboBox-it. Kjo mund t jet element i zgjedhur nga lista apo tekst i shtypur prej
shfrytzuesit. P.sh.,
Private Sub Combo1_Click ()
If Combo1.Text = "Prishtina" Then
Text1.Text = "Prishtina sht kryeqyteti i Kosovs"
End If
End Sub
Shembull:
180
Editori i menyve
Dim TekstiPerShtim$
'Merre nga tekstboksi tekstin q duhet shtuar
'por vrteto se a sht tekst-boksi i zbrazt
If txtShto.Text <> "" Then
TekstiPerShtim$ = txtShto.Text
Else
TekstiPerShtim$ = "Nuk sht shtypur teksti"
End If
cboDropDown.AddItem (TekstiPerShtim$) 'Shto tekstin n t gjitha ComboBox-et
cboSimple.AddItem (TekstiPerShtim$)
cboList.AddItem (TekstiPerShtim$)
End Sub
Private Sub cmdShtoList_Click()
'Ky tast do t shtoj tekstin n ListBox
Dim TekstiPerShtim$
'Merre nga tekstboksi tekstin q duhet shtuar
'por vrteto se a sht tekst-boksi i zbrazt
If txtShto.Text <> "" Then
TekstiPerShtim$ = txtShto.Text
Else
TekstiPerShtim$ = "Nuk sht shtypur teksti"
End If
'Shto tekstin n t ListBox
lstKryesore.AddItem (TekstiPerShtim$)
End Sub
Private Sub cmdPastroCombo_Click()
'Largo t gjitha tekstet nga ComboBox-et prmes metods Clear
cboDropDown.Clear
cboSimple.Clear
cboList.Clear
End Sub
Private Sub cmdPastroList_Click()
'Largo t gjitha tekstet nga ListBox-i prmes metods Clear
lstKryesore.Clear
End Sub
Private Sub cmdPastroText_Click()
'Pastro tekstin nga TextBox-i duke prcaktuar tiparin text si NULL ("")
txtShto.Text = ""
End Sub
181
Editori i menyve
Shiritat rrshqits
ScrollBar (Shiriti rrshqits) sht kontroll e brendshme e Visual
Basic-ut, q mundson navigimin e listave t gjat t elementeve ose
sasive t mdha t infromatave.
Gjithashtu mund t shrbej si prezentues analog i pozits momentale. N vend se t
ndryshohen vlerat duke br shtypjen e tyre prmes tastiers, mund t bhen
prmes lvizjes s shiritit rrshqis prmes mausit dhe pr t treguar pozitn
relative brenda rangut t vlerave. Mund t prdoret si pajisje hyrse apo si indikator
i shpejtsis, sasis ose pr shembull lartsis s zrit (Volume) ose kohs s kaluar
gjat nj procesi.
Kemi versionin Horizontal dhe Vertikal t shiritit rrshqits. Sintaksa e tyre sht :
HScrollBar
VScrollBar
Kur shiriti rrshqits prdoret si indikator i sasis ose shpejtsis ose si nj pajisje
hyrse, prdoren tiparet e tij: Min dhe Max, pr t prcaktuar rangun e vlerave t
kontrollave. Pr t prcaktuar hapin e ndryshimit n shiritin rrshqits, prdoren
tiparet: LargeChange (Ndryshimi i madh) pr klik n shiritin rrshqits dhe
SmallChange (Ndryshimi i vogl) pr klik n shigjetat n skaje t shiritit
rrshqits. Tipari Value i shiritit rrshqits rritet ose zvoglohet pr vlern e
caktuar t hapit pr tiparet LargeChange dhe SmallChange. Pozita e shiritit
rrshqits mund t prcaktohet edhe n modin e ekzekutimit, duke caktuar vlern
pr tiparin Value, ndrmjet 0 dhe 32767.
Shembull:
N form insertojm kontrollat si n fig.3.12.
Editori i menyve
Kontrolla Timer
Kontrolla Timer (Kohmatsi, ora), mund t ekzekutoj kodin n intervale t
rregullta kohore, duke br q t ndodh ngjarja Timer.
Kontrolla Timer sht e padukshme gjat kohs s ekzekutimit dhe sht e
prshtatshme pr procesim n prapavi, duke iniciuar ndonj ngjarje pas vlers s
specifikuar t kohs. Gjatsia e kohs matet me milisekonda (1s/1000) dhe
prcaktohet prmes tiparit Interval, q mund t merr vlerat prej 0 deri n 65535
(rreth nj minut e 5 sekonda). Ngjarja q aktivizohet pas kalimit t intervalit
Timer1.Interval milisekonda, quhet Timer1_Timer( ). Pr t filluar matjen e kohs,
kohmatsi s pari duhet t aktivizohet, duke vendosur tiparin e tij Enabled n True.
183
Editori i menyve
Kohmatsi ndalet (kyqet) duke vendosur tiparin Enabled n False ose duke
caktuar tiparin Interval n 0.
Praktikisht nuk ka numr t kufizuar t kohmatsve aktiv n nj aplikacion.
Pr t paraqitur kohn e sistemit, n form insertohet kontrolla Timer dhe prmes
funksionit Time (koha) mirret koha e sistemit dhe paraqitet n nj kontroll t tipit
Label ose TextBox (Fig. 3.13).
Pr kontrolln Timer, caktojm
tiparin Interval - 500, pra gjysm
sekonde, pr t prcjellur
ndryshimet e kohs pr do sekond.
Klikojm dy her kontrolln Timer
dhe n dritaren e kodit, shkruajm
kodin si vijon:
Private Sub Timer1_Timer()
Label1.Caption = Time
End Sub
Shembull:
N kt shembull, kontrolln Timer do ta prdorim pr matjen e intervalit kohor.
Pr kt qllim, insertojm n form kontrollat si n fig. 3.14 dhe i emrtojm si
184
Editori i menyve
185
Editori i menyve
Editori i menyve
App.Path
Tipari Path (Shtegu) prdoret edhe pr lokalizimin e fajllave. Kur prdorim ndonj
fajll q ndodhet n folderin ku ndodhet edhe aplikacioni t cilin jemi duke e
ekzekutuar, ather fajllit mund ti qasemi edhe prmes shtegut:
... App.path & EmriFajllit ...
Kjo paraqet lehtsim t dukshm, pr rastet kur shtegu sht i gjat, si p.sh.,
C:\Program Files\Microsoft Visual Studio\Visual Basic\Shembujt\Pyetjet.txt,
sepse nuk ka nevoj t brengosemi a e kemi shkruar shtegun si duhet, a e kemi
dhn pa gabime t rastsishtme t shtypit, etj., por mjafton t shkruhet duke
prdorur App.Path si u tregua m sipr.
187
Editori i menyve
Dritaret pr dialog
Gjat puns me programe t ndryshme, shpeshher paraqitet nevoja pr hapjen e
dritareve pr dialog, t cilat prdoren me rastin e hapjes s fajllit, ruajtjes s fajllit,
shtypjes, formatizimit t tekstit, zgjedhjen e ngjyrs, etj. Visual Basic-u mundson
krijimin dhe prdorimin e ktyre dritareve pr dialog, si n t gjitha programet e
zakonshme n Windows. Kontrolla pr dritaren e dialogut, q njihet si
CommonDialog Control (Kontrolla e prbashkt pr dialog), fillimisht nuk
paraqitet n shiritin e veglave (Toolbox), mirpo ajo ndodhet n mesin e
komponenteve shtes t Visual Basic-ut dhe pr ta prdorur n programe, duhet
shtuar komponenten: Microsoft Common Dialog Control 6.0. (Zgjedhni n meny:
Project-Components ose shtypni tastin e djatht n ToolBox, zgjedhni opcionin
Components, dhe pastaj n dritaren Components zgjedhni Microsoft Common
Dialog Control 6.0).
Kontrolla CommonDialog
Kontrolla CommonDialog ofron bashksin standarde t dritareve pr
dialog dhe mundson krijimin e dritareve pr dialog pr veprimet e
zakonshme si hapja dhe ruajtja e fajllit (Open, Save), prcaktimin e fontit
dhe ngjyrs s tekstit (Font, Color) dhe opcionet pr shtypje (Printer).
Kontrolla CommonDialog prdoret ashtu q shtohet n form dhe prcaktohen
tiparet e saj. Dialogu q paraqitet prmes kontrolls prcaktohet prmes metodave
t kontrolls. N modin e dizajnimit kontrolla paraqitet si ikon n form, kurse n
kohn e ekzekutimit ajo sht e padukshem por paraqitet kur t thirret metoda
prkatse. Paraqitja bhet prmes urdhrit:
EmriKontrolls.ShowXXX,
188
Dialogu q paraqitet
Open Dialog Box (Fig. 3.16a)
Save As Dialog Box (Fig. 3.16b)
Color Dialog Box (Fig. 3.16c)
Font Dialog Box (Fig. 3.16d)
Dritarja pr dialog Print dhe Print Options (Fig. 3.16e)
Editori i menyve
Editori i menyve
Prmes dritares pr dialog Font, zgjedhet lloji i shkronjave, stili dhe madhsia,
kurse prmes dritares Color, ngjyra e tekstit, prapavis, mbushjes etj., t
fotografive apo objekteve.
Editori i menyve
Pr dialogjet Open dhe Save As, sht i nevojshm prcaktimi i tiparit Filter pr
caktimin e llojit t fajllave q do t paraqiten. Kjo bhet prmes urdhrit me
sintaksn:
dlgHapja.Filter = Prshkrimi1|Filtri1|Prshkrimi2|Filtri2|Prshkrimi3|Filtri3
Pasi t prcaktohet tipari Filter, prmes tiparit FilterIndex, zgjedhet filtri standard,
i cili paraqitet si opcion fillestar dhe i zakonshm. Pr shembull, nse pas urdhrit
t mparshm shtypet:
dlgHapja.FilterIndex = 1
191
Editori i menyve
Shembull:
Insertojm n form kontrollat si n fig. 3.17.
192
Editori i menyve
193
Editori i menyve
Kontrolla Data
Kontrolla Data (T dhnat) sht kontroll e brendshme e cila siguron
qasjen n t dhna.
Qasja n t dhna bhet prmes Microsoft Jet Database Engine (Microsoft Jet
makina pr baza t t dhnave) e cila njherit sht e njjta makin q e v n
pun Microsoft Access-in. Kjo teknologji u ofron shfrytzuasve qasje n
shumicn e formateve standarde t bazave t t dhnave dhe lejon krijimin e
aplikacioneve t vetdijshme pr t dhna pa pasur nevoj pr t shkruar kod fare
(Data-aware applications si njihen aplikacionet t cilat kan aftsi t kuptojn
se kan t bjn me t dhna nga bazat e t dhnave).
Kontrolla Data sht e prshtatshme pr bazat e vogla t t dhnave, si bazat e
krijuara me Access-i dhe bazat ISAM ( ISAM-Indexed Sequential Access Method).
Kontrolla Data mund t prdoret pr krijimin e aplikacioneve t cilat paraqesin,
editojn dhe azhurojn t dhnat prej shum llojeve t bazave t t dhnave, si:
Microsoft Access, Btrieve, dBase, Microsoft FoxPro, Paradox, etj. Gjithashtu
mund t prdoret pr t ju qasur t dhnave nga Microsoft Excel, Lotus 1-2-3 dhe
ASCII tekst fajllat, sikur t ishin baza t vrteta t t dhnave. Pr m tepr,
kontrolla Data lejon qasjen dhe manipulimin e bazave n largsi (Remote), ODBC
(Open Database Connectivity) si Microsoft SQL Server dhe Oracle, etj.
Pr t pasur kompatibilitet (pajtueshmri) me aplikacionet e vjetra (Backward
Compatibility), n Visual Basic 6.0 jan prfshir edhe Data Control (DAO Data
Access Object) dhe Remote Data Control (RDO Remote Data Object). Mirpo
pr aplikacionet e reja pr baza t t dhnave preferohet prdorimi i kontrolls s re
t Visual Basic-ut ADO Data Control (ActiveX Data Object Control) e njohur
shkurt si ADO e cila ofron fleksibilitetin e kontrollave ActiveX. ADO, DAO dhe
RDO jan konceptualisht t ngjashme. T tri kontrollat jan kontrolla t t dhnave
(Data controls) t cilat e lidhin burimin e t dhnave (Data Source) pr
kontrolln e lidhur me t dhna (Data-bound control).
Editori i menyve
195
Editori i menyve
Shembull:
Insertojm n form kontrollat si n fig. 3.23. Kontrolln data e emrtojm me
emrin datStudentet. I caktojm tiparet e saj si vijon: Caption-Studentt; Connect
Access; Database Name - Fakulteti.mdb (bazn Fakulteti.mdb e gjeni n CD-n e
bashkangjitur me libr); Record Source Studentet.
196
Editori i menyve
Kontrolla OLE
Kontrolla e fundit n mesin e kontrollave t brendshme t cilat paraqiten n shiritin
e veglave (ToolBox) sht kontrolla OLE. OLE sht shkurtesa pr Object Linking
and Embedding (Lidhja dhe Insertimi, ngulitja, mbjellja e objekteve). Kjo kontroll
mundson krijimin e lidhjes me objektet e krijuara prej programeve tjera ose
insertimin e tyre brenda kontrolls e cila n kt rast sht barts, kontejner
(Container) pr objektet e krijuara prej programeve tjera. Objekti i lidhur ruhet dhe
kontrollohet prej programit q e ka krijuar, kurse objekti i insertuar sht i
vendosur brenda aplikacionit n Visual Basic-ut.
Kontrolla OLE Container mundson shtimin (insertimin) e objekteve t
insertueshme n form n aplikacionet e Visual Basic-ut.
Prmes kontrolls OLE container ka mundsi q:
- t krijohet bartsi pr objektet e insertueshme prej programeve tjera. Gjat kohs
s ekzekutimit mund t krijohen objektet t cilat paraqiten prbrenda kontrolls
OLE n form ose mund t ndryshohen objektet e vendosura brenda kontrolls t
cilat jan vendosur n form gjat kohs s dizajnimit.
- t krijohet objekti i lidhur me aplikacion, dhe
- t lidhet OLE container-i n bazn e t dhnave duke prdorur kontrolln Data.
Objekti krijohet n modin e dizajnimit duke prdorur dialogun Insert Object (Fig.
3.24) i cili paraqitet posa t insertohet kontrolla n form ose gjat kohs s
ekzekutimit duke prcaktuar tiparet prkatse. N modin e ekzekutimit, kur
klikohet dy her objekti n kontrolln OLE, aktivizohet programi burimor dhe
menya e tij me komandat e tij.
Ka mundsi t krijohet objekti i ri
(Create New) ose t krijohet prej
ndonj fajlli ekzistues (Create from
File). N listn Object Type
paraqitet lista e programeve prej t
cilave mund t krijohet objekti.
Pastaj me OK konfirmohet
zgjedhja. Nse shtypet Cancel,
objekti nuk krijohet fare.
Fig. 3.24 Insertimi i objekteve
Gjat kohs s dizajnimit, kur klikohet OLE kontejneri me tastin e djatht t
mausit, paraqitet menya zgjedhse e kontekstit (pop-up menu) n t ciln paraqiten
komandat varsisht prej gjendjes s OLE kontejnerit, si n tabeln vijuese:
197
Komanda
Insert Object
Paste Special
Delete Embedded Object
Delete Linked Object
Create Link
Create Embedded Object
Editori i menyve
Paraqitet n meny:
Gjithnj.
Nse objekti Clipboard prmban ndonj
objekt valid.
OLE kontejneri prmban objekt t insertuar
(embedded object).
OLE kontejneri prmban objekt t lidhur
(linked object).
sht definuar tipari SourceDoc.
Jan definuar tiparet Class ose SourceDoc.
Editori i menyve
Editori i menyve
200
Editori i menyve
Ekzekutimi i aplikacioneve
Ekzekutimi i aplikacioneve, gjegjsisht thirrja e aplikacioneve n dritare t veant
mund t bhet prmes urdhrit AppActivate (Aktivizo aplikacionin) ose prmes
funksionit Shell, i cili ka sintaksn:
Shell(shtegu,stilidritares)
ku shtegu paraqet rrugn deri te aplikacioni i cili duhet t startohet, gjegjsisht fajlli
ekzekutiv prkats, kurse stilidritares paraqet parametrin me vler numerike ose
konstantn e Visual Basic-ut, q definon stilin e dritares q hapet:
VbHide
vbNormalFocus
vbMinimizedFocus
vbMaximizedFocus
vbNormalNoFocus
2
3
4
vbMinimizedNoFocus
201
Editori i menyve
Editori i Menyve
Visual Basic-u prmban vegln e fuqishme grafike Menu Editor (Editori i
menyve) pr krijimin e menyve. Editori i menyve mundson krijimin e menyve t
zakonshme t aplikacionit dhe definimin e tipareve t tyre. Editori i menyve
startohet prmes menys: Tools-Meny Editor (Ctrl+E), me rast n ekran paraqitet
dritarja e editorit t menyve me opcionet e tij (Fig. 4.1). Editori i menyve mund t
hapet vetm nse n ekran sht aktive dritarja e forms.
Editori i menyve
203
Editori i menyve
b.
c.
Fig. 3.18 a). Editori i menys, b). Modi i dizajnimit, c). Modi i ekzekutimit
Procedura pr krijimin e menys si n fig. 3.18a, prmes editorit t menyve sht si
vijon:
1. N fushn Caption shkruajm File dhe n fushn Name shkruajm:
mnuFile. (Kto jan t dhnat minimale, q duhet t jepen patjetr, pr t
definuar nj meny).
2. Klikojm Next pr krijuar nj rresht t ri.
3. Klikojm shigjetn djathtas. Kjo bn q t paraqiten tri pikat dhe t bhet
zhvendosja djathtas e menys s ardhshme, e cila do t jet meny e nivelit
t dyt. do nivel i zhvendosjes djathtas paraqet nnnivel t ri t menys.
4. Shtypim &Open n fushn Caption dhe mnuOpen n fushn Name.
5. Klikojm shigjetn n skajin e fushs Shorcut (Shkurtesa) dhe prej lists
rnse zjedhim kombinimin pr shkurtesn q do t ekzekutoj urdhrat e
menys prmes tastiers (Ctrl+O).
6. Klikojm Next pr t krijuar menyn e ardhshme. (Vazhdon...)
Kshtu vazhdon definimi i menyve me rradh. Pr t paraqitur vijn ndarse (sikur
mes Save dhe Exit), n fushn Caption shtypet vetm . Pr t filluar nj meny
t re, t nivelit t par, shtypet shigjeta majtas, pr tu kthyer n skajin e majt
(gjegjsisht n nivelin m t lart t menyve). N fund, shtypim OK pr t mbyllur
editorin e menyve.
Pr t definuar ngjarjet q do t ndodhin me rastin e zgjedhjes s menys gjat
kohs s ekzekutimit, duhet definuar kodin pr to n modin e dizajnimit. Pr t
204
Editori i menyve
Shembull:
N form insertojm nj tekst-boks (txtTeksti) dhe prmes editorit t menyve
krijojm menyt (Fig. 3.19a), prmes t cilave do t prcaktohet fonti dhe
madhsia e tekstit q shkruhet n kontrolln txtTeksti. Pr menyt, definojm
kodin si n vijim:
Private Sub mnuArial_Click()
txtTeksti.FontName = "Arial"
End Sub
Private Sub mnuTimes_Click()
txtTeksti.FontName = "Times New Roman"
End Sub
Private Sub mnuCourier_Click()
txtTeksti.FontName = "Courier"
End Sub
Private Sub mnu12_Click()
txtTeksti.FontSize = 12
End Sub
Private Sub mnu14_Click()
txtTeksti.FontSize = 14
End Sub
Private Sub mnu16_Click()
txtTeksti.FontSize = 16
205
Editori i menyve
End Sub
Private Sub mnu18_Click()
txtTeksti.FontSize = 18
End Sub
Private Sub mnu20_Click()
txtTeksti.FontSize = 20
End Sub
b.
N modin e ekzekutimit, (Fig.
3.19b) teksti q shkruhet n dritaren
pr tekst, do t shkruhet me fontin
dhe madhsin e zgjedhur n meny.
Komandat e menys mund t
ekzekutohen drejtprdrejt prmes
shkurtesave t definuara.
(Shembulli: Fonti.vbp)
Shembull:
Tani do t krijojm nj editor t thjesht t tekstit, i cili do t ket dy mundsi pr
t zgjedh ngjyrn e tekstit dhe t prapavis: bardh dhe zi ose zi dhe bardh.
Gjithashtu do t ket menyn Edit (Edito) me komandat pr editim t tekstit sikur
t gjitha programet e zakonshme n Windows: pr anulimin e veprimit t fundit
(Undo), pr prerjen e tekstit t zgjedhur (Cut), kopjimin (Copy) dhe thirrjen e
tekstit prej Clipboard-it (Paste).
Insertojm kontrolln e tipit TextBox (txtFaqja) n form (Fig. 3.20) dhe pr t
prcaktojm tiparet: MultiLine True, ScrollBars 2 Vertical.
206
Editori i menyve
Madhsia e faqes s tekstit (txtFaqja) sht e varuar prej madhsis s forms dhe
me ndryshimin e madhsis s forms, prmes procedurs pr ngjarjen Resize t
forms prshtatet edhe madhsia e faqes s tekstit.
Shkmbimi i tekstit me Clipboard-in bher prmes metodave: SetText dhe GetText.
Pr prcjelljen e pozits s kursorit dhe ruajtjen e gjendjes paraprake definohen dy
variabla globale, t cilave mund t ju qasen t gjitha procedurat. N kod jan dhn
edhe komente t mjaftueshme pr t qartsuar kodin.
Kodi:
Option Explicit
Public strGFUndoBuffer As String 'Variabl Globale, q mban stringun pr Undo
Public intGFCursorPos As Integer 'Pozita momentale e kursorit n string
Private Sub Form_Resize() 'Ndryshimi i madhsis s forms
txtFaqja.Top = 0
'Vendosja e tekst-boksit txtFaqja n skajin e eprm t Forms
txtFaqja.Left = 0
'Vendosja e tekst-boksit txtFaqja n skajin e majt t Forms
txtFaqja.Width = ScaleWidth 'Zmadhimi i faqes n madhsi t Forms
txtFaqja.Height = ScaleHeight 'Zmadhimi i faqes n madhsi t Forms
End Sub
Private Sub mnuZiNeBardh_Click()
'Ngjyrat per tekst t zi n prapavi t bardh
txtFaqja.BackColor = vbhite
txtFaqja.ForeColor = vbBlack
'Shenja e Zgjedhjes s menyve prkatse
mnuZiNeBardh.Checked = True
mnuBardhNeZi.Checked = False
End Sub
207
Editori i menyve
208
Editori i menyve
intGFCursorPos = txtFaqja.SelStart
strFull = txtFaqja.Text
209
Gabimet
Gabimet
(Shembulli: EditoriKomplet.vbp)
Option Explicit
Private Sub Form_Resize() 'Ndryshimi i madhsis s forms
rtfTeksti.Top = 1
'Vendosja e tekst-boksit rtfTeksti n skajin e eprm t Forms
rtfTeksti.Left = 0
'Vendosja e tekst-boksit rtfTeksti n skajin e majt t Forms
rtfTeksti.Width = ScaleWidth 'Zmadhimi i faqes n madhsi t Forms
rtfTeksti.Height = ScaleHeight 'Zmadhimi i faqes n madhsi t Forms
End Sub
Private Sub Form_Load()
' Ngjyrat n cboFontColor.
With cboFontColor
.AddItem "E zez"
.AddItem "E kaltr"
.AddItem "E kuqe"
.AddItem "E gjelbr"
.AddItem "E verdh"
.AddItem "E pembe"
.ListIndex = 0
End With
Dim i As Integer
With cboFontName 'Veprimet me kontrolln cboFontName
For i = 0 To Screen.FontCount - 1
.AddItem Screen.Fonts(i)
Next i
' Vendos ListIndex n 0.
.ListIndex = 0
End With
With cboFontSize
' Mbushe cmdFontSize me vlera, t rritura pr nga 2
211
Gabimet
For i = 8 To 72 Step 2
.AddItem i
Next i
' Cakto ListIndex n 0
.ListIndex = 1 ' madhsia 10.
End With
End Sub
Private Sub cboFontName_Click() 'ComboBox-i me emrat e fonteve
rtfTeksti.SelFontName = cboFontName
rtfTeksti.SetFocus
End Sub
Private Sub cboFontSize_Click() 'ComboBox-i me madhsin e fonteve
rtfTeksti.SelFontSize = cboFontSize.Text
rtfTeksti.SetFocus
End Sub
Private Sub cboFontColor_Click() 'ComboBox-i me ngjyrat e fonteve
' Ndrysho ngjyrn e fontit duke prdorur urdhrin Case
' s bashku me ListIndex t ComboBox-it.
' Cakto ngjyrn me konstantat e brendshem pr ngjyrat
Me.Show
With rtfTeksti
Select Case cboFontColor.ListIndex
Case 0
.SelColor = vbBlack
Case 1
.SelColor = vbBlue
Case 2
.SelColor = vbRed
Case 3
.SelColor = vbGreen
Case 4
.SelColor = vbYello
Case 5
.SelColor = vbMagenta
End Select
End With
rtfTeksti.SetFocus
End Sub
212
Gabimet
213
Gabimet
' Paraqite dialogun Open File , dhe vendose variabln si emr t fajllit
' Konfiguro dialogun dlgOpen pr hapjen dhe ruajtjen e fajllave t tipit ...
With dlgOpen
.DefaultExt = ".rtf"
.Filter = "RTF file (*.RTF) | *.RTF|All files (*.*) | *.*"
End With
Dim strOpen As String
dlgOpen.ShowOpen
strOpen = dlgOpen.FileName 'Merr emrin e fjallit prej dialogut Open
rtfTeksti.LoadFile strOpen
' Prdore metodn LoadFile pr t hapur fajllin.
End Sub
'Ruajtja e fajllit duke prdorur metodn SaveFile
Private Sub mnuSave_Click()
Dim strFajlliRi As String
strFajlliRi = dlgOpen.FileName
rtfTeksti.SaveFile strFajlliRi
End Sub
'Emrtimi dhe ruajtja e fajllit duke prdorur metodn SaveFile
Private Sub mnuSaveAs_Click()
Dim strFajlliRi As String
With dlgOpen
.DefaultExt = ".rtf"
.Filter = "RTF file (*.RTF) | *.RTF"
End With
dlgOpen.ShowSave
'Dialogu Save As...
strFajlliRi = dlgOpen.FileName
rtfTeksti.SaveFile strFajlliRi
End Sub
214
Gabimet
Kalendari
Pr paraqitjen dhe manipulimin m t leht t datave npr projekte t ndryshme,
Visual Basic-u ofron kontrollat shtes si:
Calendar
MonthView
DTPicker
Gabimet
Pr t prcjellur ndryshimet e
vlerave t kalendarit npr
kontrollat tjera, gjat kohs s
ekzekutimit, duhet shkruar kodin
prkats. Mund t prdoren
procedurat e ngjarjeve:
After_Update (pas azhurimit),
Change (ndryshimet), Click
(klikimi), etj. Vlerave t dats,
muajit dhe vitit mund ti qasemi
prmes kodit, si: Calendar1.Day,
Calendar1.Month dhe
Calendar1.Year. Gjithashtu mund
t prdoren edhe metodat: NextDay,
NextWeek, NextMonth dhe
Fig. 4.6 - Kalendari
NextYear pr t rritur, vlern
e dats, javs, muajit ose vitit dhe PreviousDay, PreviousWeek, PreviousMonth
dhe PreviousYear pr t kaluar n vlern paraprake gjegjsisht zvogluar vlern
prkatse. Kodi, pr kt shembull (Kalendari1.vbp) sht si n vijim:
Private Sub Form_Load()
Calendar1.Value = Date
lblData.Caption = Calendar1.Value
End Sub
'Muaji i ardhshm
'Viti i prparshm
216
Gabimet
'Viti i ardhshm
217
Gabimet
txtData.Text = DTPicker1.Value
'txtData.Text = Format(DTPicker1.Value, "dddd")
End Sub
Kontrolla UpDown
Kontrolla UpDown gjithashtu ndodhet n grupin e kontrollave t
komponents Microsoft Windows Common Controls 2 6.0.
Prdoret pr ndryshimin e vlerave n rritje dhe n zbritje, prmes procedurave t
saj t ngjarjeve DownClick dhe UpClick. Mund t prdoret pr shum raste, kur
nevojitet ndryshimi i vlerave duke br rritjen ose zvoglimin e tyre hap pas hapi,
pr nj vler t caktuar.
Pr t demonstruar prdorimin e saj, n shembullin paraprak, pran kontrolls
DTPicker, kemi insertuar kontrolln UpDown dhe pr t kemi shkruar kodin vijues:
Private Sub UpDown1_DownClick()
DTPicker1.Value = DTPicker1.Value - 1
MonthView1.Value = MonthView1.Value - 1
End Sub
Private Sub UpDown1_UpClick()
DTPicker1.Value = DTPicker1.Value + 1
MonthView1.Value = MonthView1.Value + 1
End Sub
(Shembulli: Kalendari2.vbp).
218
Gabimet
Kontrolla ImageList
Kontrolla ImageList prmban nj koleksion t fotografive (ListImage
object) q mund t prdoret prej kontrollave tjera.
Kontrolla ndodhet n kuadr t komponents Microsoft Windows Common
Controls 6.0, kshtu q pr ta prdorur, duhet shtuar kt komponent, prmes
menys Project-Components. Objekti ListImage i kontrolls ImageList ka
koleksionin stadard t tipareve: Key (elsi) dhe Index (indeksi) si dhe metodat Add
(shto), Remove (largo) dhe Clear (pastro). Pr shembull, ImageList mund t ruaj
fotografit e ikonave q do t paraqiten n tastet komanduese n shiritin e veglave
(ToolBar). Gjithashtu mund t prdoret edhe me kontrollat t cilat ia ndajn
objektin Picture tiparit Picture, si kontrollat PictureBox, Image ose
CommandButton. N vend se t shkruhet kodi pr t caktuar fotot prmes
funksionit LoadPicture, mund t bhet mbushja e lists njher dhe t caktohet
vlera e tiparit Key (elsi, zgjedhja) dhe t shkruhet kodi q prdor tiparet Key dhe
Index pr t ju referuar fotografive. Kontrolla prdor fajllat e tipit .bmp, .ico, .jpg
ose .gif. Fotografit mund t shtohen ose t largohen prej lists n modin e
dizajnimit ose n at t ekzekutimit.
Pr t insertuar fotografit n modin e dizajnimit, insertohet kontrolla n form
klikohet n t me tastin e djatht dhe n menyn e kontekstit zgjedhet Properties.
N ekran do t paraqitet dritarja Property Pages (Faqet e tipareve - fig. 4.8). N
faqen e par, General, zgjedhet madhsia e fotografive. N faqen Images (Fotot)
prmes tastit komandues Insert Picture (Inserto foton) bhet insertimi i fotografive,
kurse largimi i tyre bhet prmes tastit komandues Remove Picture (Largo foton).
Gabimet
Kontrolla ImageCombo
Kontrolla ImageCombo gjithashtu ndodhet n grupin e kontrollave t
komponents Microsft Windows Common Controls 6.0.
Kontrolla ImageCombo sht e ngjashme me kontrolln standarde ComboBox t
Windowsit, por ka disa ndryshime t rndsishme. Ndryshimi m i dukshm sht
aftsia pr t paraqitur edhe figurat ose fotografit e ndryshme pr secilin element
t lists s kontrolls ImageCombo (Fig. 4.9).
Duke prdorur fotografit, mund t
bhet identifikimi m i leht i
opcioneve pr zgjedhje. Secili
element n listn sht nj
ComboItem Object kurse vet lista
sht koleksioni ComboItems i
objekteve. Kjo mundson
menaxhimin e lists duke
Fig. 4.9 Shembuj t ImageCombo
mundsuar qasjen individuale ose
kolektive n elementet e listes dhe prcaktimin ose ndryshimin e tipareve q
prcaktojn prmbajtjen dhe pamjen e elementeve. Secili element mund t ket dy
fotografi t bashkangjitura. Tipari SelImage prcakton fotografin e elementit t
lists. Pr t menaxhuar fotografit e prdorura pr elementet e lists, kontrolla
ImageCombo prdor kontrolln ImageList. Fotografit i ndahen elementeve n
ImageCombo prmes vlerave t Index ose Key q i referohen fotove t
insertuara n kontrolln ImageList.
Kontrolla ImageCombo gjithashtu mundson zhvendosjen pr elementet e lists si
n fig. 4.9, pr t br identifikimin e niveleve ose paraqitjen e relacioneve
hierarkike.
Pr t shtuar nj element t ri n ImageCombo prdoret metoda Add, pr t krijuar
elementin ComboItem n koleksionin ComboItems. Mund t prcaktohen edhe
argumentet opcionale, si Index dhe Key, fotografia q do t prdoret, niveli i
zhvendosjes, etj.
Pr tia bashkangjitur listn e fotografive t kontrolls ImageList kontrolls
ImageCombo, n modin e dizajnit, klikojm kontrolln ImageCombo me tastin e
djatht dhe n menyn e kontekstit zgjedhim Properties dhe hapet dritarja Property
220
Gabimet
Shembull:
Insertojm n form kontrollat si n fig. 4.11a, dy kontrolla ImageList, dy
ImageCombo, dy Label-a dhe nj kontroll RichText Box.
Emrat e kontrollave i kemi ln,
ashtu si i ka definuar vet programi,
ImageList1, ImageList2,
ImageCombo1 dhe ImageCombo2,
Label1, Label2 dhe kontrolln
RichText Box, e kemi emrtuar
rtfTeksti. Pr t mbushur listn e
fotografive t kontrollave
ImageList, zgjedhim kontrolln dhe
hapim dritaren Property Pages (fig.
4.8). Pastaj, prmes Insert Picture,
Fig. 4.11a ImageList dhe ImageCombo
insertojm figurat.
Pr kontrolln e par, ImageList1, prej folderit: Microsoft Visual
Studio\Common\Graphics\Bitmaps\TlBr_W95 zgjedhim: Bld.bmp, Itl.bmp dhe
Undrln.bmp. Pr kontrolln ImageList2 prej folderit: Microsoft Visual
Studio\Common\Graphics\Icons\Writing zgjedhim: Pencil07.ico, Pencil08.ico,
Pencil09.ico, Pencil10.ico, dhe Pencil11.ico (Fig. 4.11b). Pastaj, kontrollave
221
Gabimet
Si shihet, prej kodit, kemi definuar vetm tri tiparet e para. Tipari Text, prcakton
se ka do t shihet n kontroll kur ajo t hapet n modin e ekzekutimit.
Prmes kodit pr ngjarjet ImageComboX_Click, definojm efektet e zgjedhjes s
opcioneve n kontrollat ImageCombo, n kontrolln rtfTeksti.
222
Gabimet
Teksti Bold
Teksti Italic
Teksti i Nnvizuar
rtfTeksti.SetFocus
End Sub
Private Sub ImageCombo2_Click()
Select Case ImageCombo2.Text
Case "E zez"
rtfTeksti.SelColor = vbBlack
Case "E kuqe"
rtfTeksti.SelColor = vbRed
Case "E kaltr"
rtfTeksti.SelColor = vbBlue
Case "E gjelbr"
rtfTeksti.SelColor = vbGreen
Case "Vjollce"
rtfTeksti.SelColor = vbMagenta
End Select
rtfTeksti.SetFocus
End Sub
223
Gabimet
Kontrolla TabStrip
Kontrolla TabStrip funksionon si ndars i faqeve t fletores ose etiket n
ndonj grup t folderve.
Prmes kontroll TabStrip mund t definohen faqet e shumfishta pr nj zon t
dritares ose dialog-box-it n ndonj aplikacion.
Kontrolla prbhet prej nj ose m shum objekteve Tab n koleksionin Tabs.
Edhe n modin e dizajnimit edhe n at t ekzekutimit, mund t ndikohet n
pamjen e objekteve Tab, prmes konfigurimit t tipareve prkatse.
Gabimet
Gabimet
226
Gabimet
Kontrolla Toolbar
Kontrolla Toolbar (Shiriti i veglave) shrben pr krijimin e shiritit t
veglave t aplikacionit.
Kontrolla Toolbar, prmban koleksionin e objekteve Button (tastet) q prdoret
pr t krijuar Toolbar-in, q i shoqrohet aplikacionit.
Zakonishit, kontrolla Toolbar prmban tastet q i korrespondojn menys s
aplikacionit, duke siguruar interfejs grafik pr shfrytzuesin, q ti qaset m leht
dhe m shpejt komandave t prdorura m s shpeshti.
Secili objekt Button mund t ket nj fotografi, tekstin opcional ose q t dyja, t
ofruara prej kontrolls ImageList q i shoqrohet Toolbar-it.
N modin e dizajnimit tastet (objekti Button) shtohen n kontroll duke prdorur
dritaren Property Pages (Faqet e tipareve) t kontrolls Toolbar (e cila hapet prej
menys s kontekstit, pr kontrolln Toolbar). N modin e ekzekutimit, mund t
shtohen ose largohen tastet prmes metodave Add dhe Remove. Pr t programuar
shiritin e veglave, duhet shtuar kodin pr ngjarjen ButtonClick pr tastin e
zgjedhur. Mund t prcaktohet edhe sjellja dhe pamja pr secilin tast, duke
prdorur tiparin Style. Pr shembull, nse zgjedhet stili ButtonGroup, vetm njri
tast mund t shtypet n nj moment kohor dhe s paku njri tast sht gjithmon i
shtypur. Pr t krijuar barts t kontrollave tjera, mund t zgjedhet stili
PlaceHolder (Barts i pozits), e pastaj t vendoset kontrola n t. Pr shembull,
tasti me stilin PlaceHolder zgjerohet dhe n t vendoset nj kontroll
ComboBox. Nse n modin e ekzekutimit klikohet dy her tasti komandues, thirret
dialog-boksi Customize Toolbar (Prshtate shiritin e veglave), i cili i mundson
shfrytzuesti t paraqes, t fsheh ose t rirreshtoj tastet n shiritin e veglave. Pr t
lejuar kt, duhet prdorur tipari AllowCustomize. Pr t ruajtur dhe rivendosur
gjendjen e shiritit t veglave, jan n dispozicion metodat Save Toolbar dhe
Restore Toolbar. Pr t paraqitur tekstin prshkrues prdoret tipari ToolTipText, i
cili paraqitet kur tipari ShowTipsProperty sht caktuar si True.
Shiriti i veglave pozicionohet n njrin nga skajet e forms (dritares) dhe me
ndryshimin e gjersis ose gjatsis s forms, ndryshon edhe madhisa e tij. Pr t
caktuar pozitn e tij n form, duhet konfiguruar tiparin Align (Rreshto), ku jan n
dispozicion vlerat opcionet: 0-vbAlingNone (pa rreshitm fare), 1-vbAlignTop
(Lart), 2-vbALignBottom (Posht), 3-vbAlignLeft (Majtas), dhe 4-vbAlignRight
(Djathtas).
Shembull:
Insertojm n form kontrollat si n fig. 4.12a, ImageList1, CommonDialog1,
rtfTeksti dhe tlbT (kontroll Toolbar, prefiksi tipik tlb), e cila fillimisht sht e
zbrazt por n modin e dizajnimit do ta mbushim me tastet si n figur, prmes
227
Gabimet
Prmes dy tasteve me shigeta majtas dhe djathtas pran fushs Index, lvizim npr
tastet komandues. Fushat tjera jan: Caption (titulli), Description (Prshkrimi), Key
(elsi, zgjedhsi), Value (vlera), style (stili) i cili prcakton llojin e tastit
komandues, etj. Si shihet n fig. 4.12c, kur hapet lista e fushs stili zgjedhet lloji i
tastit komandues: 0 - tbrDefault (tast i zakonshm, sikur tastet Open, Save),
228
Gabimet
Case "Underlined"
If Button.Value = vbChecked Then
229
Gabimet
rtfTeksti.SelUnderline = True
Else
rtfTeksti.SelUnderline = False
End If
' Mund t vendosen m shum taste dhe m shum opcione
End Select
End Sub
Kontrolla StatusBar
Kontrolla StatusBar ofron nj dritare, e cila vendoset zakonisht n fund t
forms, n t ciln aplikacioni mund t paraqes informata t ndryshme
lidhur me statusin e aplikacionit, t dhnave, fushave, etj.
Kontrolla StatusBar ndodhet n komponenten Microsoft Windows Common
Controls 6.0. StatusBar-i mund t ndahet n m s shumti 16 objekte Panel (Panel,
kuadr, tablo) t cilat i takojn bashksis Panels. Secili Panel, mund t prmbaj
tekst ose ndonj figur. Tiparet t cilat e kontrollojn pamjen e paneleve jan:
Width (gjersia), Alignment (rreshtimi) dhe Bevel (Ngritja, theksimi). Gjithashtu
pr secilin panel mund t prdoren edhe shtat vlera t tiparit Style (stili), pr
paraqitjen automatike t t dhnave t zakonshme, si data, koha, gjendja e tasteve
speciale si CapsLock, Num, etj.
N modin e dizajnimit, mund t krijohen panelet dhe t prshtatet pamja e tyre,
duke konfiguruar vlerat e tipareve n dritaren Properties. N modin e ekzekutimit,
objektet Panel, mund t rekonfigurohet duke prcjellur ndryshimet e funksioneve
t ndryshme, varsisht prej gjendjes s aplikacionit.
230
Gabimet
231
Gabimet
(Shembulli, StatusBar1.vbp)
232
Gabimet
Ekziston edhe StatusBar-i i thjesht (Simple StatusBar), i cili nuk prmban fare
ndarje n panele, por sht nj trsi dhe paraqet tekstin n t prmes tiparit:
StatusBar.SimpleText = Teksti n StatusBari-in e thjesht.
(Shembulli: SimpleStatusBar.vbp)
Kontrolla TreeView
Kontrolla TreeView (Paraqitja n form peme) paraqet listn hierarkike t
objekteve Node (Nyje, Pik), ku secila ka emrin dhe figurn opcionale.
Zakonisht prdoret n kombinim me kontrolln ListView. Prdoret pr t paraqitur
titujt n dokumente, vlerat n indeks ose fajllat dhe folderat n disk apo njsi tjetr,
informata tjetra q mund t paraqiten n form hierarkike, etj.
Kontrolla ndodhet n komponentn Microsoft Windows Common Controls 6.0.
Pasi t krijohet kontrolla TreeView, mund ti shtohen, largohen, rreshtohen ose
manipulohen n mnyra t ndryshme objektet Node t saj, duke konfiguruar tiparet
ose duke thirrur metodat prkatse. Mund t shtohen ose largohen n mnyr
programatike objektet Node dhe t paraqiten ose fshehen t gjitha nyjet fmij.
Edhe ngjarjet: Collapse, Expand dhe NodeClick ofrojn mundsi t ndryshme t
programimit.
Navigimi (lvizja) npr pem prmes kodit, bhet duke thirrur ose duke ju
referuar objekteve Node, prmes tipareve: Root (rrnja), Parent (prindi), Child
(fmija), FirstSibling (Motra/Vllau i par), NextSibling (M/V i ardhshm,
PreviousSibling (M/V i prparshm) dhe LastSibling (M/V i fundit). Navigimi
mund t bhet edhe prmes shigjetave t tastiers.
233
Gabimet
234
Gabimet
235
Gabimet
Kontrolla ListView
Kontrolla ListView i paraqet elementet ose t dhnat prmes njrs prej
katr pamjeve t mundshme: Large Icons, Small Icons, List dhe Report,
ngjashm si dritaret e Windowsit My Computer ose Windows Explorer.
Kontrolla shquhet me paraqitje t nnbashksive t t dhnave (si elementet e
bazs s t dhnave) ose objekteve diskrete (si shabllonet e dokumenteve). Prdoret
pr paraqitjen e rezultateve t pyetsit (Query) n bazn e t dhnave, rekordeve n
tabel dhe n tandem me kontrolln TreeView, pr t paraqitur pamjen e zgjeruar t
nyjs s kontrolls TreeView.
Mund t rregullohen elementet n kolona, me apo pa tituj t kolonave, si dhe t
paraqitet ikona e bashkangjitur dhe teksti prkats.
Tipari View prcakton se cila pamje do t prdoret. Gjithashtu mund t kontrollohet
edhe pamja e Label-ave prmes tiparit LabelWrap, si dhe sortimi i elementeve n
list.
Kontrolla prmban objektet ListItem dhe ColumnHeader. Objekti ListItem definon
karakteristikat e ndryshme t elementit si: prshkrimi i elementit, ikona q i
bashkangjitet (e cila sigurohet prej nj kontrolle ImageList), teksti prkats (i
njohur si subitem (nnelement) q mund ti shoqrohet objektit ListItem q
paraqitet n pamjen Report), etj.
Prmes tiparit HideColumnHeaders (Fshehi titujt e kolonave) mund t zgjedhet a t
shihen apo jo titujt e kolonave. Titujt mund t shtohen n modin e dizajnimit dhe
n at t ekzekutimit. N modin e ekzekutimit, objekti ColumnHeader shtohet
prmes metods Add n bashksin ColumnHeaders.
Kontrolla ListView paraqet t dhnat si objekte ListItem (Element i lists). Secili
objekt ListItem mund t ket edhe ikonn e bashkangjitur me labeln e objektit.
Kur prdoret pamja Icon, Ikonat mund t manipulohen me maus duke lejuar
zvarritjen dhe lshimin (drag and drop) pr rirreshtimin e objekteve. Pamja
SmallIcon mundson paraqitjen e m shum objekteve dhe gjithashtu lejon
rirreshtimin e elementeve. Pamja List prezenton listn e sortuar t objekteve. Pamja
Report paraqet listn e sortuar, me nnelementet q lejojn paraqitjen e
informatave shtes.
Pr paraqitjen e ikonave n dy madhsi, nevojiten dy kontrolla ImageList.
Madhsia e ikonave prcaktohet prej kontrolls ImageList, si 16x16, 32x32, 48x48
ose Custom.
Shembull:
Insertojm n form, kontrollat si n fig. 4.15a, TreeView, ListView dhe ImageList.
N kontrolln ImageList insertojm disa ikona, t cilat do ti prdorim pr ti
paraqitur nyjet e kontrolls TreeView dhe elementet e kontrolls ListView.
236
Gabimet
237
Gabimet
238
Gabimet
' Emri.
Kjo bhet duke definuar tiparin View t kontrolls si 3 lvwReport dhe duke
definuar procedurn e ngjarjes ColumnClick (kliku n kolon). Shikoni shembullin
dhe provoni sortimin sipas kolonave dhe sortimin n rritje ose n zbritje.
239
Gabimet
Kontrolla ProgressBar
Kontrolla ProgressBar (Shiriti i progresit, ose Shiriti i prparimit)
mundson paraqitjen grafike t prparimit (progresit) gjat kohs s
ekzekutimit t ndonj procesi.
Kontrolla ProgressBar ndodhet n kuadr t komponents Microsoft Windows
Common Controls 6.0, kshtu q pr ta prdorur, duhet shtuar komponentn.
Kontrolla prbhet prej kornizs (shiritit) i cili mbushet derisa procesi ndodh.
Tipari Value (Vlera) prcakton sa sht mbushur kontrolla. Tiparet Min dhe Max
prcaktojn kufinjt e kontrolls. Kontrolla ProgressBar prdoret kur ndonj
operacion do t zgjas m shum se disa sekonda, pr t trhequr vmendjen e
shfrytzuesit. Zakonisht duhet ditur sa do t zgjas procesi, ashtu q vlera e kufirit t
eprm vendoset n tiparin Max t kontrolls.
Pr shembull, prdoret pr t informuar shfrytzuesin pr progresin e transferimit t
fajllave n rrjet, pr t paraqitur gjendjen e procesit q zgjat m shum se disa
sekonda, pr t informuar shfrytzuesin se sht duke u kryer ndonj llogaritje e
komplikuar q krkon koh, etj.
Pr t paraqitur progresin, tipari Value rritet vazhdimisht, (n ndonj unaz) deri sa
t arrij maksimumin e definuar prmes tiparit Max. Kshtu numri ose sasia e
segmenteve (pjeszave) q parqiten n ProgressBar sht gjithmon prpjes e
tiparit Value ndaj tipareve Min dhe Max. Pr shembull, nse tipari Min sht
caktuar n 1 dhe ai Max n 100, ather tipari Value, pr vlern 50 do t paraqes
50% t pjeszave n kontrolln ProgressBar.
Pr t programuar kontrolln ProgressBar, duhet t jet e njohur vlera kufitare
(Max) gjer n t ciln do t rritet tipari Value. Pr shembull, gjat trheqjes
(download-imit) t fajllit prej rrjets ose prej internetit, nse aplikacioni mund t
prcaktoj madhsin e fajllit n kilobajt, ather tipari Max i kontrolls mund t
caktohet n at madhsi. N rastet kur nuk ka mundsi t prcaktohet tipari Max,
prdoren animacione t tjera, t cilat prsriten vazhdimisht gjer n kryerjen e
operacionit, kur me thirrjen e metods Stop, prfundohet procesi.
Kontrolla ProgressBar zakonisht nuk paraqitet deri sa t filloj operacioni, dhe
fshehet pas prfundimit t tij. Kjo realizohet duke prcaktuar vlern e tiparit Visible
n False. N momentin e fillimit t operacionit, tipari Visible vendoset n True, e
pastaj rivendoset n False, pas prfundimit t tij.
Shembull:
Insertojm n form nj kontroll t tipit CommandButton dhe kontrolln
ProgressBar, si n Fig. 4.17. Pr prcaktimin e tipareve t kontrollave do t
shkrujam kodin vijues i cili do t kontrolloj kontrollat n modin e ekzekutimit.
240
Gabimet
Kodi:
Private Sub Form_Load()
ProgressBar1.Align = vbAlignBottom
'ProgressBar1.Visible = False
Command1.Caption = "Inicializo vargun"
End Sub
Private Sub Command1_Click()
Dim Numratori As Integer
Dim Vargu(10000) As String
ProgressBar1.Min = LBound(Vargu)
ProgressBar1.Max = UBound(Vargu)
ProgressBar1.Visible = True
(Shembulli: ProgressBar.vbp)
241
Gabimet
Kontrolla Slider
Kontrolla Slider (Rrshqitsi) sht nj dritarz q prmban treguesin
(Thumb), shkalln e definuar prej tipareve Min dhe Max dhe shenjat ndarse
treguese (Tick) opcionale.
Rrshqitsi mund t lvizet prmes zvarritjes, duke klikuar m maus n cilndo an
t rrshqitsit ose duke prdorur shigjetat n tastier. Gjat modit t ekzekutimit,
tiparet Min dhe Max mund t rivendosen n mnyr dinamike n ndonj varg t ri
t vlerave. Tipari Value kthen pozitn momentale t treguesit. Duke prdorur
ngjarjet si MouseDown dhe MouseUp, kontrolla Slider mund t prdoret pr
selektimin grafik t rangut t vlerave.
Kontrolla Slider sht e prshtatshme n rastet kur dshirohet t zgjedhet ndonj
vler diskrete e bashksis s vlerave t njpasnjshme n ndon varg. Pr
shembull, pr t prcaktuar madhsin e figurs s paraqitur n dritare, duke
zvarritur treguesin deri te shenja prkatse n vend se t bhet kjo duke dhn
vlern numerike, pr t caktuar nj vler n graf, pr t selektuar rangun e numrave
q do ti prcillet nj vargu, etj.
Pr t zgjedhur nj rang vlerash, duhet caktuar tiparin SelectRange n True dhe t
programohet kontrolla pr t selektuar nj rang vlerash duke mbajtur shtypur tastin
Shift n tastier.
Kontrolla mund t orientohet horizontalisht ose vertikalisht.
Pamja e kontrolls varet prej tiparit TickStyle (stili i shenjave ndarse). Shenjat
treguese mund t paraqiten n ann e poshtme (stili i zakonshm), t eprme, n t
dy ant, apo n asnjrn. Gjithashtu mund t programohet numri i shenjave prmes
tiparit TickFrequency. Ky tipar, n kombinim me tiparet Min dhe Max, prcakton
sa shenja do t paraqiten n kontroll. Pr shembull, nse Min sht 0, Max 100,
dhe TickFrequency 5, ather pr do klik t mausit n kontroll, do t bhet
zhvendosja pr 5 (n mesin e 21 shenjave).
Nse gjat modit t ekzekutimit ndryshohen tiparet Min dhe Max, prmes metods
GetNumTicks e cila kthen numrin e shenjave (Ticks) mund t prcaktohet numri i
shenjave.
Tiparet e kontrolls mund t prcaktohen n modin e dizajnimit ose t ndryshohen
n at t ekzekutimit. N modin e dizajnimit, nse klikohet kontrolla me tastin e
djatht dhe zgjedhet Properties, do t paraqitet dritarja pr dialog Property Pages
(Faqet e tipareve - Fig. 4.18). Dritarja ka tri faqe: General, Appearance (Paraqitja,
dukja) dhe Picture. N faqen General, prcaktohen tiparet: Min, Max,
SmallChange (Ndryshi i vogl) dhe LargeChange (Ndryshimi i madh). Vlera
SmallChange prcakton hapin e ndryshimit t vlerave gjat zvarritjes s treguesit
me maus ose me an t shigjetave n tastier (majtas, djathtas, posht lart). Vlera
LargeChang prcakton hapin e ndryshimit prmes klikut t mausit majtas ose
242
Gabimet
djathtas prej treguesit ose prmes tasteve PgUp dhe PgDown. Pr t kaluar n
fillim ose n fund t shiritit, prdoren tastet Home dhe End.
N kt faqe, prcaktohen edhe
tiparet: OleDragMode (reagimi n
zvarritje), Enabled (mundsohet
prdorimi i kontrolls),
SelectRange (aktivizon mundsin
e selektimit t nj zon duke
mbajtur shtypur tastin Shift n
tastier), si dhe tiparet SelStart
(fillimi i selektimit) dhe SelLength
(gjatsia e selektimit).
N faqen Appearance kemi tiparet
q definojn pamjen e kontrolls.
Fig. 4.18 Dritarja Property Pages
N faqen Picture mundsohet definimi i fotografis pr tregues t mausit pr rastin
kur tipari MousePointer caktohet vlera 99.
N faqen Appearance prcaktohen tiparet: Orientation (orientimi horizontal ose
vertikal), TickStyle (pozita e shenjave ndarse), TickFrequency (shpeshtsia e
shenjave ndarse), MousePointer (Treguesi i mausit) dhe TextPosition (Pozita e
tekstit shpjegues, kur mbahet shtypur tasti i mausit).
N modin e ekzekutimit mund t ndryshohen vlerat Min dhe Max, pr t prshtatur
rangje t ndryshme t vlerave.
Shembull:
Insertojm n form kontrollat si n Fig. 4.20, dhe i emrtojm lblInfo, lblVlera
dhe sldRreshqitesi.
Gabimet
Kodi:
Private Sub Form_Load()
'Marrim vleren minimale nga rreshqitesi
lblVlera.Caption = sldRreshqitesi.Min
End Sub
Private Sub sldRreshqitesi_Change()
'Ndrysho vlern prmes mausit ose tasteve ne tastier
'Prdori shigjetat dhe tastet Home, End, PgUp, PgDown
lblVlera.Caption = sldRreshqitesi.Value
End Sub
Kontrolla Chart
Kontrolla MSChart mundson vizatimin e grafikut prmes specifikave t
dhna prej shfrytzuesit. N fakt, ajo sht si nj program i veant n vehte
prmes s cilit vizatohet grafiku i funksionit.
Grafiku mund t krijohet duke i caktuar vlerat n dritaren e tipareve t kontrolls,
Property Pages, ose duke i marr t dhnat prej ndonj burimi tjetr, si p.sh,
ndonj fajll i Excel-it.
Kontrolla Chart mundson dizajnimin interaktiv t t gjitha llojeve t grafiqeve n
form, e pastaj n modin e ekzekutimit, vizatimin e grafeve, shtypjen e tyre,
ndryshimin e vlerave, etj. Kontrolla aktivizohet prmes dritares pr dialog
Components (Menya Project-Components), duke zgjedhur kontrolln Microsoft
Chart Control 6.0 OLEDB.
Kur insertohet kontrolla n form,
fillimisht ajo duket si n fig. 4.20a.
Pastaj n modin e dizajnimit ose n
modin e ekzekutimit, mund t
zgjedhet tipi i dshiruar i grafikut.
Ka mundsi t paraqitet grafiku 2
dimensional ose 3 dimensional, etj.
Gabimet
Gabimet
,
:
/
\
&
>
<
A
a
9
C
?
Literal
Prshkrimi
Digit placeholder Treguesi i pozits s shifrave (vetm vlera numerike).
Shenja decimale (ashtu si sht rregulluar n sistemin operativ, tek Regional
Settings). N mask trajtohet si literal (Shenj shpjeguese, q prseritet ashtu si
sht dhn)
Ndarsi i mijsheve, tek numrat. Ngjashm si shenja paraprake.
Ndarsi i vlerave t ors.
Ndarsi i dats.
Trajto karakterin vijues si literal. Mundson prfshirjen e shenjave si '#', '&', 'A',
dhe '?' n mask. Trajtohet si literal n mask.
Treguesi i karakterit. Pranon vlerat valide t karaktereve ANSI n rangun: 32-126
dhe 128-255.
Shndrron t gjitha shkronjat n shkronja t mdha.
Shndrron t gjitha shkronjat n shkronja t vogla.
Karakter alfanumerik (krkohet patjetr dhnja e vlers). Pr shembull: a z, A
Z, ose 0 9.
Treguesi i pozits alfanumerike (vler opcionale, mund edhe t mos jipet fare).
Treguesi i pozits s shifrave (vlera opcionale). P.sh.: 0 9.
Treguesi i pozits s karakterit ose hapsirs (vlera hyrse opcionale). Operon
njsos si treguesi i pozits & dhe siguron kompatibilitet me Microsoft Access-in.
Treguesi i pozits s shkronjave.P.sh.: a z ose A Z.
T gjitha simbolet paraqiten si literale, pra ashtu si jan vet.
246
Gabimet
Shembull:
Insertojm n form tri kontrolla t tipit Masked Edit dhe tri kontrolla t tipit
Label, si n Fig 4.21.
Kontrolla MultiMedia
Kontrolla MultiMedia mundson menagjimin e pajisjeve MCI (Media
Control Interface), ku hyjn: tastierat muzikore, MIDI Sekuencert, CDROM-at, audio player-at, videodisc player-at, dhe video rekordert.
Kjo kontroll aktivizohet me hapjen e komponents Microsoft Multimedia Control,
prmes dritares pr dialog Components (tasti i djatht n ToolBox dhe Components,
ose menya: Project-Components, CTRL+T).
Kontrolla prdoret pr ekzekutimin dhe inizimin prmes pajisjeve MCI. Kjo
prfshin edhe dgjimin e muziks prej CD-ve, (si CD-Player-i), si dhe inizimin
dhe ekzekutimin e fajllave WAV.
Kur insertohet n form, kontrolla duket sikur tastet komanduese n studimuzikore ose n video-rekorder, me tastet e zakonshme: Play, Stop, Pause, etj.
247
Gabimet
Stringu
CDAudio
Tipi i fajllit
Prshkrimi
CD audio player
DAT
Digital video
DigitalVideo
Other
Other
Overlay
Overlay
Pajisje Overlay
Scanner
Scanner
Skener
Sequencer
Sequencer
Vcr
VCR
AVI
Videodisc
ave audio
.mid
AVIVideo
Videodisc
.avi
Waveaudio
.wav
248
MCI Komanda
MCI_OPEN
MCI_CLOSE
MCI_PLAY
MCI_PAUSE or
MCI_RESUME
MCI_STOP
MCI_STEP
MCI_STEP
Prshkrimi
Hapja e pajisjes MCI
Mbyllja e pajisjes MCI
Ekzekutimi n pajisjen MCI
Pauza
Ndalja e pajisjes MCI
Lvizja prapa
Lvizja para
MCI_SEEK
Next
Seek
Record
Eject
Save
MCI_SEEK
MCI_SEEK
MCI_RECORD
MCI_SET
MCI_SAVE
Gabimet
Kalimi n fillim t shtegut paraprak, si p.sh.,
kngs paraprake.
Kalimi n fillim t shtegut vijues.
Krkimi para ose prapa.
Inizimi i hyrjes n pajisjen MCI.
Nxjerrja e CD-s prej CD ROM-it.
Ruan fajllin e hapur.
Pr shembull, pr t krjijuar nj
CD-Player t thjesht, (i cili
aktivizohet, posa t insertohet CDja muzikore n CD-ROM)
insertojm n form kontrolln
MultiMedia (MMControl1).
Fig. 4.22 Kontrolla MultiMedia
Pr ngjarjen Form_Load shkruajm kodin vijues:
Private Sub Form_Load ()
' Cakto tiparet e nevojshme per hapjen e MCI.
MMControl1.Notify = FALSE
MMControl1.Wait = TRUE
MMControl1.Shareable = FALSE
MMControl1.DeviceType = "CDAudio"
' Hape pajisjen MCI CDAudio.
MMControl1.Command = "Open"
End Sub
249
Gabimet
GABIMET
Gjat shkrurjes s programeve gjithmon prvidhen gabime, pa marr parasysh se
sa shum mundohemi q ti evitojm ato. Gabimet q paraqiten mund t ndahen n
tri grupe: gabime sintaksore, gabime t kohs s ekzekutimit (Run-Time errors)
dhe gabime logjike.
- Gabimet sintaksore, paraqiten gjat shkruarjes s gabuar t komandave ose mos
shkruarjes s ndonj urdhri apo argumenti t domosdoshm. Visual Basic-u i
detekton kto gabime posa t paraqiten gjat shkruarjes s kodit, dhe ofron ndihm
n eleminimin e tyre. Programi nuk mund t ekzekutohet gjersa t prmirsohen t
gjitha gabimet sintaksore n t.
- Gabimet e kohs s ekzekutimit, zakonisht jan jash aftsive kontrolluese t
programit. Pr shembull, ndodhin kur variabla merr ndonj vler t papritur
(pjestimi me zero), kur fajlli i krkuar nuk gjindet, etj. Visual Basic-u i lejon
shfrytzuesit ti z n grack kto gabime dhe t tentoj q ti prmirsoj.
- Gabimet logjike jan gabimet q m s vshtiri detektohen. Programi q
prmban gabime logjike do t ekzekutohet normalisht, por do t jep rezultate t
gabuara, prandaj prgjegjsia pr gabimet logjike i takon programerit. Debugger-i i
Visual Basic-ut sht nj pajisje ndihmse pr detektimin e gabimeve logjike n
program.
Pr t minimizuar paraqitjen e gabimeve, duhet pasur kujdes gjat dizajnimit t
programit, sepse sa m shum koh q i kushtohet dizajnimit, aq m pak koh do t
ket nevoj pr debug-im (eleminim t gabimeve). Preferohet prdorimi i
komenteve pr t rikujtuar se pr ka shrben pjesa e caktuar e kodit. Gjithashtu,
preferohet prdorimi i emrave me kuptim dhe q i respektojn rregullat e emrtimit
t variablave, objekteve dhe procedurave.
Sa i prket gabimeve sintaksore, veq kemi pasur rastin ti hasim gjat shkruarjes s
programeve. N vijim do t mirremi me gabimet e kohs s ekzekutimit dhe
gabimet logjike.
250
Gabimet
Gabimet
252
Gabimet
Prshkrimi i gabimit
Error Description
Overflow tejkalim i vlerave
Subscript out of range indeksi jasht rangut
Division by zero Pjestim me zero
Type mismatch Tipi i gabuar i t dhnave
Expression too complex Shprehje tepr e komplikuar
Resume without error Resume pa pasur Gabim
Bad file name or number Emr ose numr i gabuar i fajllit
File not found Fajlli nuk u gjet
File already open Fajlli veq sht i hapur
Disk full Disku i mbushur
Permission denied Qasja e ndaluar
For loop not initialized Unaz For e painicalizuar
253
Gabimet
Kt shembull do ta prdorim pr t
treguar mundsin e detektimit dhe
trajtimit t gabimeve prmes kodit
t prgjithshm pr detektimin dhe
trajtimin e gabimeve. Si shihet
edhe nga figura, n dy tekst-bokset
e para duhet t japim dy vlera
numerike t cilt do ti pjestojm
prmes tastit komandues
(cmdPjesto). Mirpo nse n vend
t numrave shtypim tekste, apo n
fushn Pjestuesi japim vlern zero,
paraqiten gabimet.
254
Gabimet
Case vbAbort
Resume Dalja
'Vazhdo tek Dalja
Case vbRetry
Resume
'Rifillo (vazhdo) n pozitn e njjt
Case vbIgnore
Resume Next
'Vazhdo n urdhrin vijues
End Select
Dalja:
Exit Sub
'**************************************************************************
End Sub
Gabimet logjike
Gabimet logjike n program, nuk e pengojn ekzekutimin e programit, mirpo n
kto raste fitohen rezultate t gabueshme dhe t paparashikueshme. Pr detektimin
e gabimeve logjike, Visual Basic-u ofron veglat pr Debug-im (eleminim t
gabimeve), t cilat mundosojn testimin e programit hap pas hapi dhe identifikimin
e gabimeve t mundshme.
Nuk ka ndonj procedur t prgjithshme e cila duhet t prcillet pr zbulimin dhe
eleminimin e gabimeve logjike dhe zakonisht bhet eleminimi i tyre hap pas hapi,
posa t zbulohen ato. Prdorimi i pajisjeve pr debug-im bhet prmes
ndrmjetsimit t tri dritareve speciale pr debug-im: Immediate Window (Dritjarja e
drejtprdrejt), Locals Window (Dritarja e variablave lokale) dhe Watch Window
(Dritarja pr prgjim, kontrollim).
Locals Immediate
Watch
Gabimet
Gabimet
Nse n program nuk sht dhn urdhri Debug.Print, n dritaren direkte nuk
shtypen fare vlerat.
Gabimet
Gabimet
cilat procedura dhe funksione jan aktive. Kjo mund t ndihmoj n rastet kur ka
shum procedura t ndrthurrura, pr t par se ku ndodhemi momentalisht, n
ekzekutimin e programit.
Pr shembull, vendosim pikn e ndrprerjes n funksionin Kubi, n rreshtin
Kubi=CInt(x^3), ekzekutojm programin dhe ai do t ndrprehet n kt rreshti.
Nse shtypet tasti Call Stack, do t tregohet se ndodhemi n funksionin Kubi i cili
sht thirrur prej procedurs Command1_Click.
259
Gabimet
260
Gabimet
261
Kontrolla ADO
Kontrolla Microsoft ADO Data Control 6.0 (OLEDB) sht ndrmjetsi
(interfejsi) i par mes aplikacionit t Visual Basic-ut dhe bazs s t
dhnave.
ADO sht nj komponente e cila prkrah mekanizmin e qasjes universale n t
dhna (Universal Data Access).
Kontrolla shtohet prmes dritares Components (Project-Components, CTRL+T).
Kontrolla ADO Data Control mund t prdoret edhe pa pasur nevoj pr t shkruar
fare kod. Keni kujdes, q t mos prdoret gabimisht kontrolla Data Control, sepse
kur insertohen n form, kan pamje t njjt. Kontrolla ADO Data Control mund
t prdoret pr tu lidhur me bazn e t dhnave, pr t hapur ndonj tabel t
caktuar, pr krijimin e tabelave virtuale (Recordset) t bazuara n ndonj pyets
(database query), pr prcjelljen e fushave n veglat tjera t Visual Basic-ut pr
paraqitje ose editim, pr t shtuar ose larguar rekorde n bazn e t dhnve, pr
mbylljen e bazs s t dhnave, etj.
Kontrolla ka tastet pr navigim (lvizje, shtitje npr t
dhna), pr t kaluar n rreshtin (rekordin)
e par, t fundit, t ardhshm dhe at paraprak.
Tiparet kryesore t kontrolls jan:
- Align reshtimi, q prcakton ku do t paraqitet kontrolla
- Caption Teksti q paraqitet n kontroll (n vend t Adodc1)
- ConnectionString prmban informatn q prdoret pr t vendosur
lidhjen me bazn e t dhnave
264
Vendosja e lidhjes
Pasi t vendoset kontrolla n form, mund t caktohet tipari ConnectionString.
Kontrolla ADO mund t lidhet n lloje t ndryshme t bazave t t dhnave.
Ekzistojn disa mnyra t lidhjes me bazn e t dhnave: prmes Data Link (lidhjes
me t dhna), duke prdorur burimin e t dhnave ODBC (Open Database
Connectivity Interfejs i cili u mundson programeve t ju qasen t dhnave n
DBMS t cilat prdorin SQL-in si standard pr qasje t n dhna), ose duke
prdorur Connection String (Stringun e lidhjes).
N vazhdim do t shqyrtojm lidhjen prmese Data Link-ut. Data Link sht nj
fajll me prapashtesn UDL i cili prmban t dhnat pr tipin e bazs s t
dhnave. Pr t krijuar (demonstruar) vendosjen e lidhjes do t prdorim bazn e t
dhnave Biblio.mdb (Baz e krijuar me Microsoft Access) e cila ndodhet n
folderin e programit dhe n rastin standard ndodhet n shtegun: C:\Program
Files\Microsoft Visual Studio\VB98\Biblio.mdb.
Si baza t gatshme, pr qllime t ushtrimeve dhe demonstrimeve t ndryshme, Visual
Basic-u dhe Microsoft Accessi prdorin bazat: Nwind.mdb (baza e t dhnave e nj
kompanie-firme) dhe Biblio.mdb (baza e t dhnave, pr nj bibliotek, e cila prmban
tabeln e titujve t librave dhe tabeln e autorve).
N CD-n e bashkangjitur me libr sht dhn folderi: VB98, n t cilin prveq dy bazave
t prmendra ndodhet edhe shembulli: Fakulteti.mdb (baza e t dhnave pr studentt e
fakultetit, me notat n provime, fletparaqitjet, lndt, etj). Pr t gjith shembujt e
programeve, sht supozuar se bazat jan vendosur n shtegun vijues: C:\Visual
Studio\VB98\baza.mdb, prandaj ose krijoni n diskun C, foldert Visual Studio\VB98 dhe
kopjoni fajllat n t ose npr shembuj n tiparet e caktuara duhet t ndryshoni shtegun,
ashtu q t prshtaten me folderin ku ju i keni kopjuar kta shembuj.
n ann e djatht, klikoni tastin e djatht t mausit dhe zgjedhni New. Prej lists s
fajllave zgjedhni Microsoft Data Link. Fajllin e krijuar, riemrtojeni si
BIBLIO.UDL. Nse Microsoft Data Link nuk paraqitet n list, ather zgjedhni
tipin Text Document dhe pastaj fajllin e krijuar, riemrtojeni BIBLIO.UDL (kur
paraqitet vrejta lidhur me ndyshimin e tipit t fajllit, prgjigjuni me Yes).
N dritare do t krijohet fajlli, me ikonn si n figur. Pastaj, klikoni
n t me tastin e djatht dhe zgjedhni Properties dhe n ekran do t
hapet dritarja Properties (Fig. 5.4a), n t ciln duhet t bhet
konfigurimi i lidhjes.
Dritarja ka disa faqe, por me
rndsi pr prcaktimin e
parametrave t lidhjes jan faqja:
Provider (ofruesi i shrbimeve), ku
duhet t zgjedhet OLE DB
Provider-i i dshiruar pr bazn e t
dhnave n t ciln dshirojm t
lidhemi. Pr baza t Accessit
zgjedhim Microsoft Jet 3.51 OLE
DB Provider, ose versionin m t ri
4.0, nse e keni n dispozicion. N
list do t paraqiten Provider-t,
varsisht prej asaj se far
programe (DBMS) keni t
instaluara n kompjuterin tuaj.
Pastaj duke klikuar tastin Next>>,
n skajin e djatht posht (ose duke
zgjedhur direkt faqen) kalojm n
faqen: Connection (lidhja).
Fig. 5.4a Zgjedhja e Provider-it
Sipas shpjegimeve n faqe, krkohet sa vijon:
Specify the fillowing to connect to Access Data (Specifiko t dhnat vijuese, pr tu
lidhur me t dhnat e Access-it )
1 Select or enter a database name (Selekto ose jepe emrin e bazs s t dhnave).
Zgjedhja bhet duke shtypur tastin me tri pika n skajin e djatht t fushs, prmes
dritares Browse ose mund t shtypni prmes tastiers shtegun deri t fajlli i bazs
s t dhnave.
2 Enter Information to log on to the database (Jepi informatat pr tu lajmruar
pr shfrytzim t bazs s t dhnave) ku mundsohet zgjedhja e emrit t
266
shfrytzuesit (shfrytzuesi standard sht Admin) dhe fjalkalimit (shifrs, passwordit). Nse lihet ashtu si sht, i selektuar opcioni Blank password (fjalkalim i
zbrazt), ather ska nevoj t ndryshohet asgj. Kur prcaktohet fjalkalimi,
mundsohet edhe ruajtja e tij (Allow saving password).
Pasi t konfigurohen t dhnat e
nevojshme, prmes tastit Test
Connection (Testo lidhjen), q
ndodhet n skajin e djatht posht
t dritares, bjm testimin e lidhjes
s krijuar. Nse do gj sht n
rregull, dhe vendosja e lidhjes ka
qen e sukseshme, ather n ekran
do t paraqitet dritarja me porosin
se testimi i lidhjes ishte i
suksesshm (Fig. 5.4c).
Tani fajlli UDL sht krijuar dhe mund t prdoret pr t ju ndar tiparit
ConnectionString (stringu i lidhjes) t kondrolls ADO.
267
Pastaj klikojm OK dhe kshtu tani sht konfiguruar tipari ConnectionString dhe i
sht prcaktuar lidhja n t dhna.
Prcaktimi i tabelave
Pasi q kontrolla ADO t lidhet me bazn e t dhnave, duhet t prcaktohet tabela
pr t. Pra, si u tha edhe m hert, pr do tabel nevojitet nj kontroll ADO.
Prcaktimi i tabels bhet prmes tiparit RecordSource. Tabelat prcaktohen duke
br pyetsit pr bazn e t dhnave, prmes SQL-it (Structured Query Language),
prmes t cilit formulohet pyetja pr bazn e t dhnave. Baza e t dhnave
prgjigjet prmes krijimit t tabels s re me rekordet dhe fushat t cilat e
plotsojn kushtin e parashtruar n pyets.
N tiparin RecordSource (Burimi i
t dhnave) n dritaren Properties,
shkruajm urdhrin SQL ose
klikojm tastin me tri pika n skajin
e djatht dhe n dritaren q hapet
Property Pages (Fig. 5.6) n pjesn
Command Text (SQL) shkruajm
urdhrin SQL: SELECT * FROM
Authors.
Me kt urdhr do t lexohen t
gjitha t dhnat (rekordet) nga
tabela Authors (Autort).
Fig. 5.6 Tipari RecordSource
268
Nse duhet lexuar t gjitha fushat, ka mundsi q n fushn Command Type (Tipi i
komands) t zgjedhet opcioni 2-adCmdTable, e pastaj n fushn Table or
StoredProcedure Name t zgjedhet emri i tabels (Authors).
Pastaj klikojm OK dhe mbyllet dritarja Property Pages. N kt mnyr
prcaktohet tipari RecordSource.
Prcaktimi i tiparit RecordSource krijon edhe tiparin Recordset, i cili sht shum i
rndsishm.
N kt mnyr kontrolla ADO sht lidhur n bazn e t dhnave
(ConnectionString), prmes lidhjes n tabeln e caktuar (RecordSource).
SQL sht zhvilluar n fillim t viteve 1970 prej IBM-it, pr prdorim me bazat
relacionale t t dhnave. Gjuha sht standardizuar n vitin 1986 nga ANSI
(American National Standards Institute). Visual Basic-u prdor versionin e SQL
q i nnshtrohet rregullave t ANSI-89 SQL.
SQL sht gjuh shum e fuqishme dhe nj prdorim i saj sht prdorimi me
qllim q t krkohen informatat e caktuara prej bazs s t dhnave dhe pr
paraqitjen e t dhnave me rradhitje t caktuar.
Pasi nuk ka mundsi q ktu t jepen shpjegime t detajuara pr SQL-in, do t
shqyrtojm mnyrn e prdorimit t katr urdhrave q prdoren m s shpeshti me
qllim t krkimit t t dhnave t caktuara gjat puns me bazat e t dhnave,
duke supozuar se kemi dy tabela Tabela1 dhe Tabela2.
1. Paraqitja e t dhnave me renditje t caktuar alfabetike
SELECT * FROM Tabela1 ORDER BY Fusha1 ASC
SELECT * FROM Tabela1 ORDER BY Fusha1 DESC
Fjalt ASC dhe DESC prcaktojn rradhitjen n rritje (A->Z) ose n rnie (Z->A).
2. Paraqitja e rekordeve q e plotsojn kushtin e caktuar:
SELET * FROM Tabela1 WHERE Kushti1
269
Fakulteti.mdb
Nse nuk prcaktohet renditja ASC ose DESC, ather nnkuptohet ASC (vler e
predefinuar sht ASC).
Pra, si shihet, programi sht realizuar n trsi pa pasur nevoj fare pr shkrurje
t kodit, sepse kontrolla ADO me aftsit e saj sht ajo q i siguron t gjitha t
gatshme.
272
Prmes kodit mund t testohen edhe tiparet BOF (Beginning of File fillimi i
fajllit) dhe EOF (End of File fundi i fajllit) t RecordSet-it t kontrolls ADO.
BOF dhe EOF marrin vlern TRUE kur rekordi aktual sht pozicionuar n fillim,
para t dhnave dhe n fund, pas t gjitha rekordeve. Nse t dy tiparet jan TRUE
njkohsisht, ather do t thot se baza e t dhnave sht e zbrazt.
Pr t krkuar rekordin e caktuar n bazn e t dhnave (rekordin i cili e plotson
kushtin e dhn), prdoret metoda Find (Gjeje, krkro). Metoda Find vepron n
tiparin Recordset dhe ka argumentet vijuese: Criteria (Kriteri, Kushti) q sht
argument i domosdoshm pr krkim, dhe tri argumentet opcionale: SkipRows
(Numri i rreshtave t kaluar, nse nuk fillonkrkimi prej zeros), SearchDirection
(kahja e krkimit, para, prapa) dhe Start (vler opcionale pr pozitn e fillimit t
krkimit).
adoStudentet.Recordset.Find Kushti, [NumriRreshtave], [KahjaeKerkimit], [Fillimi]
274
Shembull:
N shembullin e kaluar, i
shtojm edhe kontrollat q
shihen n pjesn e poshtme t
fig. 5.9a: lblInfo (Caption Emri q krkohet), txtGjeje,
cmdGjeje (Caption-Gjeje),
cmdShkronja
(Caption - A, Index - 0) dhe
prapavin pas cmdShkronja.
Pr cmdShkronja kemi
definuar tiparin Index-0 pr
t krijuaj varg t kontrollave.
Fig. 5.9a Krkimi i rekordeve
N modin e ekzekutimit, forma duket si n fig. 5.9b.
N fushn txtGjeje, shkruhet emri q krkohet dhe pastaj klikohet tasti Gjeje, pr t
krkuar emrin e dhn. Nse emri i krkuar gjindet, ather kalohet n rekordin
prkats dhe paraqiten t dhnat pr t. Nse emri i krkuar nuk gjindet, paraqitet
mesazhi prkats dhe kalohet n rekordin m t afrt me emrin e krkuar.
N pjesn e poshtme, prej
cmdShkronja, prmes kodit
do t krijojm edhe shkronjat
tjera (t alfabetit anglez) dhe
pastaj prmes mausit, duke
klikuar shkronjn prkatse,
krkohet emri i par q fillon
me at shkronj. Pastaj
prmes tasteve pr navigim,
levizet npr rekordet e
afrta ose kalohet n fillim
apo n fund.
Fig. 5.9b Krkimi i rekordeve modi i
ekzekutimit
Pjesa e kodit, q duhet ti shtohet kodit t shembullit paraprak:
275
Pasi t definohen t gjitha fushat, n dritaren Table Structure, shtypet tasti Build
the Table (Krijo tabeln).
Nse duhet larguar Indeksi, shtypet tasti Remove Index (Largo Indeksin).
Shtypim tastin Add Index dhe krijojm Indexin pr fushat Nr (Name - NrIndx,
IndexedField-Nr (paraqitet kur e zgjedhim fushen Nr pr ta indeksuar) dhe pr t
aktivizojme fushat: Primary dhe Unique), si dhe fushn Emri (Name EmriIndx,
por i deaktivizojm fushat Primary dhe Unique). Fushat e indeksuara mundsojn
krkimin me Find. Pra n kt shembull, mund t krkojm fushat sipas numrit Nr
dhe sipas Emrit.
Me tastin Print Structure (shtype strukturen) mund t shtypet struktura e tabels.
N fund, me Close, mbyllet dritarja.
Tani, dritarja Database Window (Fig.
5.10d) prmban strukturn e tabels.
Nse klikojm dy her ikonn e
tabels (Adresari), n ekran do t
hapet forma e prgatitur prej
programit (Fig. 5.10e), e cila prmes
tasteve: Add (Shto), Update (azhuro),
Delete (fshije), Find (gjeje) Refresh
(rifresko) dhe Close (mbylle),
mundson prdorimin e bazs s t
dhnave.
t rekordit t ri, tasti merr titullin Cancel (anulo) dhe nse shtypet anulohet shtimi i
rekordit. Gjithashtu gjat ksaj kohe, n kontrolln pr navigim paraqitet teksti:
New Record (Rekord i ri). Pastaj klikohet Update dhe prgjigjeni me Yes pr t
ruajtur rekordin e ri. Me Refresh, bhet rirenditja e rekordeve t shtuara dhe
kthehen t gjitha rekordet pas krkimit me Find me rast filtrohen vetm rekordet
q e plotsojn kushtin e dhn pr krkim.
Me Find krkohet rekordi i caktuar,
me Delete fshihet rekordi aktual,
etj.
N fund, me Close mbyllet forma.
Lvizja npr rekorde bhet
normalisht, prmes tasteve t
zakonshme t kontrolls pr
navigim.
Fig. 5.10e Forma e krijuar prej
Data Manager-it
Preferohet t plotsoni disa rekorde dhe t provoni si funksionon forma.
Forma paraqet t gjitha fushat e rekordit, pr do rekord n veanti duke prdorur
vegln Data Control (Use Data Control on New Form).
DBGrid
Pasta, klikojm tastin And into Criteria (Dhe n kriter) ose Or Into Criteria
(Ose n kriter), prmes t cilave pastaj mund t shtojm kritere t reja dhe ti
kombinojm me AND ose me OR. Prmes List Possible Values (Listo vlerat e
mundshme), n fushn Value listohen vlerat e fituara. Mund t bhet grupimi
(Group By) ose Sortimi (Order By), lidhja me tabelat tjera (Set Table Joins) dhe
mund t kufizohet numri i vlerave q do t paraqiten (Top N Value), n baz t
numrit t caktuar t rekordeve ose prqinjes s caktuar t rekordeve t cilat e kan
plotsuar kriterin e pyetsit. Kur t klikohet And into Criteria ose Or into
Criteria, n fushn Criteria, n fund t dritares, paraqitet kriteri i definuar. N
fund t dritares ndodhen kemi tastet: Run (Ekzekuto), Show (paraqite), Copy
(kopjo), Save (Ruaje), Clear (pastro) dhe Close (Mbylle) prmes t cilave
manipulohet me pyetsin e krijuar. Me Save e ruajm pyetsin e definuar, me rast
n ekran do t paraqitet dritarja e cila krkon t definohet emri i pyetsit q do t
ruhet (qryEmratMeA). Pasi t mbyllim dritaren Query Builder (Duke klikuar tastin
Close) dhe t kthehemi n dritaren e VisData, n dritaren Database Window (Fig.
5.10d) do t paraqitet edhe pyetsi i krijuar. Nse emrin e pyetsit e klikojm me
tastin e djatht dhe n menyn e kontekstit zgjedhim opcionin Design, ather n
dritaren SQL Statement (Fig. 5.10b), do t paraqitet urdhri prkats SQL, pr
pyetsin e krijuar.
282
283
Kur shtypet tasti Build the Form (Krijo formn) n dritaren e Visual Basic-ut do t
krijohet forma me emrin e definuar dhe parashtesn frm (frmAdresari.frm Fig.
5.12b) t ciln pastaj mund ta ruajm si projekt t veant.
284
Shembull:
Pr t demonstruar menaxhimin e bazs s t dhnave prmes Visual Basic-ut, do
t krijojm kopjen e bazs s t dhnave Adresari.mdb dhe kopjen do ta ruajm me
emrin Adresari-Telefonat.mdb. Gjithashtu, pr t krijojm fajllin UDL, (AdresariTelefonat.udl) dhe e lidhim me fajllin prkats. Pastaj pr kontrolln ADO q e
prdorim pr ta lidh n at baz, e zgjedhim tiparin ConnectionString AdresariTelefonat.udl.
Fillojm nj projekt t ri dhe n form (frmTelefonat) insertojm kontrollat si n
(Fig. 5.12a).
Kodi:
Private Sub Form_Load()
Dim i As Integer
'Cakto madhsin e tasteve
cmdShkronja(0).Width = (frmTelefonat.ScaleWidth - 2 * cmdShkronja(0).Left) / 26
For i = 1 To 25
Load cmdShkronja(i) ' Krijo elementin e ri n vargun e kontrollave
'Vendose shkronjn e re afr asaj paraprake
cmdShkronja(i).Left = cmdShkronja(i - 1).Left + cmdShkronja(0).Width
'Cakto tiparin Caption (shkronjn prkatse) dhe bje t dukshme
cmdShkronja(i).Caption = Chr(vbKeyA + i)
cmdShkronja(i).Visible = True
Next i
End Sub
Private Sub cmdShkronja_Click(Index As Integer)
Dim BookMark1 As Variant
'Shenjo pozitn, per t'u kthyer ne rast se nuk gjendet ajo qe kerkohet
BookMark1 = adoTelefonat.Recordset.Bookmark
'Kalo ne fillim te tabeles per te filluar kerkimin nga fillimi
adoTelefonat.Recordset.MoveFirst
'Kalo tek emri qe fillon me ate shkronje nese ekziston
285
'Shto rekordin e ri
286
Format MDI
Kontrolla DataList
Kontrolla DataList sht ListBox i lidhur n t dhna i cili mbushet
(popullohet) automatikisht prej ndonj fushe nga kontrolla e lidhur n
burimin e t dhnave (Ado, Data, etj.).
Kontrolla mund t prdoret edhe pr azhurimin e ndonj fushe n kontrolln e
njjt t t dhnave ose t ndonj fushe t lidhur t nj burimi tjetr t t dhnve
(tabel tjetr, n relacion me tabeln e par).
Disa nga tiparet m t rndsishme jan:
- DataSource (burimi i t dhnave) - emri i kontrolls q azhurohet prmes
zgjedhjes s vlers n kontroll
- DataField (fusha e t dhnave) - emri i fushs q azhurohet n Recordset
t specifikuar prej DataSource
- RowSource (burimi i rreshtit) emri i kontrolls s t dhnave q prdoret
si burim i elementeve n list
- ListField (fusha e lists) emri i fushs n Recordset, i specifikuar nga
RowSource q prdoret pr t mbushur listn
287
Format MDI
Kontrolla DataCombo
Kontrolla DataCombo sht ComboBox i lidhur n t dhna i cili mbushet
(popullohet) automatikisht prej fushs nga kontrolla e lidhur n burimin e t
dhnave (Ado, Data, etj.).
Kontrolla DataCombo sht e ngjashme me kontrolln DataList, por lista e saj
rnse (Drop-Down List) hapet kur t klikohet tasti n skajin e djatht t kontrolls
dhe nuk sht e hapur tr kohn, si n rastin e kontrolls DataList, kshtu q vjen
n shprehje kur krkohet kursimi i hapsirs n form, etj. Prndryshe, n fushn pr
288
Format MDI
Kontrolla DataGrid
Kontrolla DataGrid (Rrjeta e t dhnave) mundson manipulimin e
rreshtave dhe kolonave t cilat paraqesin rekordet dhe fushat e objektit
Recordset.
Kur definohet tipari DataSource (burimi i t dhnave) i kontrolls DataGrid,
kontrolla automatikisht mbushet me t dhna dhe titujt e kolonave paraqiten
automatikisht prej t dhnave t objektit Recordset t kontrolls s t dhnave
(ADO, Data, etj.). Kontrolla n fakt sht nj koleksion fiks i kolonave, me numr
t paprcaktuar t rreshtave.
Secila qelul e rrjets (DataGrid) mund t mbaj vlera tekstuale, por jo edhe
objekte t lidhura ose t mbjellura. Ka mundsi t caktohet qelula aktuale prmes
kodit ose n modin e ekzekutimit shfrytzuesi mund ta ndryshoj at prmes mausit
ose shigjetave n tastier. Qelulat mund t editohen n mnyr interaktive duke
shkruar n qelul ose prmes programit. Qelulat mund t zgjedhen nj nga nj ose
nga nj rresht i tr.
Nse teksti n qelul sht shum i gjat pr tu paraqitur n trsi, teksti
mbshtillet n rreshtin tjetr brenda qelules s njjt. Pr t paraqitur tekstin e
mbshtjellur (Wrapped text) duhet t rritet vlera e tiparit Width (gjersia) t objektit
Column (kolona) dhe/ose e tiparit RowHeight (lartsia e rreshtit) t kontrolls
DataGrid.
Pr t prcaktuar numrin e rreshtave dhe kolonave, prdoret tipari Count (numri) i
koleksionit Columns t kontrolls DataGrid si dhe tipari RecordCount (numri i
rekordeve) t objektit RecordSet. Kontrolla DataGrid mund t ket aq rreshta, sa
ka mundsi t prkrah sistemi (kompjuteri) dhe deri n 32767 kolona.
Kur zgjedhet nj qelul, prcaktohet tipari ColIndex duke zgjedhur nj prej
objekteve Column t koleksionit Columns t kontrolls DataGrid. Tiparet Text dhe
Value t objektit Column i referohen prmbajtjs s qeluls aktuale. Vlers n
rreshtin aktual mund ti qasemi prmes tiparit Bookmark, i cili ofron qasje n
rekordin e objektit t Recordset-it (q ndodhet nn t, sht baz pr t). Secila
kolon n kontrolln DataGrid ka fontin e vet, kufirin, mbshtjelljen e tekstit dhe
atributet tjera, trsisht t pavarura prej kolonave tjera. Gjat kohs s ekzekutimit,
289
Format MDI
290
Format MDI
Option1.Value = True
DataList1.Visible = True
DataCombo1.Visible = False
End Sub
Private Sub Datalist1_Click()
' Deklaro variabln stringun e cila do t prmbaj pyetsin e ri.
' Pyetsi i ri prmban tiparin BoundText t kontroll DataList1
' pr t prcaktuar vlern e Numrit t indeksit. Pyetsi i ri
' gjen t gjitha fletparaqitjet me Numr t njjt t indeksit (Nr i Indeksit).
' Pyetsi i ndahet tiparit RecordSource (Burimi i t dhnave) t kontrolls ADO
' t emrtuar adoFletparaqitjet. Pas rifreskimit t kontrolls,
' rrjeta/tabela DataGrid azhurohet me Recordset-in e ri t t gjitha
' fletparaqitjeve q kan at numr t indeksit
Dim strQuery As String
'strQuery = "SELECT * FROM Fleteparaqitjet WHERE [Nr i Indeksit] = '" _
'& DataList1.BoundText & "'"
strQuery = "SELECT * FROM Studentet INNER JOIN Fleteparaqitjet ON " _
& "Studentet.[Numri i Indeksit]=Fleteparaqitjet.[Nr i Indeksit] " _
& " WHERE [Nr i Indeksit] = '" & DataList1.BoundText & "'"
Wiew adoFleteparaqitjet
.RecordSource = strQuery
.Refresh
End Wiew
Wiew DataGrid1
.ClearFields
.ReBind
End With
End Sub
Private Sub DataCombo1_Change()
Dim strQuery As String
strQuery = "SELECT * FROM Fleteparaqitjet WHERE [Nr i Indeksit] = '" _
& DataCombo1.BoundText & "'"
'strQuery = "SELECT * FROM Studentet INNER JOIN Fleteparaqitjet ON " _
'& "Studentet.[Numri i Indeksit]=Fleteparaqitjet.[Nr i Indeksit] " _
'& " WHERE [Nr i Indeksit] = '" & DataCombo1.BoundText & "'"
291
Wiew adoFleteparaqitjet
.RecordSource = strQuery
.Refresh
End Wiew
Wiew DataGrid1
.ClearFields
.ReBind
End Wiew
End Sub
Private Sub Option1_Click()
DataList1.Visible = True
DataCombo1.Visible = False
End Sub
Private Sub Option2_Click()
DataList1.Visible = False
DataCombo1.Visible = True
End Sub
Format MDI
Format MDI
Kontrolla MSHFlexGrid
Kontrolla MSHFlexGrid (rrjeta hierarkike fleksibile e t dhnave) paraqet
dhe operon me t dhnat tabelare.
Kontrolla MSHFlexGrid ofron fleksibilitet pr sortim, bashkim dhe formatizim t
tabelave, t cilat prmbajn t dhna tekstuale dhe fotografi. Kur lidhet me ndonj
kontroll t t dhnave (Ado, Data), kontrolla paraqet t dhnat vetm pr lexim
(read-only).
N qelul t kontrolls MSHFlexGrid mund t vendoset teksti, fotografia ose t
dyja. Tiparet Row (rreshti) dhe Column (kolona) specifikojn qeluln aktuale n
kontroll. Mund t prcaktohet qelula aktuale prmes kodit, ose shfrytzuesi mund
ta ndryshoj at gjat kohs s ekzekutimit prmes mausit ose shigjetave n
tastier. Tipari Text i referohet prmbajtjes s qeluls aktuale.
Nse teksti n qelul sht tepr i gjat pr tu paraqitur n trsi, aktivizohet tipari
WordWrap (mbshtjellja e tekstit). Pr t rritur gjersin e kolonave dhe lartsin e
rreshtave, prdoren tiparet ColWidth dhe RowHeight.
Pr t prcaktuar numrin e kolonave dhe rreshtave n kontrolln MSHFlexGrid
prdoren tiparet Col dhe Row.
Vetia kryesore e kontrolls MSHFLexGrid sht aftsia e saj pr t paraqitur
rekordsetet hierarkike tabelat relacionale t paraqitura n form hierarkike.
Mnyra m e leht pr t krijuar rekordset hierarkik sht prdorimi i dizajnerit
Data Environment (Ambienti i t dhnave). Rekordseti hierarkik mund t krijohet
edhe prmes kodit, duke prdorur komandn Shape (Forma) si RecordSource
(burim t t dhnave) pr kontrolln ADO. Komanda Shape definon strukturn e
Recordset-it hierarkik dhe komandave t nevojshme pr t populluar at me t
dhna.
Pjes e komands Shape sht pyetsi i cili i ndahet data provider-it (ofruesit t
t dhnave) baz dhe i cili kthen objektin Recordset. Sintaksa e pyetsit varet nga
krkesat e ofruesit t t dhnave. Zakonisht do t jet SQL, edhe pse ADO nuk
krkon prdorimin e ndonj gjuhe t veant. Mund t prdoret SQL klauzula
JOIN pr t vendosur relacion mes dy tabelave, mirpo Recordset-i hierarkik do t
prezentoj informatat n mnyr m efikase. Secili rresht i Recordset-it t krijuar me
JOIN prsrit informatat redundante prej njrs tabel. Recordset-i hierarkik ka
293
Format MDI
294
Format MDI
Data Environment
Prej versionit 6.0, risi n Visual Basic sht edhe Data Environment (Ambienti i t
dhnave). N vend se t mendohet pr disa vende t ndryshme n t cilat i
referoheni bazs s t dhnave, tani kjo gj bhet vetm njher dhe kjo e dhn
prcillet npr tr aplikacionin. Objekti Data Environment mund t konsiderohet
si kontroll universale pr t dhnat. Data Environment sht n dispozicion
gjithmon, por n vend t lidhjes vetm me nj tabel ose pyets, mund t bhet
lidhja me t gjitha tabelat dhe pyetsit e bazs s t dhnave prmes vetm nj
objekti.
Gjat ruajtjes s projektit, DataEnvironment ruhet si fajll i veant me
prapashtesn .dsr dhe pastaj mund t prdoret edhe n projekte tjera.
Dizajneri i Data Environment sht nj ambient interaktiv i modit t dizajnimit, pr
t krijuar qasje n t dhna n modin e ekzekutimit prmes programit. N modin e
dizajnimit prcaktohen vlerat pr objektet Connection (lidhja) dhe Command
(komanda), shkruhet kodi pr t ju prgjegjur ngjarjeve t kontrolls ADO,
ekzekutimit t komandave, krijimit t hierarkive dhe prmbledhjeve t ndryshme t
t dhnave. Gjithashtu, objekti Data Environment mund t zvarritet n forma ose
raporte, pr t krijuar kontrolla t lidhura n t dhna.
Prmes dizajnerit Data Environment mund t realizohen kto detyra:
- T shtohet dizajneri Data Environment n projektin e Visual Basic-ut
- T krijohet objekti Connection (lidhja)
- T krijohen objektet Command (komandat) t bazuara n procedurat e
ruajtura, tabelat, pyetsit dhe urdhrat SQL.
- T krijohen hierarki t komandave t bazuara n grupimin e objekteve
Command ose duke i lidhur me nj ose disa objekte Command.
- T shkruhet kodi pr objektet Command dhe Recordset.
- T zvarriten fushat prbrenda objektit Command prej dizajnerit Data
Environment n form t Visual Basic-ut ose t dizajnerit Data Report.
Format MDI
296
Format MDI
Format MDI
Format MDI
Data View
N shiritin e veglave t Visual Basic-ut, kemi edhe ikonn Data View, e cila
mundson hapjen e dritares Data View (Pamja e t dhnave-Fig. 5.16).
Edhe kjo dritare sht nj prej
risive n versionin Visual Basic
6.0. Dritarja mund t vendoset n
skaje t dritares s Visual Basic-ut,
sikur dritaret Project Explorer, ose
Properties. N kt dritare
paraqiten t gjitha llidhjet t cilat
jan shtuar prmes dizajnerit Data
Environment. N fig. 5.16 shihet
lidhja e krijuar me bazn e t
dhnave Fakulteti.mdb. Pra pr
secilin objekt paraqitet folderi
prkates dhe struktura hierarkike e
objekteve t bazs s t dhnave.
Fig. 5.16 Dritarja Data View
N folderin Tables, shihen tabelat, kurse n folderin Views, paraqiten pyetsit dhe
procedurat e ruajtura (Stored Procedures).
Pr t krijuar objekt t ri Command n dritaren e dizajnerit DataEnvironment,
mund t bhet zvarritja e objektit t dshiruar (tabels, pyetsit, etj.) nga dritarja
Data View, n dritaren e dizajnerit Data Environment.
Dizajneri i pyetsve
Dritarja pr dizajnimin e pyetsve (Query Designer) mundson krijimin e pyetsit
dhe vendosjen e tyre n bazn e t dhnave. Kjo mnyr ka prparsi ndaj
prdorimit SQL sepse baza e t dhnave mund t prkthej (kompajloj Compile)
pyetsin pr ta ekzekutuar m shpejt kur t startohet prej aplikacionit.
Ka mundsi, q t kalohet n Access dhe atje t krijohet pyetsi e pastaj t thirret
n program, sipas nevojs.
Pr t krijuar nj pyets, prmes dizajnerit t pyetsve, n dritaren e dizajnerit
DataEnvironment (deStudentet), klikojm me t djathtn n lidhjen cnnStudentt
dhe zgjedhim Add Command. N komandn e krijuar, prsri klikojm me t
djathtn dhe zgjedhim Properties, pr t hapur dritaren Command Properties (Fig.
5.15d).
299
Format MDI
Format MDI
Pr zgjedhjet e bra, krijohet edhe urdhri SQL, i cili shihet nn fushat e zgjedhura.
Pataj, n pjesn e tabelave ose t fushave t zgjedhura t pyetsit, klikohet me
tastin e djatht dhe zgjedhet Run (Ekzekuto), pr t ekzekutuar pyetsin, me rast
n pjesn e poshtme t dritares paraqitet rezultati i fituar i pyetsit t dizajnuar.
Rujm pyetsin (Save) dhe mbyllim
dritaren. Tani n dritaren
DataEnvironment do t shihet edhe
pyetsi qryStudentetNotat (Fig.
5.17b) dhe fushat e tij.
Cilindo prej objekteve Command t
dizajnerit DataEnvironment mund
ta zvarrisim n dritaren e forms s
Visual Basic-ut dhe automatikisht
do t krijohen t gjitha fushat q i
prmban ai objekt. P.sh., zvarrisim
n form pyetsin e krijuar
qryStudentet dhe krijojm formn
n t ciln do t shihen t dhnat q
i parmban pyetsi (Fig. 5.17c).
Fig. 5.18b Pyetsi n dritaren
DataEnvironment
E modifikojm formn, duke ia shtuar
labeln Studentt-Notat dhe duke ia
shtuar katr tastet komanduese pr
navigim (lvizje npr rekorde).
Kodi do t jet i njjt, si n rastet kur
prdorej kontrolla Ado, vetm se tani
urdhrat pr lvizje do t ken formn:
deStudentet.rsqryStudentetNotat.MoveFirst
301
Format MDI
Paraqitja hierarkike
Pr t paraqitur t dhnat prej tabelave t ndrlidhura, n form hierarkike, prdoret
kontrolla MSHFlexGrid, por ka mundsi q kjo t bhet automatikisht prej Visual
Basic-ut, nse krijohen pyetsit (komandat) hierarkike.
Pr t krijuar strukturn hierarkike,
n dritaren e dizajnerit
DataEnvironment, pasi t definohet
lidhja (connection), krijojm
komandn e par (pyetsin e par),
e pastaj e klikojm me tastin e
djatht dhe n meny zgjedhim Add
Child Command (Shto komand
fmij). Gjat definimit t
parametrave t komands fmij,
duhet vendosur relacionin me
komandn prind, prmes faqes
Relation, t dritares Command
Properties (Fig. 5.15d).
Kur t krijohet struktura, ajo mund
t zvarritet n form t projektit t
Visual Basic-ut dhe programi
automatikisht do t krijoj
kontrollat e nevojshme.
Fig 5.18a. Struktura Hierarkike
Prndryshe mund t insertohet nj kontroll MSHFLexGrid, pr t ciln definohen
tiparet: DataSource DataEnvironment-i i krijuar dhe DataMember emri i
komands prind si n fig. 5.18b. (Shembulli: De-FlexGrid.vbp).
Format MDI
303
Format MDI
Pasi q ADO i qaset bazs s Accessit prmes OLEDB Provajder-it dhe ai duhet t
definohet n metodn Open( ). Vargu pas metods Open( ) gjithashtu mund t ruhet
n tiparin ConnectionString.
Nse lidhja vendoset me ndonj baz t ndonj DBMS tjetr, si p.sh SQL Server,
ather duhet definuar Provajder-in prkats (SQLOLEDB).
Leximi i t dhnave prej bashksis s t dhnave (Recordset-it)
Leximi i t dhnave bhet prmes objektit Command. Kodi pr hapjen e tabels
Studentet, duke prdorur lidhjen cnnStudentet do t dukej:
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeySet
rsLockType = adLockOptimistic
rs.Open Studentet, cnnStudentet, , adCmdTable
Format MDI
Shtimi i rekordeve
Pr shtimin e rekordeve prdoret metoda AddNew( ). Pr t shtuar nj rekord n
bashksin e t dhnave (Recordset), prdoret kodi vijues:
Dim cnnStudentet as ADODB.Connection
Dim rsStudentet as ADODB.Recordset
Set rsStudentet = New ADODB.Recordset
rsStudentet.Open Studentet , cnnStudentet , adOpenStatic, adLockOptimistic
rsStudentet.AddNew
rsStudentet(Numri i Indeksit) = Nr
rsStudentet(Emri) = Emri
...
fushat tjera
rsStudentet.Update
Ndryshimi i rekordeve
Pr ndryshimin e rekordit n objektin Recordset prdoret kodi vijues:
Dim cnnStudentet as ADODB.Connection
Dim rsStudentet as ADODB.Recordset
Set rsStudentet = New ADODB.Recordset
rsStudentet.Open SELECT * FROM Studentet WHERE Emri = Emri, cnnStudentet, _
adOpenStatic, adLockOptimistic
rsStudentet(Numri i Indeksit) = Nr
rsStudentet(Emri) = Emri
...
fushat tjera
rsStudentet.Update
Ndrprerja e lidhjes
Pr ndrprerjen e lidhjes, prdoret kodi vijues:
cnnStudentet.Close
Set cnnStudentet = Nothig
305
Format MDI
DataReport
Pr prpilimin e raporteve m t prshtatshme pr shtyp, Visual Basic-u ofron
objektin DataReport. Objekti DataReport (Raporti i t dhnave) sht objekt i
programueshm i cili prezenton dizajnerin Data Report.
Pr t insertuar objektin DataReport, n menyn Project zgjedhim Add Data
Report. Nse nuk paraqitet opcioni n mny, ather e shtojm, duke zgjedhur:
Project-Components, e pastaj n dritaren Components, kalojm n faqen Designers
dhe aktivizojm opcionin Data Report.
Data Report gjeneron raportet t cilat prdorin rekordet prej bazave t t dhnave.
Pr t prdorur objektin DataReport, duhet t konfigurohet burimi i t dhnave
(data source) si DataEnvironment, pr t ju qasur bazs s t dhnave. Pastaj pr
objektin DataReport duhet prcaktuar tiparet:
- DataSource pr t definuar burimin e t dhnve pr raportin.
- DataMember pr elementin e caktuar t t dhnave
Klikohet raporti me t djathtn dhe zgjedhet Retrive Structure (Nxirre strukturn)
pr t krijuar strukturn e raportit me seksionet si Header, Footer, Details, etj.
Dizajneri i raporteve sht shum i ngjashm me dizajnerin e raporteve n Access,
prandaj prvoja me raportet e Accessit, do t jet lehtsim n prgatitjen e
raporteve n Visual Basic.
Pastaj n pjesn prkatse, shtohen kontrollat e nevojshme (klikohet n zon me t
djathtn dhe n meny zgjedhet Insert Controls). Pr kontrollat e insertuara
definohen tiparet: DataMember dhe DataField pr seciln kontroll. N kt meny
paraqiten edhe opcionet Current Page Number (Numri i faqes aktuale), Total
Number of Pages (Numri total i faqeve), Current Date (Data aktuale) me formatin
e gjat dhe t shkurt, Current Time (Koha aktuale) dhe Report Title (Titulli i
raportit). Kto fusha ofrojn t dhnat e gatshme, t cilat jan t prshtatshme pr
tu paraqitur n raportet q krijohen. Kto fusha, pastaj kombinohen me kontrolla t
tipit Label pr t dhn informatat e duhura pr to.
Pr ta paraqitur raportin n modin e ekzekutimit, prdoret metoda Show.
Objekti DataReport prdoret pr t ndryshuar n mnyr programore pamjen dhe
sjelljet e raportit duke ndryshuar shtrirjen e seksioneve t raportit. Dizajneri
gjithashtu ofron mundsin e eksportimit t raportit duke prdorur metodn
ExportReport, e cila mundson specifikimin e objektit ExportFormat dhe
koleksionit ExportFormat, pr ti prdorur si shabllon pr raportet.
306
Format MDI
Shembull:
N nj projekt t ri, krijojm
objektin DataEnvironment pr
lidhje me bazn e t dhnave
Adresari.mdb. Krijojm objektin
DataEnvironment (deTelefonat)
dhe vendosim lidhjen me bazn e t
dhnave (Connection cnnTelefonat dhe objektin
Command (Adresari tabela
Adresari)).
Pastaj insertojm objektin
DataReport (rptAdresari), e
klikojm me t djathtn dhe
zgjedhim Retrive Structure. Me
kt rast krijohet struktura e raportit
me seksionet prkatse.
Fig. 6.6a - DataEnvironment
N pjest prkatse t raportit, insertojm kontrollat si n fig. 6.6b.
Format MDI
308
Format MDI
VB Application Wizard
Visual Basic-u prmban edhe magjistarin e aplikacionieve, i cili mundson
krijimin e shpejt t aplikacionit. N kt rast mund t krijohet struktura standarde
e aplikacionit, e pastaj t bhen ndryshime t nevojshme shtes ose n trsi t
prgatitet aplikacioni prmes magjistarit.
309
Format MDI
Format MDI
311
312
Format MDI
Format MDI
313
Format MDI
N hapin e ardhshm (Fig. 6.9c), prmes duke klikuar n tastin Browse (ose duke
shtypur, duke dhn shtegun) zgjedhet baza e t dhnave, pr t ciln do t krijohet
forma. Me Next, vazhdohet n hapin e ardhshm, n t cilin zgjedhet tipi i forms
(paraqitja e rekordeve nj nga nj, rrjeta DataGrid, MSHFlexGrid, etj.) dhe
definohet emri i forms (Fig. 6.9d).
N vazhdim (Fig. 6.9e) zgjedhet burimi i rekordeve (Record Source), nga lista e
tabelave dhe pyetsve t bazs s zgjedhur t t dhnave. Prej burimit t zgjedhur,
nga lista e fushave n dispozicion (Available Fields) q i prmban tabela e
zgjedhur, prmes tasteve n mes me shenjat >, <<. < dhe <<, zgjedhim fushat t
cilat do t paraqiten n form (Selected Fields). Meqe fushat jan t sortuara sipas
alfabetit, ather me an t tasteve n skajin e djatht, mund t ndryshojm
rradhitjen e fushave t zgjedhura. Me Next vazhdohet n hapin e ardhshm (Fig.
6.9f) n t cilin bhet zgjedhja e tasteve komanduese t cilat do t paraqiten n
form.
314
Format MDI
315
Format MDI
Format MDI
Visual Basic-u mundson konfigurimin e ambientit punues sipas dshirs, duke
mundsuar zgjedhjen mes SDI (Single document interface interfejs me nj
dokument) dhe MDI (Multiple document interface interfejs me dokumente t
shumfishta). Gjithashtu mund t prshtatet pozita dhe madhsia e elementeve t
ndryshme t IDE (Integrated Development Environment).
Me opcionin SDI, t gjitha dritaret jan t lira pr tu vendosur kudo npr ekran
deri sa Visual Basic-u sht aplikacioni momental aktiv dhe ato do t jen mbi
cilindo aplikacion tjetr. Me opcionin MDI, t gjitha dritaret prmbahen brenda nj
dritareje prind, me madhsi t ndryshueshme. Pra MDI mundson mirmbajtjen e
formave t shumfishta, brenda nj bartsi (kontejneri). Forma bartse quhet form
Prind (Parent Form), kurse format brenda forms prind quhen forma Fmij (Child
Forms).
Pr t kaluar prej njrit mod n tjetrin, zgjedhet menya Tools-Options dhe n
dritaren pr dialog Options, n faqen Advanced aktivizohet ose deaktivizohet
opcioni SDI Development Environment. Hern e ardhshme q startohet Visual
Basic-u, do t kalohet n modin e zgjedhur.
Ka mundsi edhe prmes opcionit Start/Run t ekzekutohet programi prmes linjs
komanduese me parametrin: /sdi ose /mdi.
Gjat prdorimit t programeve t ndryshme n Windows, mund t vrehen
ndryshimet mes modeve SDI dhe MDI, si p.sh., programi WordPad, mundson
hapjen e vetm nj dokumenti n dritare (SDI), kurse programet si Microsoft
Word, Microsoft Excel etj., mundsojn hapjen e disa dokumenteve njkohsisht
dhe secili prej tyre hapet n dritare t pavarur (MDI).
N Visual Basic, dritarja kryesore e cila mund t prmbaj dritare t tjera trajtohet
si form MDI. Forma MDI e ka ngjyrn e prapavis m t mbyllt se format e
zakonshme. Kjo zon njihet si Child form area (zona e dritareve fmij).
Edhe n dritaren Project Explorer paraqiten
simbolet e veanta pr format MDI dhe format
fmij MDI.
Gjithashtu, n tiparet e forms fmij, tipari MDIChild sht TRUE.
Shumica e dritareve MDI kan menyn dhe shiritin e veglave. Pr t mundsuar
udhheqjen me format fmij n zonn e formave fmij, format MDI kan
menyn Windows (Dritaret), n t ciln paraqiten metodat pr manipulim me
format e varura dhe lista e formave t hapura momentalisht. Mundsohet rradhitja e
dritareve t hapura n format vijuese:
316
Format MDI
Aplikacionet MDI kan vetm nj meny. Menya ndodhet n dritaren prind MDI.
Nse n dritaren fmij MDI krijohet meny, ather kur ajo form merr fokusin,
menya e dritares kryesore zhduket. Kjo sht veti e formave MDI. Pr kt arsye,
menya vendoset vetm n formn prind MDI. Ekzistojn disa metoda pr
komunikim mes forms kryesore dhe formave fmij, t cilat mundsojn p.sh.,
prdorimin e opcioneve t menys Edit, Cut dhe Paste n dritare t ndryshme.
Ngjarjet Activate dhe Dectivate ndodhin kur dritarja bhet aktive ose nuk sht m
aktive. Prmes ktyr metodave mund t kontrollojm ngjarjet e ndryshme npr
format fmij n formn prind MDI.
Nj objekt ose form, mund t bhet aktive prmes veprimit t shfrytzuesit, si kliku
me maus ose duke prdorur metodat Show dhe SetFocus n kod.
Ngjarja Activate mund t ndodhe vetm nse objekti sht i dukshm (Visible).
P.sh., forma e hapur me me urdhrin Load nuk sht e dukshme, prveq nse
thirret metoda Show ose tipari Visible i saj definohet si True.
Ngjarjet Activate dhe Deactivate ngjajn vetm kur fokusi lviz brenda
aplikacionit. Kto ngjarje ndodhin pr format fmij MDI vetm kur fokusi
ndrron prej nj forme fmij n tjetrn. N nj objekt t forms MDI me dy forma
317
Format MDI
fmij, format fmij pranojn kto ngjarje kur fokusi kalon prej njrs form n
tjetrn. Kur fokusi kalon prej forms fmij n form jo-fmij MDI, ather forma
prind MDI pranon ngjarjet Activate dhe Deactivate.
Shembull:
Fillojm projektin e ri, me form t zakonshme (Form1) dhe shtojm nj MDI
Form (Project-Add MDI Form) (MDIForm1).
N MDIForm1, insertojm nj
kontroll PictureBox dhe n t nj
kontroll Label. Zgjedhim formn
Form1 dhe pr t definojm tiparin
MDIChild True. (Fig. 6.1).
Pr formn MDI, kalojm n
dritaren e kodit dhe n seksionin
Declarations, shkruajm kodin
vijues:
Ekzekutojm programin dhe shohim efektet e e kalimit t fokusit prej njrs dritare
n tjetrn.
Pastaj krijojm menyn, prmes s cils mund t krijojm dritare t re, si dhe t
rradhisim dritaret n forma t ndryshme. (Shembulli: Project1 MDI.vbp).
318
Modulet
Modulet
Kodi n Visual Basic ruhet n module (njsi standarde, elemente standarde).
Ekzistojn tri lloje t moduleve: modulet e formave, modulet standarde dhe
modulet e klasave (Class module).
Aplikacionet e thjeshta prbhen prej nj forme t thjesht dhe tr kodi i tyre
qndron n modulin e asaj forme.
Pr aplikacionet m t avansuara nevojiten m shum forma. Nse ndodh q
paraqitet nevoja pr kod t prbashkt q do t ekzekutohet n disa forma, ather
nuk ka nevoj t prsritet kodi i njjt, por mund t krijohet modul i veant i cili
prmban procedurn q implementon kodin e prbashkt. Ky modul i veant
duhet t jet modul standard.
Me koh, mund t krjohen librari t moduleve, t cilat prmbajn procedurat e
prbashkta. do modul i forms, standard ose i klass mund t prmbaj:
- Deklarimet, ku vendosen konstantet, tipet, variablat dhe librarit e lidhjeve
dinamike (DLL), deklarimet e procedurave n nivel t modulit t forms, klass
ose modulit standard,
- Procedurat Procedurat Sub, Function ose Procedurat e tipareve (Property
Procedure) prmbajn kodin i cili mund t ekzekutohet si nj njsi.
Modulet e formave
Deri tani, kryesisht kemi pasur t bjm me modulet e formave.
Modulet e formave (prapashtesa e fajllit *.frm) jan baz e shumics s
aplikacioneve t Visual Basic-ut. Ato mund t prmbajn procedurat q
manipulojn me ngjarjet, procedurat e prgjithshme, dhe deklarimet n nivel t
forms t variablave, konstanteve, tipeve dhe procedurave t jashtme. Nse
shikohet moduli i forms n ndonj editor t teksteve do t shihen gjithashtu edhe
shpjegimet pr formn dhe kontrollat e saj, duke prfshir edhe konfigurimet e
tipareve. Kodi q sht shkruar n modul t forms sht specifik pr aplikacionin
t cilit i takon forma, e gjithashtu mund ti referohet edhe formave ose objekteve
prbrenda atij aplikacioni.
Modulet standarde
Modulet standarde (prapashtesa .BAS) jan barts (kontejner) pr procedurat dhe
deklarimet t cilave u qasen bashkarisht modulet tjera prbrenda aplikacionit. Ato
mund t prmbajn deklarime globale (n dispozicion pr tr aplikacionin) ose n
nivel t modulit, t variablave, konstanteve, tipeve, procedurave t jashtme dhe
procedurave globale. Kodi i shkruar n modul standard nuk sht e nevojshme t
jet i lidhur me ndonj aplikacion t veant. Nse i kushtohet kujdes faktit q kodi
319
Modulet
t mos i referohet kontrollave ose formave sipas emrit, ather moduli standard
mund t prdoret n m shum aplikacione t ndryshme.
Modulet e klasave
Modulet e klasave (prapashtesa .CLS) jan baz e programimit t orientuar n
objekte n Visual Basic. Mund t shkruhen modulet e klasave pr krijimin e
objekteve t reja. Ato objekte t reja mund t prmbajn tipare dhe metoda t
prshtatura prej shfrytzuesit. N fakt, format jan module t klasave t cilat mund
t ken kontrolla t vendosura n to dhe mund ti paraqesin dritaret e formave.
Shembull:
Le t shohim nj shembull t thjesht t modulit standard (*.BAS), vetm pr t
sqaruar mnyrn e definimit dhe thirrjes s moduleve standarde.
Fillojm nj projekt StandardEXE
dhe n formn (t ciln e
emertojm: frmForma1),
insertojm vetm nj tast
komandues (Name - cmdNgjyra,
Caption Ngjyra).
Pr t krijuar nj modul standard,
n projektin aktual, n menyn
Project, zgjedhim Add Module
(Shto nj modul). N ekran do t
paraqitet dritarja Add Module (Fig.
6.11b), n t ciln prcaktojm a do
Fig. 6.11a frmForma1
t krijohet modul i ri, apo do t
shtohet ndonj ekzistues.
Ikona Module n dritare sht e zgjedhur, dhe klikojm Open pr t krijuar modul
t ri. (Nse n kt dritare aktivizohet opcioni: Dont show this dialog in the future
(Mos e paraqit kt dialog n t ardhmen), ather ky hap kalohet fare dhe do her
shtohet modul i ri).
N ekran do t hapet dritarja pr kodin e modulit (Project1 Module1 (Code)). N
dritaren e projektit (Project Explorer Fig. 6.11c) do t shtohet folderi Modules
(Modulet) dhe n t do t paraqitet moduli Module1. E klikojm me tastin e djatht
dhe n menyn q hapet zgjedhim Save Module1 as... (Ruaje modulin1 si...) pr ta
emrtuar dhe ruajtur modulin (E ruajm modulin me emrin Ngjyra.bas, sepse do ta
prdorim si modul pr prcaktimin e ngjyrs s prapavis s forms).
320
Modulet
Modulet
Shembull:
Krijojm nj projekt t ri, trsisht t ngjashm me at t shembullit paraprak, por
tani do t definojm modulin (NgjyraPrapavis.bas) si n vijim:
Sub NdryshoNgjyren(KodiiNgjyres As Integer, Forma As Form)
Forma.BackColor = QBColor(KodiiNgjyres)
End Sub
322
Modulet
323
Modulet
Kontrolla DataRepeater
Kontrolla DataRepeater (Prsritsi i t dhnave) funksionon si barts
(kontejner) i listueshm i kontrollave t shfrytzuesit, t lidhura n t dhna.
Secila kontroll paraqitet n rreshtin e vet si kontroll e prsritur, duke lejuar q
shfrytzuesi ti shoh disa kontrolla t lidhura n t dhna njkohsisht.
Kontrolla shtohet, duke zgjedhur n listn e komponenteve shtes, n dritaren pr
dialog Components (e cila hapet prmes menys: Project-Components) kontrolln
Microsoft DataRepeater Control 6.0 (OLEDB).
Pr t prdorur kontrolln DataRepeater, s pari duhet t krijohet kontrolla e
shfrytzuesit e lidhur n t dhna dhe ajo t kompajlohet n kontroll ActiveX
(.ocx). Kontrolla e krijuar, do t paraqitet n listn e komponenteve t Visual
Basic-ut, n dritaren Components. Pasi t krijohet kontrolla e shfrytzuesit, duhet t
ndrrmirren hapat vijues:
1. T shtohet kontrolla e shfrytzuesit n projekt, duke prdorur dritaren pr
dialog Components. Kjo siguron q fajllat e nevojshm t prfshihen n
Magjistarin pr paketim dhe shprndarje t Visual Basic-ut (Visual Basic
Package & Deployment Wizard). Gjithashtu lejon qasje n tiparet publike
t kontrolls, ngjarjet dhe metodat e saj.
2. N dritaren e tipareve (Properties), klikohet tipari RepeatedControlName
dhe zgjedhet kontrolla e shfrytzuesit (prej lists rnse DropDown List).
3. N form shtohet burimi i t dhnave, si ADO Data Control dhe lidhet pr
provajder-in e t dhnave.
4. Tipari DataSource i kontrolls DataRepeater caktohet n burimin e t
dhnave (ADO, etj).
5. Klikohet me t djathtn kontrolla DataRepeater dhe zgjedhet
DataRepeater Properties.
6. Kalohet n faqen RepeaterBindings (Lidhjet e prsritsit) dhe caktohet
tipari PropertyName n DataField t duhur (t prshtatshme) dhe klikohet
tasti Add (Shto). Kshtu shtohen nj ose m shum fusha (DataField). N
fund me OK, konfirmohet konfigurimi.
Kontrolla DataRepeater i kursen resurset e kompjuterit duke paraqitur nj kontroll
t shfrytzuesit n nj moment nj kontrolln aktive. Kontrollat tjera t paraqitura
jan figura t thjeshta dhe nuk prmbajn lidhje individuale me burimin e t
dhnave, si ndodh me shum kontrolla t shfrytzuesit t prmbajtura n form.
Kur distribuohet aplikacioni i cili prmban kontroll DataRepeater, duhet q n
folderin Windows\System ose Windows\System32 t instalohet fajlli MSDatRep.ocx.
324
Modulet
Shembull:
Do t krijojm nj projekt me kontroll DataRepeater, e cila do t lidhet n
kontrolln ActiveX StudentetCtl, e cila do t lidhet n fushat Emri dhe Mbiemri n
tabeln Studentet, n bazn e t dhnave Fakulteti Provimet.mdb.
Krijimi i kontrolls s shfrytzuesit t lidhur n t dhna pr prdorim n
kontrolln DataRepeater
Hapi i par pr prdorimin e kontrolls DataRepeater sht krijimi i kontrolls s
shfrytzuesit t lidhur n t dhna. Procedura vijuese shrben pr krijimin e nj
kontrolle t thjesht q mund t prsritet n kontrolln DataRepeater.
1. Fillohet krijimi i nj projeti t ri ActiveX Control. Zgjedhim n meny
File-New Project dhe n dritaren New Project zgjedhim ActiveX
Control.
1. N dritaren e tipareve (Properties), riemrtojm Project1 n StudentetCtl.
2. N dritaren e tipareve (Properties), riemrtojm UserControl1 n
ctlStudentet.
5. Shtohet kodi vijues pr kontrolln pr t krijuar tiparet Let (le t jet, bje)
dhe Get (merre) t kontrolls s shfrytzuesit. Kto dy tipare duhet definuar kur
jan n pyetje kontrollat e shfrytzuesit.
Public Property Get EmriStudentit() As String
EmriStudentit = txtEmri.Text
End Property
Public Property Let EmriStudentit(ByVal NewEmriStudentit As String)
txtEmri.Text = NewEmriStudentit
End Property
325
Modulet
Modulet
327
Modulet
Modulet
Klikojm OK pr t konfirmuar
konfigurimin dhe pr t mbyllur
dritaren Property Pages
Ruajm dhe ekzekutojm projektin
(F5).
Pr t lvizur npr rekorde, mund
t prdorim shiritin rrshqits t
kontrolls DataRepeater ose tastet
pr navigim t kontrolls ADO.
(Shembulli: DataRepeater1.vbp).
329
Ndihma
Ndihma
331
Ndihma
Shembull:
Do t krijojm klasn e studentve dhe programin q do t prdor at klas. T
dhnat e ruajtura nga nj objekt i ksaj klase jan: Numri i Indeksit, Emri, Mbiemri,
Pikt me shkrim, Pikt me goj (duke supozuar se numri maksimal i pikve sht
100) dhe nota prfundimtare.
Procedura q duhet t prcillet pr realizimin e shembullit:
1. Fillojm krijimin e nj projekti t ri.
2. N menyn Project zgjedhim Add Class Module
3. N dritaren q paraqitet me kt
rast (Add Class Module) zgjedhet
Class Module dhe klikohet Open
(ose klikohet dy her ikona Class
Module). N ekran do t paraqitet
dritarja e kodit (Project Class
(Code)) e cila duket si dritaret e
zakonshme t kodit.
4. N dritaren e tipareve
(Properties) ndryshojm tiparin
Name (Emri), i cili momentalisht
ka vlern Class1. E emrtojm
klasn me emrin CStudent.
Ndihma
m_. Nse klasa krijohet prmes magjistarit t klasave (Duke zgjedhur VB Class
Wizard n dritaren Add Class Module (Fig. 6.14a), ather variablat e krijuara prej
magjistarit kan parashtesn mvar.
6. N menyn Tools, zgjedhim Add
Procedure (Shto procedur) dhe n
ekran do t paraqitet dritarja Add
Procedure (Fig. 6.14b). n fushn
Name (Emri) shkruajm NrIndeksit,
n zonn Type (tipi) zgjedhim
opcionin Property dhe klikojm
OK. N dritaren e kodit t modulit
t klass do t paraqiten rreshtat
vijues t kodit:
333
Ndihma
334
Ndihma
Ndihma
336
Ndihma
337
Ndihma
Pasi variablat antare deklarohen si Private, ato nuk kan qasje nga jasht
por vetm prmes procedurave Property, t cilat jan t afta q t
ndrmarrin edhe hapa t tjer t nevojshm prmes ndryshimeve n
variabln antare.
7. Pr seciln metod n hapin 2, krijo procedurn Sub ose Function pr t
kryer ndonj veprim.
- Prmes urdhrit,
Set varObject = Nothing
variabla e objektit ndahet nga objekti aktual dhe liron memorjen e prdorur.
Variabla e objektit, e deklaruar prbrenda procedurs pushon s ekzistuari dhe
efekti sht i njjt sikur kur variabla bhet Nothing (asgj), prmes urdhrit t
prmendur.
- Programi me modul t klass ka s paku tri komponente: formn, kodin e forms
dhe kodin e modulit t klass. Edhe pse menya View ofron qasje n form
(Alt+V/B) dhe n kodin e forms (Alt+V/C), vetm prmes dritares Project
Explorer sigurohet qasja n t trija. Pr t shikuar kodin e modulit t klass, klikoni
dy her n emrin e klass n Project Exlporer.
- Pr t insertuar ndonj modul ekzistues t klass n program, n menyn Project
zgjedhet Add Class Module, e pastaj n dritaren Add Class Module (Fig. 6.14a)
zgjedhet faqja Existing (ekzistues) dhe zgjedhet fajlli i prkats modulit t klass
(*.cls).
- Pr t fshir klasn prej programit, n dritaren Project Explorer klikohet me t
djathtn dhe n menyn q hapet zgjedhet Remove EmriKlass.
- Bashksia e tipareve, metodave dhe ngjarjeve t klass quhet interfejs i klass
(Class Interface). Mund t ekzistojn dy klasa t cilat kan interfejs t njjt, edhe
pse kryejn veprime t caktuara n mnyra t ndryshme. Kjo veti e klasave, kur dy
klasa kan sjellje (veprime) t cilat jan t emrtuara njsoj dhe kan n esenc
qllim t njjt por implementim t ndryshm, njihet si Polimorfizm
(Polymorphism).
- Kur sht n pyetje vendimi pr zgjedhje t elementit t caktuar t interfejsit, se a
duhet t jet metod apo tipar (Property), si rregull vlen q, tiparet duhet ti
qasen t dhnave kurse metodat kryejn veprime n to.
- Fjala ByVal (shkurtesa pr By Value - sipas vlers), e cila insertohet
automatikisht para parametrave n urdhrat Property Let kur ata krijohen prmes
menys Tools, sht opcionale. Mnyra standarde e prcjelljes s argumenteve n
338
Ndihma
Koleksionet
Koleksioni (Collection) paraqet nj entitet t ngjashm me vargun, i cili sht
veanrisht i prshtatur pr t punuar me bashksi t objekteve. N kt pjes
shqyrtohen koleksionet e objekteve dhe ngjarjet e definuara prej shfrytzuesit (userdefined events) pr klasa.
Koleksioni i objekteve sh nj bashksi e renditur e objekteve ku objektet
identifikohen prmes numrave 1, 2, 3... dhe deklarohet me urdhrin:
Dim EmriKoleksionit as New Collection
Ndihma
i cili e fshin objektin e n-t prej koleksionit dhe automatikisht zvoglon numrin e
objekteve prej n+1 e tutje pr 1, pr t mos lejuar zbrastira n renditje.
N do moment, vlera:
EmriKoleksionit.Count
Ndihma
341
Ndihma
Shembull:
Duke u bazuar n shembullin paraprak (forma, kontrollat dhe kodi i njjt),
realizojm nj projekt t ri, n t cilin do t krijojm koleksion t objekteve Stud
(studentve). Kodi i modulit t klass mbetet i njjt si n shembullin e kaluar,
vetm se emrtojm CStudent3 (Studnet3.cls), kurse n kodin e forms duhet br
ndryshimet vijuese:
Dim Koleksioni As New Collection
Private Sub cmdInserto_Click()
Dim Stud As Object
Set Stud = New CStudent3
'Lexo vlerat e ruajtura ne Text-Box-e
Stud.NrIndeksit = txtNrIndeksit
Stud.Emri = txtEmri
Stud.Mbiemri = txtMbiemri
Stud.PShkrim = Val(txtPShkrim)
Stud.PGoje = Val(txtPGoje)
'Shto elementin n koleksion
Koleksioni.Add Stud
'Pastro Tekst-bokset
txtNrIndeksit.Text = ""
txtEmri.Text = ""
txtMbiemri.Text = ""
txtPShkrim.Text = ""
342
'Stud si objekt
'Krijo objekt t ri
Ndihma
txtPGoje.Text = ""
picNota.Print "Rekordi i studentit u regjistrua"
End Sub
(Shembulli: Studentet-Koleksioni.vbp).
Shembull:
N shembullin paraprak, do t regjistrojm studentt, duke ua bashkangjitur si
els numrin e indeksit. N kodin e klass nuk do t ket ndryshime, vetm se n
kodin e procedurs s ngjarjes cmdInserto_Click( ), n vend t urdhrit:
Koleksioni.Add Stud
Shkruajm urdhrin:
Koleksioni.Add Stud, txtNrIndeksit.Text
343
Ndihma
Pasi t regjistrohen t dhnat pr disa student (duke plotsuar fushat dhe duke
klikuar tastin Inserto t dhnat), pr t paraqitur rezultatin pr studentin e caktuar,
klikojm tastin Paraqite rezultatin e studentit t caktuar (cmdStudenti) dhe n
ekran do t paraqitet InputBox-i i cili krkon t jipet numri i indeksit. Pasi t jipet
vlera dhe t shtypet OK, n ekran do t paraqitet rezultati i studentit me numrin e
dhn t indeksit. (Shembulli: Studentet-Koleksioni-Key.vbp).
Kjo procedur e ngjarjes, thirret automatikisht kur nj objekt krijohet prej klass.
fardo kodi q shtypet n kt procedur ekzekutohet. Kjo procedur prdoret pr
t caktuar vlerat standarde pr variablat antare dhe pr t krijuar objekte tjera t
shoqruara me kt objekt.
Pasi q metodat krijohen prmes procedurave t zakonshme Sub ose Function,
argumentet mund t prcillen n to, kur t thirren. Metoda e cila kthen vlera, duhet
t jet e tipit Function.
E kundrta e ngjarjes Initialize sht ngjarja Terminate (prfundo), e cila ka
formn:
Private Sub Class_Terminate( )
End Sub
344
Ndihma
Ngjarjet
Ngjarjet (Events) pr klasat mund t definohen prej programerit, pr t komunikuar
ndryshimet e tipareve, gabimet dhe progresin e operacioneve t gjata. Ngjarjet e
tilla njihen si user-defined events (ngjarje t definuara prej shfrytzuesit). Urdhri
pr inicimin e ngjarjes lokalizohet n modulin e klass dhe ngjarja manipulohet
prmes kodit t forms. Nse ngjarja ka argumentet arg1, arg2, etj., n modulin e
klass urdhri:
Public Event NgjarjaDefShfryt( arg1, arg2,...)
Ndihma
Event Gong
Private mc1 As Class1
Kur t jet krijuar Class1, sht e mundur t krijohen variabla t tipit Class1.
Procedura n vijim krkon kalimin prej nj dritareje t kodit n tjetrn, sepse nj
hap n njrin prej moduleve krkon paraprakisht shtimin e kodit n tjetrin.
3. Kalojm n Class1 dhe shtohet kodi vijues, n pjesn Declarations:
Private WithEvents mForm1 As Form1
Rreshti i par krijon nj objekt Class1 dhe i dyti ia ndan tiparit Form1 t saj (t
krijuar n hapin 1) referencn n Form1 (Me kur jeni n dritaren e kodit t Form1
i referohet forms Form1, kurse n dritaren e kodit Class1 i referohet Class1)
6. N formn Form1 insertojm tri kontrolla TextBox dhe n dritaren e kodit, duke
prdorur listat (ComboBox-et) Object dhe Procedure zgjedhim ngjarjen Change
pr seciln kontroll dhe n seciln shkruajm kodin, si n vijim:
Private Sub Text1_Change()
RaiseEvent Gong
End Sub
Ndihma
7. Ruajm dhe ekzekutojm projektin (F5). Sa her q n ndonjrin prej TextBoxeve shtypet ndonj karakter do t paraqitet mesazhi (Ngjarja Gong). Kshtu mund
t shtohen ngjarjen n form dhe t mirren informata prej disa kontrollave t saj.
Krahasim i WithEvents me ngjarjet e kontrollave n form.
N mnyrn e prdorimit t variablave WithEvents dhe ngjarjeve t inicuara prej
kontrollave n form ka disa ngjashmri. N t dy rastet, kur zgjedhet ngjarja n
listn n ann e djatht t dritares s kodit, fitohet procedura e ngjarjes e cila
prmban argumentet korrekte pr ngjarjen.
N fakt, mekanizmi sht trsisht i njjt. Kontrolla trajtohet si tipar i klass
Form, dhe emri i ktij tipari sht vlera q i ndahet tiparit Name t kontrolls n
dritaren Properties.
Kjo sht sikur t ekzistont nj variabl Public e nivelit t modulit me emr t
njjt si kontrolla dhe t gjith emrat e procedurave t ngjarjeve t kontrolls t
fillojn me at emr t variabls, njsoj sikur q do t bnin me variabln
WithEvents.
Nse deklarohet variabla Public, n vend t private ajo do t paraqitet n Object
Borwser si tipar i forms Form1, njsoj sikur kontrollat n form.
Dallimi mes dy rasteve sht se Visual Basic-u automatikisht i krijon instancat e t
gjitha kontrollave n form kur t krijohet forma, ndrsa shfrytzuesi duhet t
krijoj vet instancat e klasave ngjarjet e t cilave dshiron ti manipuloj dhe ti
definoj referencat n ato objekte n variablat WithEvents.
Objekti i cili inicon ngjarjet quhet burim i ngjarjes (event source). Pr t
manipuluar ngjarjet e inicuara prej burimit t ngjarjes deklarohet variabla e klass
s objektit duke prdorur fjaln e rezeruar WithEvents.
Prdorimi i variablave WithEvents ka disa kufizime:
- Variabla WithEvent nuk mund t deklarohet si objekt (As Object), por
duhet t specifikohet emri i klass kur t deklarohet variabla.
- Variabla WithEvents nuk mund t deklarohet si As New. Burimi i ngjarjes
duhet t jet i krijuar dhe i caktuar n variabln WithEvents.
- Variablat WithEvents nuk mund t deklarohen n module standarde. Mund
t deklarohen vetm n module t klasave, t formave ose module tjera q
definojn klasat.
- Nuk mund t krijohen vargje t variablave WithEvents.
Pr t shikuar m detajisht klasat, ngjarjet, objektet, metodat dhe ngjarjet e
definuara prej shfrtyzuesit, t shikohen Shembujt: Rrethi.vbp dhe Rrethi2.vbp.
347
Ndihma
348
Ndihma
Forma pr lajmrim
Pr mbrojtjen e projekteve, mund t krijohet forma e cila pr t lejuar prdorimin e
aplikacionit s pari krkon dhnien emrit t shfrytzuesit dhe fjalkalimit
(password-it).
349
Ndihma
LoginSucceeded = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
'Verifiko fjalkalimin e duhur
If txtPassword = "Fjala" Then
'Kodi pr t tregua lajmrimin e suksesshm
'caktojm variabln globale True
LoginSucceeded = True
MsgBox "Fjalkalimi i sakt, lajmrimi i suksesshm!", , "Login"
'Ose
MsgBox "Shfrytzuesi: "" " & txtUserName.Text & " "" u lajmrua me sukses", , "Login"
Form1.Show
Me.Hide 'Fshehim formn
Else
MsgBox "Fjalkalimi i gabuar, provoni prsri!", , "Login"
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
End Sub
350
Ndihma
Ndihma
sht mir q pr aplikacionin e krijuar, shfrytzuesve t ju ofrohet edhe ndonj
form e ndihms lidhur me mundsit dhe opcionet e shfrytzimit t tij. N
shumicn e programeve dhe aplikacioneve q prdoren n kompjuter, n meny
zakonisht ndodhet edhe menya Help (Ndihma) dhe pr shumicn e tyre, prems
tastit F1, automatikisht hapet teksti i cili ofron ndihm, lidhur me programin. Pr t
krijuar fajllin me ndihm, t ngjashm me fajllat pr ndihm q prdoren n
Windows, ekzistojn disa mnyra, por ktu do t shpjegojm vetm shkurtimisht
njrn prej tyre.
Pasi t definohet shkurt prmbajtja e ndihms q do ti ofrohet shfrytzuesit, duhet
kaluar npr disa hapa pr krijimin e fajllit me ndihm (Help File).
1. Krijimi i Help Text File (Fajllit tekstual t ndihms), ose Topic File (Fajlli
me pikat e ndihms), n formatin RTF (fajll RTF).
2. Krijohet Help Project File (Fajlli i projektit t ndihms) (HPJ).
3. Kompajlohet fajlli i ndihms, duke prdorur prkthyesin e helpit (Help
Compiler) dhe Project File (Fajllin e projektit).
4. Fajlli i ndihms, i bashkangjitet aplikacionit t Visual Basic-ut.
351
Ndihma
Shembull:
1. Krijimi i tekstit pr ndihm
Ndihma
353
Ndihma
354
Ndihma
355
Dritarja kryesore
Ndihma
Dritarja e veant
Dritarja Pop-up
356
Ndihma
359
360
Nse sht zgjedhur opcioni Multiple Cabs (pr disketa), ather n disketn e par
kopjohen fajllat: Setup.exe, Setup.lst dhe Emri1.Cab (Cab fajlli i par, me 1 n fund
t emrit). Pastaj n disketn e dyt, Cab fajlli i dyt, e kshtu me rradh, varsisht
sa Cab fajlla jan krijuar.
Pr ta instaluar programin prmes CD-s ose disketave pr shprndarje, shfrytzuesi
e vendos CD-n ose disketn e par n njsin prkatse. Pastaj prmes Windows
Explorer-it ekzekutohet programi instalues (Setup.exe). Shfrytzuesi do t
udhzohet pr procedurn q duhet ndjekur hap pas hapi. Procedura sht e
ngjashme me procedurn q prcillet pr installimin e produkteve t Microsoft-it.
Nse aplikacioni pr shprndarje, sht ndonj aplikacion m i avansuar (i cili
prmban edhe qasje n baza t t dhnave, etj.) ather duhet pasur parasysh
edhe fajllat plotsues q duhet shprndar me programin instalues.
Nse projekti prmban kontrolla shtes, kontrolla ActiveX, t shtuara nga
komponentet e Visual Basic-ut, ather duhet pasur parasysh se n projekt duhet
shtuar edhe fajllat prkats MSCOMCTL.OCX dhe MSCOMCTL2.OCX t cilt i
prmbajn ato kontrolla. Kur t bhet shprndarja e aplikacionit, kta fajlla duhet t
instalohen n folderin Windows\System t kompjuterit t shfrytzuesit.
N tabeln vijuese jan paraqitur kontrollat t cilat ndodhen n fajllat e
lartprmendur, t cilt duhet t shprndahen bashk me aplikacionin i cili i
prmban ato kontrolla.
Fajlli
MsComctl.ocx
MsComct2.ocx
Kontrolla
TreeView
ListView
Slider
ImageList
ImageCombo
Toolbar
StatusBar
ProgressBar
TabStrip
Animation
UpDon
MonthView
DateTimePicker
FlatScrollBar
363
Prmbajtja
364
Prmbajtja
(Shembulli: WebBrowseri1.vbp).
365
Prmbajtja
Faqet me DHTML
Dynamic HTML (HTML Dinamik) mundson krijimin e Web faqeve dinamike t
cilat i mundsojn Web Browser-it ndryshimin ose zhvendosjen e elementeve t
faqes. Paraprakisht, Web Browser-t vetm kan paraqitur prmbajtjen e faqeve t
cilat i kan pranuar. Web programeri ka programuar faqen prmes kodimit ose
prmes shablloneve t caktuara dhe ka ditur sakt se si do t duket faqja n
Browser-in e shfrytzuesit. Mirpo nuk ka pasur lidhje kthyese me klientin dhe ska
pasur mundsi q serveri t reagon n ngjarjet q ndodhin n Browser, si p.sh., nuk
ka pasur mundsi t ndryshohet pamja e faqes kur shfrytzuesi ka klikuar ndonj
tast komandues n faqe. Prveq ksaj, kur duhej kaluar n faqe tjetr, duhej krijuar
sesion t ri me serverin dhe t dhnat q i nevojiteshin serverit, duhej drguar
prsri. Kjo njihet si lidhje pa mbajtje mend t pamjes (stateless connection).
Visual Basic-u mund t mbaj mend gjendjen (maintain state) gjersa t ekzekutohet
aplikacioni dhe DHTML zgjedh problemet e prmendura. Prmbajtja e web faqes
mund t ndryshohet edhe prmes VBScript-it.
Pr krijimin e aplikacioneve q prdorin DHTML-n, Visual Basic-u
prban shabllonin e projekteve DHTML Application. Kur fillohet
projekti i ri, n dritaren New Project zgjedhet DHTML Application
dhe klikohet OK.
Prmbajtja
Prmbajtja
368
Prmbajtja
Duke klikuar nga dy her kontrolln n shiritin e veglave, ajo insertohet n form.
Teksti shkruhet drejtprdrejt n faqe, sikur n tekst-procesort e zakonshm.
Formatizimi i tekstit bhet prmes veglave prkatse n shiritin e veglave t
dritares s dizajnerit (Editorit t DHTML). Shenja e pragrafit paraqitet kur shtypet
tasti Enter pr t kaluar n rresht t ri. Shkruajm tekstet si n figur dhe
insertojm dy kontralla t tipit TextField (TextField1 dhe TextField2) dhe nj
kontroll t tipit Button (Button1). I zgjedhim dhe i zvarrisim kontrollat n pozitat e
dshiruara. N dritaren e tipareve definojm tiparet prkatse t kontrollave t
insertuara si p.sh, pr tastin komandues, tipari Value Kliko ktu.
Pr t kaluar n dritaren e kodit, klikojm dy her kontrolln Button dhe shkruajm
kodin vijues:
Private Function Button1_onclick() As Boolean
TextField2.Value = "Mir se erdht z/znj. " & TextField1.Value
End Function
369
Prmbajtja
Ngjarjet DHTML
370
Prmbajtja
VBScript
Gjuha programuese VBScript sht nj deg e Visual Basic-ut e cila shrben pr
dizajnimin e Web-faqeve interaktive. VBScript prmban shumicn e
karakteristikave t zakonshme t Visual Basic-ut. Kodi i VBScript-it shkruhet n
elementin SCRIPT q fillon me Tag-un: <SCRIPT Language = VBSCRIPT>
dhe prfundon me </SCRIPT>. Pjesa e kodit pr procedurat e ngjarjeve, shkruhet
prbrenda elementit SCRIPT.
Shkurtimisht do t prshkruajm procedurn pr shtimin e kontrollave n Web faqe
dhe shkruarjen e kodit t VBScript-it q manipulon kontrollat.
371
Prmbajtja
372
Prmbajtja
Pr insertimin e kontrollave t
ngjashme me kontrollat q
insertohen n forma t Visual
Basic-ut, zgjedhim nga grupi i
kontrollave Microsoft Forms 2.0
dhe emri i kontrolls. P.sh.,
zgjedhim fushn pr tekst TextBox
Microsoft Forms 2.0 TextBox) dhe
klikojm OK. N ekran do t
paraqitet dritarja Edit ActiveX
Control dhe dritarja Properties pr
kontrolln e insertuar.
Fig. 6.18a ActiveX Control Pad
N dritaren pr edititm t
kontrolls, mund t bjm
ndryshimin e pozists ose
madhsis s kontrolls. N
dritaren e tipareve, e cila sht e
ngjashme me dritaren prkatse n
Visual Basic, zgjedhim tiparin
prkats dhe n fushn n pjesn e
eprme t dritares definojm vlern
e re dhe klikojm Apply (Aplikoje)
ose Enter.
P.sh, caktojm tiaprin ID txtEmri.
Pasi t prfundojm me definimin e
tipareve, mbyllim dritaret (duke
klikuar shenjn Close t dritares
Edit mbyllen t dy dritaret) dhe n
ekran do t insertohet pjesa e kodit
pr kontrolln e insertuar (sikur n
fig. 6.18d).
373
Prmbajtja
Pastaj ruajm fajllin e krijuar duke klikuar ikonn Save n shiritin e veglave ose
prmes menys (File-Save As). Zgjedhim emrin e fajllit dhe folderin ku do t ruhet
fajlli Html. Pr t paraqitur faqen e krijuar n Internet Explorer, shtypim shtegun
dhe emrin e fajllit n fushn pr adres t Internet Explorer-it dhe klikojm Enter.
N ekran do t paraqitet faqja si n fig. 6.18e.
374
Prmbajtja
Ruajm fajllin dhe prsri kthehemi n Internet Explorer dhe hapim rishtazi faqen
ose nse ajo sht akoma n ekran, vetm klikojm Refresh (F5).
Plotsojm fushn pr tekst, duke shtypur emrin dhe mbiemrin. Kur t klikohet
tasti komandues, n ekran do t paraqitet dritarja e mesazhit (MsgBox) me
prshndetjen: Prshndetje: EmridheMbiemri. Kur t klikohet tasti Pastro, do
t fshihet teksti i shkruar n fushn pr tekst.
(Shembulli: Faqja me VBScript.htm).
Kodi i VBScript-it mund t mos ket asnj procedur. N kt rast, porsa t
paraqitet faqja n Internet Explorer, kodi ekzekutohet automatikisht.
Duhet pasur kujdes pr disa dallime me kodin e Visual Basic-ut. Pr shembull pr
unazat, For i=1 to n ... Next i, n VBScript shkruhet vetm Next, pa i, etj.
Prmes menys File-New HTML Layout, mund t krijohet formati i dshiruar i
faqeve HTML dhe mund t bhet pozicionimi i kontrollave nga kutia e veglave q
paraqitet n pozita t dshirurar n faqe. Pastaj formati i faqes ruhet si fajll *.alx
dhe mund t insertohet n cilndo pjes t kodit, prmes menys Edit Insert
HTML Layout.
Prmes menys Help t ActiveX Control Pad-it, mund t mirren informata t
dshiruara pr HTML dhe VBScript.
375
Prmbajtja
Prmbajtja
Makrot
Macro sht nj seri e komandave dhe funksioneve t ruajtura n modul t Visual
Basic-ut, q mund t ekzekutohet sa her t nevojitet kryerja e veprimeve t
ruajtura si makro. Kur incizohet (krijohet) makroja, programi i ruan informatat pr
secilin hap n serin e komandave. Pastaj makroja ekzekutohet pr t prsritur
komandat.
Pr incizimin e makros n Word, Excel dhe PowerPoint hapet menya Tools-MacroRecord New Macro (Fig. 7.3a).
377
Prmbajtja
378
Prmbajtja
Nse klikojm tastin Edit (ose n meny zgjedhim drejtprdrejt: Tools-MacroVisaul Basic Editor Alt+F11), n ekran do t paraqitet dritarja e Microsoft Visual
Basic-ut me emrin e dokumentit dhe procedurn pr makron e krijuar (Fig. 7.6a).
Kjo dritare sht faktikisht dritarja e editorit t Visual Basic for Applications dhe
sht shum e ngjashm me dritaren e kodit t Visual Basic-ut standard. Pr do
makro, krijohet procedura prkatse Sub.
N dritaren e kodit shkruhet kodi, duke respektuar rregullat e Visual Basic-ut dhe
duke prdorur objektet gjegjse pr aplikacionin n t cilin jemi duke krijuar
makrot (gjegjsisht procedurat prkatse t Visual Basic-ut, pr makrot q
krijohen). Edhe ktu mund t prdoret qasja n listn e tipareve dhe komandave
(List Propertes/Methods) e cila na lehtson gjetjen dhe prdorimin e sintakss
korrekte pr tiparet dhe komandat n dispozicion.
379
Prmbajtja
380
Prmbajtja
Si shihet, prej figurs, sht krijuar procedur Sub, e cila n ann e majt (n
dritaren Project (e ngjashme me dritaren Project Explorer, t Visual Basic-ut)
shihet n folderin Modules (Modulet e kodit t Visual Basic-ut, q krijohen pr
makrot e incizuara).
Prve krijimit t makrove (dhe procedurave prkatse Sub, t cilat krijohen
automatikisht, me krijimin e makrove), ka mundsi q shfrytzuesi t krijoj
procedura t zakonshme, t cilat do ti aktivizoj n ndonj mnyr tjetr, prmes
kontrollave t Visual Basic-ut si dhe procedurat speciale si AutoOpen (ekzekutohet
n hapje t dokumentit), AutoClose (ekzekutohet n mbyllje t dokumentit),
AutoExit, AutoNew, AutoExec, etj.
Prmbajtja
382
Prmbajtja
Paragrafi i par
Tr teksti
383
Prmbajtja
Shtypja
End Sub
384
Prmbajtja
385
Prmbajtja
.ColorIndex = 0
End With
With .Font
.Bold = True
.ColorIndex = 0
End With
End With
End Sub
Private Sub cmdShuma_Click()
'Rangu i zgjedhur
Set Zona = orksheets("Sheet1").Range("A1:B10")
shuma = Application.orksheetFunction.Sum(Zona)
MsgBox "Shuma e vlerave n zonn 'A1:B10' sht S = " & shuma
Worksheets("Sheet1").Cells(11, 1) = "Shuma"
Worksheets("Sheet1").Cells(11, 2).Select
Worksheets("Sheet1").Cells(11, 2) = shuma
ActiveCell.Value = shuma
'Fonti
With Worksheets("Sheet1").Cells.Font
.Name = "Arial"
.Size = 10
.Bold = True
.Color = vbRed
End With
End Sub
Private Sub cmdPastro_Click()
'Tasti komandues
MsgBox "Tung. Tani do t pastrohet zona A1:B10", vbInformation, "Prshndetje"
Worksheets("sheet1").Activate
Sheet1.Range("A1:B10").Select
With Selection
Selection.ClearContents
With .Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 7
End With
With .Font
.Bold = True
.ColorIndex = 3
End With
End With
Worksheets("Sheet1").Cells(11, 2).Clear
End Sub
386
'Formati i faqes
Prmbajtja
'Shtypja
387
Prmbajtja
388
Prmbajtja
389
Prmbajtja
SHTOJCAT
Shtojca A
Tabela e numrave t gabimeve dhe mesazheve t gabimeve
Code
Kodi
3
5
6
7
9
10
11
13
14
16
17
18
20
28
35
47
48
49
51
52
53
54
55
57
58
59
61
62
63
390
Message
Mesazhi
Return without GoSub Return pa GoSub
Invalid procedure call Thirrje e gabuar e procedurs
Overflow Tejkalim i vlerave
Out of memory jasht memorjes
Subscript out of range indeksi jasht rangut
This array is fixed or temporarily locked ky varg sht prkohsisht i fiksuar ose
i mbyllur
Division by zero pjestim me zero
Type mismatch tipi i gabuar (mosprshtatje e tipit t t dhnave)
Out of string space jasht hapsirs s stringut
Expression too complex shprehje tejet e komplikuar
Can't perform requested operation nuk mund t kryej operacionin e krkuar
User interrupt occurred ka ngjar ndrprerje (interrupt) prej shfrytzuesit
Resume without error Resume pa gabim
Out of stack space jasht hapsirs s stekut
Sub, Function, or Property not defined Procedur, funksion ose tipar i
padefinuar
Too many DLL application clients tepr klient t DLL aplikacionit
Error in loading DLL gabim gjat thirrjes (startimit) t DLL
Bad DLL calling convention mnyrr e gabuar e thirrjes s DLL
Internal error gabim i brendshm
Bad file name or number numr ose emr i gabuar i fajllit
File not found fajlli nuk u gjet
Bad file mode modi i gabuar i fajllit
File already open fajlli veq sht i hapur
Device I/O error gabim hyrs/dals i pajisjes
File already exists fajlli veq ekziston
Bad record length gjatsi e gabuar e rekordit
Disk full disku i mbushur
Input past end of file hyrje (shkruarje) prtej fundit t fajllit
Bad record number numr i gabuar i rekordit
98
298
320
321
322
325
327
328
335
336
337
338
360
361
363
364
365
368
371
380
381
382
383
385
387
Prmbajtja
391
443
445
446
447
448
449
450
451
452
453
454
455
457
458
459
460
461
392
Prmbajtja
Property Get can't be executed at run time Property Get nuk mund t
ekzekutohet n kohn e ekzekutimit
Property Get can't be executed on write-only property Property Get smund t
prdoret me tipare vetm pr lexim
Form already displayed; can't show modally forma veq sht shfaqur (hapur);
nuk mund t paraqitet n mnyr modale
Code must close topmost modal form first kodi duhet t mbyll s pari formn
m t lart modale
Permission to use object denied nuk lejohet prdorimi i objektit
Property not found tipari nuk u gjet
Property or method not found tipari ose metoda nuk u gjet
Object required krkohet objekti
Invalid object use prdorim i gabuar i objektit
Component can't create object or return reference to this object komponenta
smund t krijoj objektin ose t kthej referencn n kt objekt
Class doesn't support Automation klasa nuk prkrah automatizimin
File name or class name not found during Automation operation emri i fajllit ose
i klass nuk u gjet gjat operacionit t automatizimit
Object doesn't support this property or method objekti nuk prkrah kt tipar
ose metod
Automation error gabim automatizimi
Connection to type library or object library for remote process has been lost
lidhja me librarin e tipit ose librarin e objektit prej procesit t largt sht
humbur
Automation object doesn't have a default value objekti i automatizimit nuk ka
vler stadarce
Object doesn't support this action objekti nuk prkrah kt veprim
Object doesn't support named arguments objekti nuk prkrah argumentet e
prmendura
Object doesn't support current locale setting objekti nuk prkrah vlerat
momentale t caktuara t lokaleve (var. lokale)
Named argument not found argumenti i prmenur nuk u gjet
Argument not optional or invalid property assignment argumenti nuk sht
opcional ose prcaktim invalid i tipareve
Wrong number of arguments or invalid property assignment numr i gabuar i
argumenteve ose prcaktim invalid i tipareve
Object not a collection objekti nuk sht koleksion
Invalid ordinal numr rendor i gabuar
Specified not found nuk u gjet e specifikuara
Code resource not found resursi i kodit nuk u gjet
Code resource lock error gabim i mbylljes s kodit t resursit
This key is already associated with an element of this collection elsi veq
sht shoqruar me nj element t ktij koleksioni
Variable uses a type not supported in Visual Basic variabla prdor nj tip q
nuk prkrahet prej Visua Basic-ut
This component doesn't support the set of events komponenta nuk prkrah
ngjarjet
Invalid Clipboard format format i gabuar i Clipboard-it
Method or data member not found metoda ose t dhnat nuk u gjetn
485
486
520
521
735
744
746
31001
31004
31018
31027
31032
31036
31037
Prmbajtja
The remote server machine does not exist or is unavailable serveri n distanc
nuk ekziston ose nuk sht n dispozicion
Class not registered on local machine klasa nuk sht regjistruar n komp.
Lokal
Can't create AutoRedraw image nuk mund t krijoj imazh AutoRedraw
Invalid picture figur e gabuar
Printer error gabim i shtypsit
Printer driver does not support specified property drajveri i shtypsit nuk e
prkrah tiparin e specifikuar
Problem getting printer information from the system. Make sure the printer is set
up correctly problem gjat marrjes s informatave t printerit prej sistemit.
Sigurohuni se printeri sht konfiguruar n mnyr korrekte
Invalid picture type tip i gabuar i figurs
Can't print form image to this type of printer smund t shtyp imazhet n kt
tip t printerit
Can't empty Clipboard smund t zbraz Clipboard-in
Can't open Clipboard smund t hap Clipboard-in
Can't save file to TEMP directory Smund t ruaj fajllin n folderin TEMP
Search text not found teksti i krkuar nuk u gjet
Replacements too long zvendsimet shum t gjata
Out of memory ska memorje t mjaftueshme
No object ska objekt
Class is not set klasa e pa konfiguruar
Unable to activate object smund t aktivizoj objektin
Unable to create embedded object smund t krijoj objekt t mbjellur
Error saving to file gabim gjat ruajtjes n fajll
Error loading from file gabim gjat leximit prej fajllit
393
Prmbajtja
Shtojca B
Konstantet pr kontrollat CommonDialog
File Open/Save Dialog Box Flags
Konstanta - Constant
Vlera - Value
Prshkrimi - Description
CdlOFNAllowMultiselect
&H200
cdlOFNCreatePrompt
&H2000
cdlOFNExplorer
&H80000
CdlOFNExtensionDifferent
&H400
CdlOFNFileMustExist
&H1000
CdlOFNHelpButton
&H10
cdlOFNHideReadOnly
&H4
CdlOFNLongNames
&H200000
CdlOFNNoChangeDir
&H8
CdlOFNNoDereferenceLinks
&H100000
cdlOFNNoLongNames
&H40000
394
Prmbajtja
CdlOFNNoReadOnlyReturn
&H8000
cdlOFNNoValidate
&H100
cdlOFNOverritePrompt
&H2
cdlOFNPathMustExist
&H800
CdlOFNReadOnly
&H1
CdlOFNShareAware
&H4000
Konstanta - Constant
Vlera - Value
Prshkrimi - Description
CdlCCFullOpen
&H2
CdlCCShowHelp
&H8
CdlCCPreventFullOpen
&H4
CdlCCRGBInit
&H1
395
Prmbajtja
Vlera - Value
Prshkrimi - Description
cdlCFANSIOnly
&H400
CdlCFApply
&H200
CdlCFBoth
&H3
CdlCFEffects
&H100
cdlCFFixedPitchOnly
&H4000
cdlCFForceFontExist
&H10000
cdlCFHelpButton
&H4
cdlCFLimitSize
&H2000
cdlCFNoFaceSel
&H80000
cdlCFNoSimulations
&H1000
cdlCFNoSizeSel
&H200000
cdlCFNoStyleSel
&H100000
cdlCFNoVectorFonts
&H800
cdlCFPrinterFonts
&H2
cdlCFScalableOnly
&H20000
cdlCFScreenFonts
&H1
396
Prmbajtja
CdlCFTTOnly
&H40000
CdlCFWYSIWYG
&H8000
Vlera Value
Prshkrimi - Description
cdlPDAllPages
&H0
CdlPDCollate
&H10
cdlPDDisablePrintToFile &H80000
cdlPDHelpButton
&H800
cdlPDHidePrintToFile
&H100000
cdlPDNoPageNums
&H8
cdlPDNoSelection
&H4
CdlPDNoWarning
&H80
cdlPDPageNums
&H2
cdlPDPrintSetup
&H40
cdlPDPrintToFile
&H20
cdlPDReturnDC
&H100
cdlPDReturnDefault
&H400
cdlPDReturnIC
&H200
397
Prmbajtja
cdlPDSelection
&H1
CdlPDUseDevModeCop
ies
&H40000
Kontanta - Constant
Vlera - Value
Prshkrimi - Description
cdlHelpCommandHelp
&H102
CdlHelpContents
&H3
CdlHelpContext
&H1
cdlHelpContextPopup
&H8
CdlHelpForceFile
&H9
cdlHelpHelpOnHelp
&H4
CdlHelpIndex
&H3
CdlHelpKey
&H101
cdlHelpPartialKey
&H105
CdlHelpQuit
&H2
cdlHelpSetContents
&H5
cdlHelpSetIndex
&H5
Help Constants
398
Prmbajtja
Shtojca C
Konstantet e Visual Basic-ut
Ngjyrat
Kontanta - Constant
Vlera - Value
Prshkrimi - Description
vbBlack
&H0
E zez - Black
vbRed
&HFF
E kuqe - Red
vbGreen
&HFF00
E gjelbr - Green
vbYellow
&HFFFF
E verdh - Yello
vbBlue
&HFF0000
E kaltr - Blue
vbMagenta
&HFF00FF
E purpurt - Magenta
vbCyan
&HFFFF00
vbWhite
&HFFFFFF
E bardh - White
Ngjyra
Yellow
Brown
Blue
Purple
Cyan
Black
Magenta
Navy blue
Red
Gray
Olive
Green
E verdh
E kaft
E kaltr
E purpurt
E kaltr e qelt
E zez
E vjollce
E kaltr marine
E kuqe
E hirt
E ullirit
E gjelbr
Ngjyra
Numri
Ngjyra
Black e zez
Blue e kalt%r
Green e gjelbr
10
Cyan cian
11
Red e kuqe
12
399
Prmbajtja
Magenta magjenta
13
Yellow e verdh
14
White e bardh
15
Ngjyrat e sistemit
Kontanta - Constant
Vlera - Value
Prshkrimi - Description
vbScrollBars
&H80000000
vbDesktop
&H80000001
Ngjyra e desktop-it
vbActiveTitleBar
&H80000002
vbInactiveTitleBar
&H80000003
vbMenuBar
&H80000004
vbWindowBackground
&H80000005
vbWindowFrame
&H80000006
vbMenuText
&H80000007
vbWindowText
&H80000008
vbTitleBarText
&H80000009
vbActiveBorder
&H8000000A
vbInactiveBorder
&H8000000B
vbApplicationWorkspace
&H8000000C
vbHighlight
&H8000000D
vbHighlightText
&H8000000E
vbButtonFace
&H8000000F
vbButtonShadow
&H80000010
vbGrayText
&H80000011
vbButtonText
&H80000012
400
Prmbajtja
vbInactiveCaptionText
&H80000013
vb3DHighlight
&H80000014
vb3DDKShadow
&H80000015
vb3DLight
&H80000016
vb3DFace
&H8000000F
vb3Dshadow
&H80000010
vbInfoText
&H80000017
vbInfoBackground
&H80000018
401
Prmbajtja
Vlera - Value
Prshkrimi - Description
VbModal
vbModeless
Vlera - Value
Prshkrimi - Description
VbCascade
VbTileHorizontal
VbTileVertical
VbArrangeIcons
Vlera - Value
Pwrshkrimi Description
vbNormal
Normale Normal
vbMinimized
E minimizuar Minimized
vbMaximized
E maksimalizuar Maximized
Vlera - Value
Prshkrimi Description
vbFSSolid
E plot - Solid
vbFSTransparent
E tejdukshme - Transparent
vbHorizontalLine
vbVerticalLine
vbUpwardDiagonal
vbDownwardDiagonal
vbCross
Kryq - Cross
402
Prmbajtja
Vlera - Value
Prshkrimi - Description
VbUser
VbTwips
Twip - Tips
VbPoints
Pika - Points
VbPixels
Piksela - Pixels
VbCharacters
Karaktere - Characters
VbInches
Ina - Inches
VbMillimeters
Milimetra - Millimeters
VbCentimeters
Centimetra - Centimeters
VbHiMetric
HiMetric
VbContainerPosition
VbContainerSize
10
Vlera - Value
Prshkrimi Description
VbPaletteModeHalfTone
VbPaletteModeUseZOrder
VbPaletteModeCustom
VbPaletteModeContainer
VbPaletteModeNone
VbPaletteModeObject
403
Prmbajtja
Vlera - Value
Prshkrimi - Description
VbSolid
VbDash
E ndrprer - Dash
VbDot
Pika Dot
VbDashDot
Viz-pik Dash-dot
VbDashDotDot
Viz-pik-pik - Dash-dot-dot
VbInvisible
E padukshme - Invisible
VbInsideSolid
Vlera - Value
Prshkrimi - Description
VbAlignNone
VbAlignTop
VbAlignBottom
VbAlignLeft
VbAlignRight
Vlera - Value
Prshkrimi Description
vbLeftJustify
vbRightJustify
vbCenter
Qendr - Center
404
Prmbajtja
Vlera - Value
Prshkrimi Description
vbBSNone
Pa kufi - No border
vbFixedSingle
vbSizable
vbFixedDialog
vbFixedToolWindow
vbSizableToolWindow
Vlera - Value
Prshkrimi Description
vbTransparent
I tejdukshm - Transparent
vbBSSolid
I plot - Solid
vbBSDash
Viz - Dash
vbBSDot
Pik - Dot
vbBSDashDot
Viz-pik Dash-dot
vbBSDashDotDot
Viz-pik-pik - Dash-dot-dot
vbBSInsideSolid
E padukshme - Invisible
Vlera - Value
Prshkrimi - Description
vbCFRTF
-16639
vbCFLink
-16640
vbCFText
vbCFBitmap
405
Prmbajtja
vbCFMetafile
vbCFDIB
Device-independent bitmap
vbCFPalette
Color palette
vbCFEMetaFile
14
vbCFFiles
15
VbComboDropdown
VbComboSimple
VbComboDropdownList
Kontrolla CheckBox
Kontanta - Constant
VbUnchecked
VbChecked
VbGrayed
Kontrolla ListBox
Kontanta - Constant
vbListBoxStandard
vbListBoxCheckBox
vbMultiSelectNone
Pa zgjedhje t shumfisht
vbMultiSelectSimple
vbMultiSelectExtended
Kontanta - Constant
Vlera - Value
Prshkrimi Description
VbSBNone
Asnjra - None
Kontrolla ScrollBar
406
Prmbajtja
VbHorizontal
Horizontal
VbVertical
Vertical
vbBoth
T dyja - Both
Kontanta - Constant
Vlera - Value
Prshkrimi - Description
vbShapeRectangle
Drejtkndsh - Rectangle
vbShapeSquare
Katror - Square
VbShapeOval
Elips - Oval
VbShapeCircle
Rreth - Circle
vbShapeRoundedRectangle
vbShapeRoundedSquare
Kontrola Shape
VbDataErrContinue
Vazhdo - Continue
VbDataErrDisplay
Vlera - Value
Prshkrimi Description
VbDataActionCancel
VbDataActionMoveFirst
VbDataActionMovePrevious
VbDataActionMoveNext
VbDataActionMoveLast
VbDataActionAddNew
407
Prmbajtja
VbDataActionUpdate
VbDataActionDelete
VbDataActionFind
VbDataActionBookmark
VbDataActionClose
10
VbDataActionUnload
11
Vlera - Value
Prshkrimi Description
VbMoveFirst
VbBOF
Vlera - Value
Prshkrimi Description
VbMoveLast
VbEOF
VbAddNew
Vlera - Value
Prshkrimi Description
vbRSTypeTable
vbRSTypeDynaset
vbRSTypeSnapShot
408
Prmbajtja
Vlera - Value
Prshkrimi - Description
vbKeyLButton
vbKeyRButton
vbKeyCancel
vbKeyMButton
vbKeyBack
Tasti Backspace
vbKeyTab
Tasti Tab
vbKeyClear
12
Tasti Clear
vbKeyReturn
13
Tasti Enter
vbKeyShift
16
Tasti Shift
vbKeyControl
17
Tasti CTRL
vbKeyMenu
18
Tasti MENU
vbKeyPause
19
Tasti PAUSE
vbKeyCapital
20
vbKeyEscape
27
Tasti ESC
vbKeySpace
32
vbKeyPageUp
33
Tasti PAGE UP
vbKeyPageDown
34
vbKeyEnd
35
Tasti END
vbKeyHome
36
Tasti HOME
vbKeyLeft
37
Shigjeta majtas
vbKeyUp
38
Shigjeta lart
vbKeyRight
39
Shigjeta djathtas
vbKeyDown
40
Shigjeta posht
vbKeySelect
41
Tast SELECT
vbKeyPrint
42
vbKeyExecute
43
Tasti EXECUTE
409
Prmbajtja
vbKeySnapshot
44
Tasti SNAPSHOT
vbKeyInsert
45
Tasti INS
vbKeyDelete
46
Tasti DEL
vbKeyHelp
47
Tasti HELP
vbKeyNumlock
144
Vlera - Value
Prshkrimi - Description
vbKeyA
65
vbKeyB
66
vbKeyC
67
vbKeyD
68
vbKeyE
69
vbKeyF
70
vbKeyG
71
vbKeyH
72
vbKeyI
73
vbKeyJ
74
vbKeyK
75
vbKeyL
76
vbKeyM
77
vbKeyN
78
vbKeyO
79
vbKeyP
80
vbKeyQ
81
vbKeyR
82
vbKeyS
83
vbKeyT
84
vbKeyU
85
410
Prmbajtja
vbKeyV
86
vbKeyW
87
vbKeyX
88
vbKeyY
89
vbKeyZ
90
Tastet prej 0 deri n 9 jan t njjt si ekuivalentet e tyre ASCII prej 0 deri n 9
Key0 Through Key9 Are the Same as Their ASCII Equivalents: '0' Through '9
Kontanta - Constant
Vlera - Value
Prshkrimi - Description
vbKey0
48
vbKey1
49
vbKey2
50
vbKey3
51
vbKey4
52
vbKey5
53
vbKey6
54
vbKey7
55
vbKey8
56
vbKey9
57
vbKeyNumpad0
96
vbKeyNumpad1
97
vbKeyNumpad2
98
vbKeyNumpad3
99
vbKeyNumpad4
100
vbKeyNumpad5
101
vbKeyNumpad6
102
vbKeyNumpad7
103
vbKeyNumpad8
104
411
Prmbajtja
vbKeyNumpad9
105
vbKeyMultiply
106
vbKeyAdd
107
vbKeySeparator
108
ENTER
vbKeySubtract
109
vbKeyDecimal
110
vbKeyDivide
111
vbKeyF1
112
F1
vbKeyF2
113
F2
vbKeyF3
114
F3
vbKeyF4
115
F4
vbKeyF5
116
F5
vbKeyF6
117
F6
vbKeyF7
118
F7
vbKeyF8
119
F8
vbKeyF9
120
F9
vbKeyF10
121
F10
vbKeyF11
122
F11
vbKeyF12
123
F12
vbKeyF13
124
F13
vbKeyF14
125
F14
vbKeyF15
126
F15
vbKeyF16
127
F16
412
Prmbajtja
VbPicTypeNone
Tipi Icon
vbPicTypeBitmap
Tipi Bitmap
vbPicTypeMetafile
Tipi Metafile
VbPicTypeIcon
Tipi Icon
vbPicTypeEMetaFile
VbVEmpty
E zbrazt (e painicializuar)
Empty (uninitialized)
VbVNull
VbVInteger
Integer
VbVLong
Long integer
vbVSingle
vbVDouble
vbVCurrency
vbVDate
Dat
vbVString
String
vbEmpty
vbNull
vbInteger
vbLong
Long integer
vbSingle
413
Prmbajtja
Single
vbDouble
vbCurrency
Valut
vbDate
Dat
vbString
vbObject
Objekt
vbError
10
Gabim
vbBoolean
11
Boolean
vbVariant
12
vbDataObject
13
vbDecimal
14
vbByte
17
Byte Bajt
vbUserDefinedType
36
vbArray
8192
Array varg
Konstante t ndryshme
Konstantet vijuese jan t definuara n librarin e Visual Basic for Applications
dhe mund t prdoren kudo n kod n vend t vlerave aktuale:
Kontanta - Constant
Vlera - Value
Prshkrimi - Description
vbCrLf
Chr(13) + Chr(10)
vbCr
Chr(13)
Karakteri pr Enter
vbLf
Chr(10)
Karakteri rresht i ri
vbNullChar
Chr(0)
Karakter me vler 0
vbNullString
414
Prmbajtja
-2147221504
Err.Raise Number =
vbObjectError + 1000
vbTab
Chr(9)
Tab character
Karakteri Tab
vbBack
Chr(8)
Backspace character
Karakteri BackSpace
415
416
Prmbajtja
Prmbajtja
PRMBAJTJA:
PARATHNIE ........................................................................................................2
HYRJE .....................................................................................................................4
INSTALIMI..............................................................................................................5
Visual Basic 6.0............................................................................................5
FILLET E VISUAL BASIC-UT...................................................................................6
Versionet e VB .............................................................................................8
DRITARJA E VISUAL BASIC-UT ....................................................................10
Menyt ............................................................................................................12
Menya File..................................................................................................12
Menya Edit .................................................................................................13
Menya View ...............................................................................................14
Menya Project ............................................................................................15
Menya Format ............................................................................................15
Menya Debug .............................................................................................16
Menya Run .................................................................................................16
Menya Tools...............................................................................................16
Menya Add-Ins...........................................................................................16
Menya Window ..........................................................................................17
Menya Help ................................................................................................17
Shiritat e veglave........................................................................................17
Kutia e veglave (Toolbox)..........................................................................19
Dritarja Project Explorer ............................................................................21
Dritarja Properties ......................................................................................22
Dritarja Form Layout .................................................................................24
Prshtatja e hapsirs punuese ...................................................................25
Projekti i par.................................................................................................26
Struktura e aplikacionit n VB ...................................................................27
Hapat e zhvillimit t aplikacionit ...............................................................28
Procesi i programimit .................................................................................30
Dritarja e forms - vendi ku ndodh do gj ..............................................30
i
Prmbajtja
Prmbajtja
Prmbajtja
Prmbajtja
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
GABIMET............................................................................................................250
TU
UT
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
UT
TU
TU
TU
UT
TU
UT
TU
UT
TU
UT
UT
TU
TU
UT
UT
TU
TU
UT
Prmbajtja
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
TU
UT
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
Makrot ......................................................................................................377
Insertimi i formave dhe kontrollave .........................................................381
Visual Basic-u dhe Accessi ......................................................................387
TU
UT
TU
UT
TU
UT
SHTOJCAT .........................................................................................................390
TU
UT
Shtojca A .......................................................................................................390
Tabela e numrave t gabimeve dhe mesazheve t gabimeve ...................390
TU
UT
TU
vi
UT
Prmbajtja
Shtojca B .......................................................................................................394
Konstantet pr kontrollat CommonDialog ...............................................394
Shtojca C.......................................................................................................399
Konstantet e Visual Basic-ut ....................................................................399
Konstantet e forms - Form Constants .....................................................402
Konstantet e grafiks - Graphics Constants .............................................402
Konstantet e vizatimit - Drawing Constants.............................................404
Konstantet e rreshtimit - Alignment Constants ........................................404
Konstantet e tiparit Stili i kufirit ...........................................................405
Konstantet e objektit Clipboard - Clipboard Object Constants ................405
Konstantet e kontrollave - Control Constants ..........................................406
Konstantet e kontrolls Data - Data Control Constants............................407
Konstantet e veprimit t ngjarjes Verifikimi i vlefshmris ....................407
Konstantet e kodit t tasteve - Key Code Constants.................................409
Konstantet e objektit Picture - Picture Object Constants .........................413
Konstantet e tipit Variant - Variant Type Constants ................................413
Konstantet VarType (Tipi i variablave) ...................................................413
Konstante t ndryshme .............................................................................414
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
TU
UT
UT
TU
TU
UT
vii
viii
Prmbajtja