You are on page 1of 424

Avni Rexhepi - Visual Basic

Hyrje

Avni Rexhepi

Prishtin, 2003
1

Avni Rexhepi - Visual Basic

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.

Avni Rexhepi - Visual Basic

Hyrje

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Hyrje

kompanive jan t interesuar pr pun ekipore, me qllim t krijimit t


komponenteve t domenit t gjer, t cilat mund t prdoren n tr kompanin.
N versionet e fundit t Visual Studios, i sht kushtuar vmendje e veant,
programimit t bazave t t dhnave. S bashku me Microsoft-in, sht prparuar
prej modeleve pr lidhje me bazat e t dhnave DAO (Data Access Objects), RDO
(Remote Data Objects Objektet pr qasje n distanc) dhe ADO (Active Data
Objects objektet aktive pr qasje n t dhna) n OLE DB (Object Linking and
Embedding , Data Bases).

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.

Visual Basic 6.0


Versioni i parafundit i Visual Basic-ut sht versioni 6.0, i prezentuar si i pavarur
dhe n kuadr t VS (Visual Studios). Visual Basic-u (shkurtimisht VB) sht
gjuh programuese e cila i ka fillet n versionin e hershm t gjuhs programuese
Basic. Por Visual Basic-u dallohet shum prej Basic-ut, sepse ofron ambientin
vizuel pr programim. N fillim VB, ofronte zgjerime prmes komponenteve VBX,
OCX etj. Kto komponente i mundsonin interfejs (ndrmjets) me ngjarjet dhe
mundsonin krijimin e interfejsit vizuel t aplikacioneve. Me zhvillimin e Visual
Basic-ut, brthama e programit sht zgjeruar dukshm dhe sht prsosur me
funksione t reja. Mirpo, prparimi m i madh sht br n ambientin pr
programim t aplikacioneve. Tani VB mund t prdor nj numr t madh t
komponenteve dhe bibliotekave referente. Prve ksaj, VB ofron integrimin e
pajisjeve tjera, si Source Safe (pr udhheqje me kodin burimor), Visual
Component Manager (pajisje vizuele pr menagjim t komponenteve) dhe pajisjet
pr qasje n t dhna.
VB sht m i afrt me ambientin programues sesa me gjuhn e thjesht
programuese. Duke prdorur kt ambient punues, programeri mund t krijoj
shum shpejt aplikacione t thjeshta, kurse ekipi i programerve mund t krijoj
aplikacione t komplikuara me komponente t distribuara.

Avni Rexhepi - Visual Basic

Hyrje

N versionin 6.0 jan shtuar aftsit pr pun me pajisjet q kan t bjn me


Internetin, kontrollat e reja dhe prmirsime t kontrollave t mparshme pr pun
me t dhna: ADO Data, DataGrid (rrjeta e t dhnave), DataList
(Lista e t dhnave), DataCombo (Lista e kombinuar e t dhnave), Hierarchical
FlexGrid (Rrjeta fleksibile hierarkike) dhe DataRepeater (Prsritsi i t dhnave).
Gjithashtu shfrytzuesit i mundsohet krijimi i kontrollave t veta (UserControl).
Bashksia e re e objekteve File System mundson menaxhimin me njsit e
disqeve, folderve dhe fajllave n stilin e orientuar n objekte. Gjithashtu jan
shtuar edhe magjistart e ndryshm (Wizard) si Setup Wizard, Data Object Wizard
dhe Data Form Wizard.
Kur startohet Visual Basic-u, paraqitet hapsira punuese (Ambienti i integruar
zhvillimor IDE - Integrated Developement Environment), i cili prbhet prej nj
numri t madh t elementeve t njohura si menyt (Menu Bar), shiritat e veglave
(Toolbar), kutit e veglave (ToolBox), hulumtuesi i projektit (Project Explorer) dhe
dritarja e tipareve (Properties).
Kshtu, Visual Basicu tani m nuk sht thjesht nj gjuh programuese, por m
shum sht nj makin pr krijimin e aplikacioneve. Asnj ambient tjetr
programues nuk ofron mundsi m t mdha n nj paketim si VB. Prmes VB,
individi mund t krijoj aplikacione t thjeshta pr disa minuta, kurse nj ekip
programersh mund t krijoj aplikacione t prsosura. VB siguron qasje t
orientuar n objekte gjat projektimit (Programim i orientuar n objekte) kurse
aplikacionet mund ti krijoni si edhe m hert.

Fillet e Visual Basic-ut


Deri n maj t vitit 1990, para paraqitjes se programit Microsoft Windows 3.0
(ather Windowsi akoma nuk ishte sistem operativ, por ishte program q startohej
n kuadr t sistemit operativ DOS), programimi ishte nj pun e vshtir dhe
bhej kryekput vetm prmes shkruarjes se tekstit t programit. Nuk kishte as
maus as dritare. Aplikacionet krijoheshin duke prdorur shenjat e ndryshme grafike
pr t simuluar dritaret, si segmentet dhe shenjat e hijezuara. Me paraqitjen e
Microsoft Windows pr kompjutert personal kompatibil me IBM PC, u paraqit nj
bot e re pr programert. Programet si Microsoft Word dhe Microsoft Excel, i
cytn programert q idet e mira t ktyre programeve ti inkorporojn edhe n
aplikacionet e tyre, si p.sh: shiritat e veglave, shum dritare brenda dritares
kryesore, bazn pr kryerjen e disa aplikacioneve njkohsisht, etj. Mirpo, kjo
krkonte shum koh, sepse ather ishin n dispozicion vetm gjuht programuese
tradicionale si Basic, C, Cobol, etj. Prmes tyre nuk mund t krijoheshin
aplikacione pr Windows, sepse nuk e prkrahnin interfejsin programues t
Windowsit (API-Application Programming Interface), i cili prcaktonte mnyrn e
krijimit t dritareve, grafikn dhe komponentet tjera q prdoreshin n aplikacionet
pr Windows.
6

Avni Rexhepi - Visual Basic

Hyrje

N Windows u paraqit termi i ri message (mesazhi). Secili veprim q ndrmirret n


Windows, shkakton nj ose m shum mesazhe. Pr shembull, kur shfrytzuesi
lviz treguesin (kursorin) e mausit npr ekran, pr seciln pozit t treguesit jepet
nga nj mesazh. Nse treguesi lvizet npr dritaren e aplikacionit aktiv, atij
aplikacioni i drgohet mesazhi prkats. Pastaj aplikacioni duhet t shqyrtoj se a ka
t bj veprimi me t, apo treguesi sht vetm n kalim. Secili aplikacion duhet t
shqyrtoj mesazhet e Windowsit dhe t bjer vendime lidhur me to. Kodi i
nevojshm pr t realizuar kt sht gjithprfshirs dhe i komplikuar.
Prve porosive t thjeshta, si lvizja e treguesit, aplikacioni i Windowsit duhet t
reagoj edhe n veprimet m t komplikuara, si lvizja e dritares. Windowsi i
tregon programit se ka sht duke br shfrytzuesi, por vet nuk ndrmerr
veprime lidhur me veprimet e shfrytzuesit. Kt ia l aplikacionit. Pr shembull,
aplikacioni duhet t vizatoj, dritaren n pozit t re. Prveq t gjitha porosive t
Windowsit, programi (aplikacioni) duhet t siguroj edhe kodin pr realizimin e
veprimeve dhe funksioneve t aplikacionit.
Visual Basic-u solli ndryshime revolucionare n mnyrn e shkruarjes s kodit. N
vend se programeri t shkruaj kodin disa faqsh, prmes t cilit dritarja do t
reagoj n lvizjet e treguesit t mausit, Visual Basic-u i mori mbi vete t gjitha
veprimet e nevojshme dhe i fshehu prej programerit. Pr ti treguar programit se
shfrytzuesi ka shtypur tastin e mausit, Visual Basicu-u futi n prdorim konceptin
e ngjarjes (Event) n vend t vargut t porosive. Pr kt, shfrytzuesi duhet vetm
t shkruaj kodin i cili do t reagoj (do t prgjigjet) n ngjarje, e jo n porosi. Kjo
paraqet nj dallim t dukshm, sepse ngjarja, kur prkthehet n porosi t
Windowsit do t mund t prbhej prej disa porosive. Edhe veprimet e thjeshta, si
shtypja e tastit t mausit prbhen prej disa prorosive t Windowsit.
Me paraqitjen e ngjarjeve, programert n VB mund t prqndrohen n shkruarjen
e elementeve t aplikacionit, sepse m nuk kan nevoj t brengosen pr detajet e
panevojshme, si ajo se ka ndodh kur shtypet tasti i mausit. Thjesht mund t
shkruajn kodin se ka ndrmirret kur t shtypet tasti. Kodi q ekzekutohet kur
shfrytzuesi shtyp tastin e mausit (gjegjsisht, kur ndodh ndonj ngjarje) njihet si
procedur pr prpunimin e ngjarjes (Event Handler).
Prve se bri fshehjen e kompleksitetit t porosive t Windows-it, VB siguroi
edhe ambientin projektues n t cilin programeri mund t vizatoj dritaret e
aplikacionit t vet, n vend se t shkruaj kodin prmes t cilit do t krijonte ato
dritare. Nse nevojitet ndonj tast n form, ather mirret prej kutis s veglave t
VB dhe vendoset n form si dhe mund t zvarritet deri sa t vendoset n pozitn e
dshiruar.
Prmes mundsis q me shpejtsi t madhe t vizatoj interfejsin e aplikacionit,
VB u b edhe pajisje e mir pr krijimin e prototipeve (Prototip-version provues i
aplikacionit q shfrytzohet pr shkmbimin e mendimeve mes programerve). Pr
konsultuesit e ndryshm, prdorimi i prototipit sht mnyr shum e mir pr tu
treguar klientve se si do t dukej aplikacioni, me rast sht shum m leht q ai
7

Avni Rexhepi - Visual Basic

Hyrje

t sheh se si duket aplikacioni real, n vend se ti shpjegohet prmes letrave.


Gjithashtu, klienti do t ket mundsi t bj vrejtje dhe t ofroj propozime t
ndryshme pr ndryshime funksionale.
Q prej paraqitjes s tij (m 1991), VB sht br nj ndr gjuht m t
popullarizuara programuese n mesin e programerve profesional. Versioni 6.0, ka
shnuar prparime t dukshme n krahasim me versionet paraprake VB5.0 dhe
VB4.0, duke shtuar numrin e komponenteve t gatshme, kontrollave ActiveX dhe
opcionet e reja pr qasje n bazat e t dhnave. Prve se sht shum i
popullarizuar n mesin e programerve, VB ka krijuar edhe nj industri t tr t
tregut t komponenteve t pavaruara. Komponentet mund t shtohen n ambientin
e VB pr t ofruar mundsit t cilat nuk i ka momentalisht. Ekzistojn me qindra
komponente t pavarura t cilat p.sh mundsojn vizatimin e hartave gjeografike,
llogaritje t komplikuara matematikore, etj. Duke prdorur prparsin e
komponenteve t gatshme, mund t shpejtohet shkruarja e programeve dhe
mirmbajtja e tyre.

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.

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

DRITARJA E VISUAL BASIC-UT


Kur t startohet programi, n ekran paraqitet dritarja hyrse, e cila largohet
menjher dhe pastaj paraqitet dritarja New Project (Projekt i ri) (fig. 1.1). Dritarja
ka tri faqe (New - I ri, Existing - Ekzistues dhe Recent - I prdorur s fundi). Faqja
New prmban listn e llojeve t projekteve q mund t krijohen.
N skajin e djath posht, ndodhen
edhe tastet Open (hape), pr hapjen
e projektit t zgjehur, Cancel
(anulo) me t cilin hiqet dor nga
hapja e projektit dhe Help
(Ndihm) i cili ofron ndihm.
N fund t dritares, kemi opcionin
Dont show this dialog in the
future (mos e paraqit kt dialog n
t ardhmen), me t cilin n t
ardhmen evitojm paraqitjen e
dritares me rastin e startimit t
programit.

Fig. 1.1 Dritarja e New Project


Pr fillim vetm zgjedhni Standard EXE dhe shtypni tastin Open (hape) ose klikoni
dy her n t dhe hapet dritarja punuese e Visual Basic-ut (fig. 1.2). Pamja e
dritares dhe objekteve prbrse t saj, si menyt, shiritat e veglave, etj, jan t
ngjashme me dritaret e zakonshme t produkteve t Microsoft-it, prandaj kush
sht i familjarizuar me prdorimin e programeve t Microsoft Office-it, do t
vrej ngjajshmrit dhe me lehtsi do t orientohet n prdorimin e komandave
dhe shiritave t veglave.

10

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

Fig. 1.2 Dritarja e Visual Basic-ut


Si zakonisht, kemi menyn e programit dhe nn t shiritin e veglave standarde. N
ann e majt ndodhet kutia e veglave (Toolbox), t ciln pastaj mund ta
zhvendosim n cilndo pjes t dritares. N qendr ndodhet pjesa pr zhvillimin e
projektit (Developement Area), q njherit paraqet hapsirn punuese dhe brenda
saj shihet dritarja e forms s par standarde (Form1), q hapet doher me rastin e
fillimit t projektit t ri. N ann e djatht t dritares, ndodhen dritaret: Project
Explorer (Hulumtuesi i projektit) n t ciln shihet lista e objekteve t projektit
aktual. Nn t, ndodhet dritarja Properties (Dritarja e tipareve) n t ciln shihet
lista e tipareve t objektit t zgjedhur momentalisht. N kt dritare ndodhet lista e
tipareve t cilat prcaktojn pamjen dhe sjelljen e objektit dhe prmes saj bhet
prcaktimi i tipareve (vetive, karakteristikave) t objektit. N pjesn e poshtme t
saj paraqitet edhe dritarja Properties Description Window (Dritarja e
prshkrimit/shpjegimit t tipareve) me shpjegimet e nevojshme pr cilindo tipar t
zgjedhur n list. Si shihet, momentalisht sht i zgjedhur tipari Caption (Titulli)
dhe n dritare jan dhn shpjegimet pr t. N fund, kemi dritaren Form Layout
(Shtrirja e dritares), n t ciln prcaktohet pozita relative e forms s projektit n
kuadr t siprfaqes s ekranit, kur t ekzekutohet projekti. Pr seciln form t
11

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

zgjedhur, mund t prcaktohet pozita e saj n ekran, duke prcaktuar pozitn


relative t forms reprezentuese pr t n dritaren Form Layout.

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 )

Fig. 1.3 Menya


File
- Save Form1 As... (Ruaje formn si ...) ruajtja e forms me emrt tjetr.
- Save Selection (Ruaje zgjedhjen)
- Save Change Script (Ruaje Scriptin ndryshues)
- Print ... (Shtype), bn shtypjen e objektit aktual, forms, kodit etj.
- Print Setup... (Setimi, konfigurimi i shtypjes).
- Make Project1.exe... (Bje Projektin.exe...) shrben pr krijimin e fajllit
ekzekutiv, me prapashtes .exe, t projektit.
- Make Project Group (Krijo grup projektesh).
- 1,2,3,4 Lista e fajllave q jan hapur s fundi.
12

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

- Exit (Dalja), shrben pr mbylljen e programit.


Menyt t cilat kan n vazhdim tri pikat (...) kur t aktivizohen krkojn
informacione shtes prmes dritareve t ndryshme pr dialog. Menyt tjera
automatikisht kryejn veprimin e caktuar n meny.

Menya Edit
N menyn Edit, si zakonisht ndodhen komandat pr prerje, kopjim, krkim,
zvendsim, etj (Fig. 1.4).

Fig. 1.4 Menya


Edit

- Undo (Zhbje), anulon veprimin (ndryshimin) e fundit


- Redo (Ribje), kryen rishtazi veprimin (ndryshimin) e
fundit
- Cut (Preje), largon zgjedhjen aktuale (t tekstit, objektit,
forms, etj) dhe e vendos n memorje (Clipboard- pjesa e
rezervuar e memorjes pr kt qllim) ashtu q t njjtat
thirren n pozit t re pmes Paste (Ngjit) (ka kuptimin e
marrjes prej memorjes dhe ngjitjes-vendosjes n pozite t re,
aty ku sht momentalisht kursori ose zgjedhja).
- Copy (Kopjo), bn kopjimin e zgjedhjes aktuale.
- Paste (Ngjite), thrret prej memorjes prmbajtjen
momentale t saj (nga Clipboard).
- Paste Link (Ngjite lidhjen), krijon vetm lidhjen me
objektin n Clipboard.
- Remove (Largo), bn largimin, fshirjen e zgjedhjes
momentale
- Delete (Fshije), bn fshirjen e t dhns apo objektit t
zgjedhur (selektuar).
- Delete Table from Database (Fshije tabeln prej bazs s t
dhnave), kur jemi duke punuar me baza t t dhnave.

- Select All (Zgjedhi t gjitha), bn zgjedhjen e t gjitha elementeve, p.sh,


objekteve n form, tekstit n dritaren e kodit, etj.
- Select All Columns (Zgjedhi t gjitha kolonat), kur jemi duke punuar me tabela.
- Table (Tabela), pr pun me tabela.
-Find (Gjeje), shrben pr hapjen e dialogut pr krkim, me t cilin i krkojm
vlerat e caktuara, n form, dritare t kodit etj.
- Replace (Zvendso), shrben pr zvendsimin e vlers ekzistuese, me vler t
re, po ashtu bhet prmes dialogut q hapet.
- Indent (shtyerja), zhvendosja si pr kryerresht me Tab.
13

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

- Outdent (largimi) i nj shtyerje (Indenti).


- Insert File (Inserto fajllin), shrben pr insertimin e fajllit ekzistues, n kuadr t
projektit aktual.
- List Properties/Methods (Listo tiparet/metodat), shrben pr listimin e tipareve
dhe metodave n dispozicion gjat shkruarjes s kodit, pr t lehtsuar dhe
ndihmuar shkruarjen e kodit.
- List Constants (Listo konstantet)
- Quick Info (Informat e shpejt)
- Parameter Info (Iinformat pr parametrat)
- Complete Word (Kompleto fjaln), shrbn pr kompletimin e fjals s filluar,
gjat shkruarjes s kodit.
- Go to Row (Shko tek rreshti) - shrben pr kalim n rreshtin e caktuar.
- Bookmarks (shenjat), (Bookmark-shenj n libr, pra si shenjat q i lm n libr,
pr gjetjen e faqes s caktuar, p.sh, duke paluar skajin e flets prkatse), t cilat
vendosen n pjes t caktuara t kodit ose projektit, pr ti gjetur ose pr tiu
referuar m von.

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.

Fig. 1.5 Menya


View

14

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

Menya Project

Fig. 1.6 Menya


project

Menya Project, prmban komandat pr manipulim me


objektet e projektit dhe tiparet e tij (Fig. 1.6).
Prms komandave Add, mundsohet shtimi i objekteve t
caktuara n kuadr t projektit.
Prmes komands Components.., i qasemi komponenteve t
ndyshme t cilat mund ti prdorim n programe, pr t
lehtsuar dhe njherit pr t prsosur programet. N listn e
komponenteve ndodhet nj numr shum i madh i
komponenteve t gatshme t cilat lehtsojn punn dhe
mundsojn kryerjen e veprimeve t ndryshme prmes
komandave t gatshme nga komponentet e ofruara.
Prmes opcionit Project Properties ... hapet dritarja pr
dialog, prmes s cils prcaktohen opcionet pr mnyrn e
startimit t programit dhe tipareve tjera t projektit, si
emrtimi, versioni, modeli etj.

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

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

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

Fig. 1.9 Menya


Run

Menya Run (Ekzekuto), prmban komandat pr ekzekutimin


e programit, pauzimin, ndaljen, dhe prsritjen. N
bashkpunim me menyn Debug mund t bj ekzekutimin e
pjesshm. Prmes saj mund t bhet edhe prkthimi (Compile
- Kompajllimi) i programit para ekzekutimit, me rast bhet
edhe verifikimi i sintakss s kodit dhe gjetja e gabimeve t
shtypjes dhe t kodit.

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

Fig. 1.11 Menya


Add-Ins
16

Menya Add-Ins (shtesat), prmban komandat prmes s


cilave zgjerojm ambientin programues t VB. Shtimi bhet
prmes Add-In Manager (Menaxherit t shtesave) e pastaj
shtesat i gjeni n listn Add-Ins. Mund t shtohen edhe
programet tjera t cilat jan t projektuara t punojn me VB,
si p.sh., programi pr krijimin e dritareve t cilat
komunikojn me bazat e t dhnave.

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

Menya Window

Fig. 1.12 Menya


Windiw

Menya Window prmban komandat pr manipulim me


dritaret n kuadr t dritares punuese t VB. Dritaret mund t
shprndahen, rirreshtohen dhe t ripozicionohen prmes
komandave n kt meny, n mnyr horizontale, vertikale
dhe kaskadike. Gjithashtu prmban edhe listn e objekteve
t projekteve t hapura dhe mundson kalimin prej njrit
objekt n tjetrin.

Menya Help

Fig. 1.13 Menya


Help

Menya Help prmban komandat prmes s cilave krkoni


ndihm. VB prmban dokumentacion t pasur pr ndihm
lidhur me prdorimin e programit dhe prmban shembuj t
shumt. Varsisht prej instalimit mund t gjeni shpjegime t
nevojshme lidhur me veprimet e caktuara. Nse sht
instaluar edhe programi MSDN (Microsoft Developers
Network) q paraqet sistemin pr ndihm pr programet e
Microsoftit, ather menya help do t jet shum e pasur.
MSDN instalohet veant, nuk sht n kuadr t VB.

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

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

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

Fig. 1.14 Shiriti i veglave standarde


Shiriti i veglave Edit, ka t bj me editimin e kodit (programit) n dritaren e kodit
dhe mundson qasje t shpejt n komandat, tiparet, metodat, parametrat dhe
konstantat. Gjithashtu mundson zhvendosjen e tekstit (Indent, Outdent) dhe
vendosjen e shenjave (Breakpoint).
List
Properties/Methods

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

Fig. 1.15 Shiriti i veglave Edit


Shiriti i veglave Debug, prdoret pr ekzekutimin e programit dhe mnyrat e
ndryshme t ekzekutimit hap pas hapi. Pastaj aty kemi edhe komandat prmes s
cilave aktivizohet edhe dritarja pr ekzekutim t menjhershm (Immediate
Window), q paraqet nj dritare n pjesn e poshtme t dritares s VB dhe n t
ciln shihen rezultatet e ekzekutimit t programit.

18

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

Start
Break

End

Local Variables
Window

Step Over

Watch Window
Quick Watch

Step Out
Set Breakpoint

Immediate Window

Step Into

Call Stack

Fig. 1.16 Shiriti i veglave Debug


Shiriti Form Editor prmban komandat pr formatizim m t shpejt t formave
dhe objekteve t tyre, si prcaktimin e rradhs: Bring Forward (Sille para), Send to
Back (Drgoje prapa) shprndarjen e tyre t rregullt n kuadr t forms: Alignment
Drop-Down (Lista rnse pr rreshtim), barazimin e madhsive t tyre: Same Size
Drop-Down (Lista rnse pr madhsi t njjta) dhe bllokimin e tyre n pozita t
caktuara (Lock Controls).
Bring Forward

Send to Back

Same Size Drop-down


Lock Controls

Alignment
Drop-down

Centering
Drop-down

Fig. 1.17 Shiriti i veglave Form Editor

Kutia e veglave (Toolbox)


N kutin e veglave (Toolbox) ndodhen t gjitha veglat pr krijimin e objekteve n
kuadr t formave t projektit. Kontrollat jan vegla n kutin e veglave (Toolbox)
t cilat vendosen n forma pr t bashkvepruar me shfrytzuesit e programeve dhe
pr t kontrolluar rrjedhn e programit. Kur fillohet projekti i ri, VB paraqet listn
e kontrollave t cilat mund t prdoren dhe q njihen si kontrolla t brendshme
(Intrinsic controls) sepse pr prdorimin e tyre nuk nevojiten fajlla shtes. Kur
shtohen komponente t reja n projekt, ather n kutin e veglave paraqiten
kontrollat e asaj komponente, mirpo pr prdorimin komponenteve nevojiten
fajllat shtes prkats, t cilt kan prapashtesn OCX.
N kutin e veglave t brendshme kemi kontrollat vijuese:

19

Avni Rexhepi - Visual Basic


Ikona

Dritaret dhe menyt

Kontrolla-Prshkrimi
Treguesi (i mausit), Zgjedhesi - selektuesi. Bn zgjedhjen e kontrollave

Pointer
PictureBox

Kontroll q prdoret pr paraqitje t grafiks, bartse (kontejner) pr


kontrolla tjera dhe pr paraqitje t rezultateve dalse t metodave
grafike ose tekstit duke prdorur metodn Print.
Etiket, tekst prshkrues si titull, instruksion etj.

Label
Text Box
Frame
Command Button
Check Box
Option Button
Combo Box

Kontroll, q tregon t dhnat ose shrben pr shtypjen e t dhnave n


t.
Korniz pr grupin me alternativa pr zgjedhje n form t fushave pr
vrtetim, pullave opcionale etj,
Tast Komandues, pr inicimin e ndonj veprimi.
Kontroll pr paraqitje t vlerave t tipit Yes/No. Mund t prdoret pr
paraqitjen e ndonjrs prej vlerave t opcioneve n Option Group.
Kontroll pr paraqitje t vlers s tipit Yes/No. Mund t prdoret pr
paraqitjen e njrs prej vlerave alternative n kuadr t Option Group.
Kontroll pr paraqitjen e kombinimit t lists rnse me vlera dhe
fushs pr insertim t tekstit.
Kontroll pr paraqitje t lists ku mund t zgjedhet ndonj vler.

List Box
Shiriti rrshqits (rrotullues) horizontal.
HScrollBar
Shiriti rrshqits (rrotullues) vertikal.
VScrollBar
Timer
DriveListBox
DirListBox
FileListBox

Shape

Kontroll q mund t ekzekutoj kodin n intervale t rregullta kohore,


duke shkaktuar ngjarjen Timer. sht e padukshme pr shfrytzuesit
dhe kryen procesimin n prapavij
Kontroll q mundson zgjedhjen e njsis valide t diskut gjat kohs
s ekzekutimit. Paraqet listn e njsive pr ruajtje t shnimeve t
sistemit t shfrytzuesit.
Kontroll q paraqet direktroriumet (foldert) dhe shtigjet gjat kohs s
ekzekutimit. Prdoret pr paraqitjen e lists hierarkike t folderve.
Kontroll q lokalizon dhe liston fajllat n folderin e zgjedhur gjat kohs
s ekzekutimit. Prdoret pr paraqitjen e lists s fajllave sipas tipit t
fajllit.
Kontroll grafike q paraqitet formn katrkndsh, katror, elips, rreth,
etj.
Kontroll grafike q paraqet vij horizontale, vertikale, t pjerrt.

Line
Image
Data
OLE

20

Prdoret pr paraqitje t grafiks. Mund t paraqes grafik t tipit, bmp,


jpg, ikona, metafile, etj.
Kontroll pr qasje n t dhna (prmes Microsoft Jet Database
engfine) n bazat e t dhnave.
Kontroll q mundoson insertimin e objekteve dhe prdorimin e
interfejsit vizuel t tyre.

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

Dritarja Project Explorer


Projekti i VB prman disa fajlla. Pr seciln pjes t projektit, form, kod,
kontroll e shtuar etj., krijohet fajlli prkats. Pr t manipuluar m leht me listn
e fajllave na ndihmon dritarja Project Explorer (Fig. 1.18).
View
Code

View
Object

Toggle Folders

Fig. 1.18 Dritarja Project


Explorer

N dritare paraqitet lista e fajllave t projektit


prkats. Meqense sapo sht filluar krijimi i
projektit t ri, momentalisht shihet vetm
kategoria Forms (format, dritaret) dhe emri i
forms s par. Ndarja pra bhet npr
kategori, q paraqiten prmes shenjs s
folderit. Paraqitja mund t bhet sipas lists
ose sipas ndarjes n foldera. Pr t ndryshuar
pamjen, shtypet tasti komandues Toggle
Folders (Fig. 1.18) n shiritin e veglave t
dritares Project.

N shiritin e veglave t dritares ndodhen tri taste komanduese:


- View Code (Shiko kodin) me t ciln hapet dritarja e kodit t shkruar n VB, n
hapsirn punuese t dritares.
- View Object (Shiko objektin) me t ciln hapet dritarja e forms dhe objekteve n
t.
- Toggle Folders (Palosi/Shpalosi foldert) me t ciln bhet paraqitja e ndarjes
sipas folderve ose vetm n form liste.
Ka mundsi t punohet njkohsisht n disa projekte. Pr t shtuar nj projekt t ri
zgjedhet n meny: File-Add Project ose n shiritin e veglave klikohet tasti i par
(Add-Standart Exe), i cili prmban listn rnse me llojet e projekteve, ku i pari
ndodhet projekti Standard Exe). Kur shtohet projekti i ri, athern n hapsirn
punuese paraqitet edhe dritarja e projektit t ri, kurse n dritaren Project Explorer
mund t shihet lista e objekteve t projektit t dyt (Fig. 1.19)

21

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

N kt rast krijohet grupi i projekteve (Project


Group). Grupi i projekteve mundson
menaxhim m t leht t projekteve t
ndrlidhura mes veti. Kur krijohet grupi i
projekteve, ndryshon edhe prmbajtja e
menys File dhe e shiritit t veglave. Tani n
vend t menys Save Project (Ruaje projektin)
paraqitet Save project Group (Ruaje grupin e
projekteve). Njsoj ndodh edhe me ikonn
Save n shiritin e veglave, e cila tani
shndrrrohet n Save Project Group.
Fig. 1.19 Grupi i Projekteve
Edhe n dritaren Project Explorer mund t prdoret menya e shpejt ose menya e
kontekstit e cila hapet me tastin e djatht t mausit.

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

Avni Rexhepi - Visual Basic

Fig. 1.20 Dritarja Properties


dhe Description

Dritaret dhe menyt

Momentalisht kemi t zgjedhur formn Form1,


prandaj n dritaren Properties shihen tiparet e
saj. Pr tiparin e zgjedhur n list, n pjesn e
dritares Description shihet prshkrimi i tiparit,
gj q n fillim sht ndihm shum e
mirseardhur deri sa t msohen tiparet e
mundshme dhe ndikimi i tyre n objekt. N
list, n ann e majt shihet emri i tiparit, kurse
n ann e djatht vlera momentale ose e
predefinuar pr t. Pr t ndryshuar vlern
(tiparin e caktuar), klikojm pr t vendosur
kursorin brenda fushs. Ndryshimet mund t
bhen duke ndryshuar vlern prmes tastiers
ose pr shum tipare vetm duke zgjedhur
vlerat opcionale n listn e tipareve t
mundshme, e cila hapet prmes shenjs n
skajin e djatht. Pr ato fusha q ekziston lista
e vlerave pr tiparin e caktuar, porsa t
klikojm brenda fushs, paraqitet shenja pr
hapjen e lists rnse n skajin e djatht.

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

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

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.

Dritarja Form Layout


Pr seciln form n kuadr t projektit duhet prcaktuar pozitn n kuadr t
ekranit. Kjo mund t bhet prmes kodit ose gjat kohs s dizajnimit prmes
dritares Form Layout (paraqitja, shtritja e forms) (Fig. 1.21).
Pr formn e zgjedhur n hapsirn punuese n
dritaren Form Layout aktivizohet pamja e saj
miniaturale. Prmes mausit mund ta zgjedhim
dhe ta zvarrisim n pozitn relative n ekran
dhe kur t ekzekutohet programi pr projektin e
caktuar forma do t paraqitet n at pozit.
Gjat zvarritjes, nuk do t ndryshoj pozita e
forms n hapsirn punuese. Kjo sht
mnyr e leht dhe e shpejt pr shprndarjen
hapsinore t formave, n vend se t shkruhet
kodi pr kt qllim.
Fig. 1.21 Dritarja Form
Layout
Nse klikojm me tastin e djath brenda dritares Form Layout, hapet menya e
kontekstit, n t ciln mund t aktivizojm ose deaktivizojm opcionet:
- Resolution Guides (Udhheqsit, drejtuesit pr rezolucion, si shihet n figur me
vija t ndrprera) q ndihmojn n orientimin n raport me madhsin e ekranit,
ashtu q t mos krijohen forma m t mdha se rezolucioni minimal, si p.sh.,
800x600.
- Startup Position (Pozita Fillestare) q mundson prcaktimin e pozits fillestare
t forms (kur t ekzekutohet programi, projekti). Ktu kemi opcionet: Manual
(prcaktimi manual, me dor i pozits); Center Owner (n qendr t pronarit,
bartsit) mundson paraqitjen n mes t forms bartse, pra forma n kuadr t
forms; Center Screen (n qendr t ekranit), mundson vendosjen e forms n
qendr t ekranit; Windows Default (pozit e zakonshme e Windowsit) bn
pozicionimin prej Windowsit, varsisht prej pozitave q i ka n dispozicion
momentalisht.
24

Avni Rexhepi - Visual Basic

Dritaret dhe menyt

Opcionet pr pozitn startuese aktivizohen vetm nse klikohet me tastin e djatht


brenda forms miniaturale n dritaren Form Layout.
Edhe pr dritaren Form Layout, si edhe pr dritaret Project Explorer, Properties,
ToolBox, etj, kur t hapet menya e kontekstit (menya e shpejt, me tastin e djatht
t mausit) paraqiten edhe opcionet Dockable dhe Hide. Opcioni Dockable (i
ankorueshm, lidhet n dok) mundson lidhjen e dritares prkatse n pjesn e
skajshme dhe standarde t dritares se VB. Kur deaktivizohet ky opcion, dritarja
prkatse shndrrohet n dritare t zakonshme, e cila mund t pozicionohet kudo
brenda ekranit, duke e shtypur dhe zvarritur titullin e dritares prkatse prmes
treguesit t mausit. Opcioni Hide (fshihe) bn fshehjen e dritares prej ekranit. Nse
ndonj prej dritareve sht fshehur prmes opcionit Hide, pr ta kthyer prsri n
ekran, zgjedhet n menyn View (pamja) nnmenya pr dritaren prkatse (Project
Explorer, Properties Window, Form Layout Window).

Prshtatja e hapsirs punuese


Varsisht prej madhsis s ekranit dhe rezolucionit t tij, mund t bhet prshtatja
e hapsirs punuese (zona me prapavi ngjyr hiri) sipas nevojs dhe sipas dshirs.
Nse ekrani sht i vogl, ather dritaret e shumta, pengojn gjat puns, sepse
mbetet hapsir e vogl n hapsirn punuese. Nse n hapsirn punuese jan t
hapura dy e m shum dritare, ather prmes menys Window, mund t bhet
shperndarja rregullt e dritareve n ekran, prmes opcioneve: Tile Horizontally
(Shprndarja, Palosja horizontale); Tile Vertically (Shprndarja, Palosja vertikale);
Cascade (Radhitja kaskadike, e njpasnjshme) dhe Arranga Icons (Rregullimi i
Ikonave) q aktivizohet nse minimizohet ndonjra prej dritareve. Gjithashtu,
menya Window, prmban edhe listn e dritareve t hapura dhe rradhn e paraqitjes
s tyre.
Hapsira punuese e integruar (IDE) e VB sht prsosur vazhdimisht, me secilin
version t ri. Me koh dhe me prvoj, msohen fshehtsit e shfrytzimit t t
gjitha prparsive dhe opcioneve t ofruara.

25

Avni Rexhepi - Visual Basic

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

Disa nga karakteristikat e Visual Basic-ut jan:


Set i plot i objekteve shfrytzuesi e vizaton aplikacionin;
Shum ikona dhe fotografi pr prdorim;
Prgjigje n veprimet e tastiers dhe mausit;
Qasje n Clipboard dhe n printer;
Varg i plot i funksioneve: matematike, pr manipulim me tekst dhe grafike;
Mund t manipuloj me variablat fikse dhe dinamike dhe vargjet e kontrollave;
Prkrahje e qasjes sekuenciale dhe t rastit;
Paisje t prdorshme pr debug-im dhe manipulim me gabimet;
Pajisje t fuqishme pr qasje n baza t t dhnave;
Prkrahje pr kontrollat ActiveX;
Package & Deployment Wizard (magjistari pr paketim dhe distribuim) q lehtson
distribuimin e thjesht t aplikacioneve t krijuara.
26

Avni Rexhepi - Visual Basic

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)

Disa nga termat e zakonshm q prdoren:


Aplikacioni (Application)/Projekti (Project) - prbhet prej elementeve vijuese:
Format (Forms) - Dritaret t cilat krijohen pr interfejs t shrytzuesve.
Kontrollat (Controls) -Veglat grafike t vizatuara n forma, pr t lejuar
bashkveprimin me shfrytzuesit (TextBox-et, Label-at, Tastet komanduese, etj).
Format dhe kontrollat jan objekte.
Tiparet (Properties) - do karakteristik e forms ose kontrolls sht e
specifikuar prmes tiapreve. P.sh., tipare jan: emri, titulli, madhsia, ngjyra, pozita
dhe prmbajtja. Visual Basic-u aplikon tiparet e predefinuara (standarde) t cilat
pastaj shfrytzuesi mund ti ndryshoj sipas dshirs gjat dizajnimit (Design
Time) ose gjat ekzekutimit (Run Time)
Metodat (Methods) - Procedurat e brendshme (Built-in procedure) t cila mund t
thirren pr t ekzekutuar ndonj veprim n ndonj objekt t veant.
Procedura e ngjarjeve (Event Procedures) - Kodi i lidhur me ndonj objekt. Ky
sht kodi q ekzekutohet kur ndodh ndonj ngjarje.

27

Avni Rexhepi - Visual Basic

Projekti i par

Procedurat e prgjithshme (General Procedures) - Kodi q nuk sht i lidhur me


ndonj objekt. Ky kod mund t thirret prej aplikacionit.
Modulet (Modules) - Koleksion i procedurave t prgjithshme, variablave,
konstanteve dhe deklarimeve t prdorura prej aplikacionit.

Hapat e zhvillimit t aplikacionit


Ekzistojn tre hapa themelor pr krjimin e aplikacioneve t VB:
- Vizatimi i interfejsit (Formave dhe kontrollave)
- Prcaktimi i tipareve t kontrollave
- Bashkangjitja e kodit t kontrollave
Visual Basic-u operon n tri mode:
- Modi i dizajnimit (Design mode) q prdoret pr krijimin e aplikacionit
- Modi i ekzekutimit (Run mode) q prdoret pr t ekzekututar aplikacionin.
- Modi i ndrprerjes (Break mode) aplikacioni ndalet dhe sht n dispozicion
debugger-i (programi pr eleminimin e gabimeve).
Kryesisht do t fokusohemi n modin e dizajnimit.
Kontejneri (bartsi) sht nj objekt, si forma, korniza, kontrolla PictureBox, etj,
t cilat mund t mbajn n vete kontrolla t tjera.
Tiparet prshkruajn objektin. Metodat bjn q objekti t bj dika. Ngjarjet jan
ato q ndodhin kur ndonj objekt bn dika. Secili objekt, si forma ose kontrolla,
ka nj bashksi t tipareve q e prshkruajn at. Edhe pse kjo bashksi nuk sht e
njjt pr t gjitha objektet, disa tipare jan t njjta gati pr t gjitha kontrollat. T
gjitha tiparet e kontrolls mund t shihen n dritaren Properties.
Terma t prgjithshm n gjuht programuese
Programi sht bashksi e instruksioneve q bjn q kompjuteri t kryej ndonj pun, si
kryerja e ndonj llogaritjeje. Termi Program zakonisht prdoret si sinonim me termin
Aplikacion.
Projekti sht koleksion i fajllave q krijohen prej shfrytzuesit dhe prbjn Windows
aplikacionin e krijuar.
Edhe pse programert i prdorin t dy termat pr t njjtin qllim, duket se termi aplikacion i
prshtatet m shum prshkrimit t programit t Windowsit sepse ato programe zakonisht
prbhen prej shum fajllave. Kta fajlla punojn s bashku n format e projektit. Projekti
gjeneron programin final t cilin shfrytzuesi e ekzekuton prej Windows-it duke klikuar dy
her ikonn e tij ose duke e startuar prej menys Start t Windows-it.
Aplikacioni sht koleksion i nj ose m shum fajllave q kompajlohen n nj program
ekzekutiv.
Roli i pajisjeve pr programim (Gjuhve programuese) ka shnuar zhvillim prgjat viteve
prkrah hardverit t kompjuterve. Gjuht programuese t s sotmes, si Visual Basic-u,
dallojn shum prej gjuhve programuese t disa viteve m par. Natyra vizuele e sistemit

28

Avni Rexhepi - Visual Basic

Projekti i par

operativ Windows krkon pajisje m t avansuara pr programim se ato q ishin n


dispozicion deri para disa viteve. Para ambientit t Windowsit, gjuht programuese ishin
thjesht pajisje t bazuara n tekst me t cilat shkruhej programi. Sot, nevojitet shum m
tepr se vetm gjuha. Nevojitet pajisja zhvilluese grafike q mund t punoj brenda sistemit
operativ Windows dhe t krijoj aplikacione q shfrytzojn prparsit e t gjitha ofertave
grafike, multimediale, on-line dhe multiprocesorike t Windowsit. Visual Basic-u sht nj
pajisje e till. Pr m tepr se gjuha e thjesht programuese, Visual Basic-u ju mundson
krijimin e aplikacioneve t cilat bashkveprojn n do aspekt me sistemin operativ
Windows.
Kompajleri sht sistem i cili prkthen (konverton, shndrron) programin n aplikacion t
ekzekutueshm n Windows (n sistemin operativ). Visual Basic-u prfaqson prkthyesin
e vrtet i cili krijon fajlla ekzekutiv t pavarur (.exe) q ekzekutohen m shpejt se VB
programet e mhershme.
Gjuht programuese sot nuk jan ato q ishin dikur. Gjuha vetvetiu nuk sht br m e
parndsishme, por interfejsi grafik sht br m i rndsishm.
Kompjuteri nuk kupton asnj gjuh t folur, si gjuha angleze, gjermane, shqipe, etj. Pr kt
arsye, duhet ti prshtatemi makins (kompjuterit) dhe t msojm gjuht t cilat kompjuteri
mund ti kuptoj. Gjuha programuese e Visual Basic-ut sht mjaft e thjesht dhe prdor
fjalt e gjuhs angleze n t shumtn e rasteve. Megjithat, gjuha nuk sht e
dykuptimshme. Kur shkruhet ndonj urdhr n gjuhn e Visual Basic-ut, ai urdhr kurr nuk
ka dy kuptime n t njjtin kontekst.
Kodi sht emr tjetr pr urdhrat e shkruar n gjuhn programuese. Pra kodi jan
instruksionet dhe urdhrat e shkruar prmes gjuhs programuese duke prdorur fjalorin e
asaj gjuhe dhe sintaksn (gramatikn, shenjat e piksimit dhe rregullat e shkruarjes). Kodi
sht lidhsi (ngjitsi) i cili bashkon t gjitha procesiet, grafikn dhe tekstet n nj
aplikacion. Kodi i programit bn q aplikacioni t dij se ka duhet br nga nj mori e
veprimeve t mundshme si rezultat i veprimeve t shfrytzuesit.
Bug (lexohet Bag) sht gabim n program i cili duhet t prmirsohet q t sigurohet
ekzekutim i rregullt i programit. Aplikacionet testohen me pajisjet pr prmirsim (debug-im)
q i ofron Visual Basic-u.
Bug (ang. Insekt) ka filluar t prdoret si term pr prshkrimin e gabimeve n program,
sepse n nj rast, n kohn kur kompjutert ishin makina t mdha (me qarqe si llampat
elektronike dhe prques t ndryshm), nj kompani po bnte promovimin e nj programi t
ri dhe prjetoi dshtim t plot sepse u paraqit nj gabim i paparashikuar. Kur projektuesit
filluan hulumtimin pr shkaqet e gabimit, vrejtn se nj insekt (Bug) kishte shkaktuar lidhje
t shkurt mes dy prquesve dhe kjo kishte qen shkak i mosfunksionimit t programit. Prej
ktij rasti t gjitha gabimet n programe filluan t quhen Bug. Procesi i prmirsimit t
gabimeve quhet Debug (Debug-im lexohet Dibagim) kurse programet q prdoren pr
kt qellim quhen Debugger (lexohet: Dibager).

29

Avni Rexhepi - Visual Basic

Projekti i par

Procesi i programimit
1.
2.
3.
4.
5.
6.

Startohet Visual Basic-u


Krijohet aplikacioni
Testohet aplikacioni
Kompajlohet programi n aplikacion final
Dilet prej Visual Basic-ut, dhe
Shprndahet pr prdorim npr shfrytzues.

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.

Dritarja e forms - vendi ku ndodh do gj


Dritarja e forms sht hapsira primare punuese. Edhe pse dritarja e forms n
fillim duket relativisht e vogl n krahasim me pjesn tjetr t ekranit, ajo prbn
prapavin e aplikacionit. Me fjal tjera, kur krijohet ndonj aplikacion, t gjitha
kontrollat vendosen n form dhe n fakt kur ekzekutohet aplikacioni, ajo ka
shihet sht dritarja e forms s aplikacionit me komponentet e vendosura n t dhe
t ndrlidhura me kodin prkats. Kodi i programit nuk shihet n dritaren e forms.
Dritarja e forms prmban kontrollat, kurse kodi paraqitet n nj dritare t veant
t quajtur dritarja e kodit (Code Window). Dritarja e kodit mund t shihet nse
zgjedhet n meny: View-Code ose n dritaren Project Explorer mund t shtypet
tasti View Code. Dritarja e kodit sht dika m tepr se editor i tekstit me an t t
cilit shkruhet programi (urdhrat e programit) i cili bashkon n nj trsi
aplikacionin.
Meqense mnyra m e mir pr shpjegimin dhe msimin e programimit sht
programimi, le t fillojm me shembujt, prmes t cilve do t jepen shpjegimet
hap pas hapi.
Se pari startojm programin, Visual Basic-un, dhe startojm nj program t ri
standard (Standard EXE). Pamja e ekranit n fillim sht e njjt me dritaren e par
t Visual Basic-ut (Fig. 1.2) dhe si hapsir punuese n modin e dizajnimit
paraqitet forma e par e emrtuar fillimisht me emrin Form1. N dritaren Project
Explorer tregohet emri i forms, kurse n dritaren e tipareve (Properties) kemi
objektin zgjedhur:
dhe n list, tiparet e forms. Forma sht
momentalisht e zgjedhur, gj q tregohet m pikat zgjedhse n skaje t forms dhe
n mes t vijave ansore t saj. Prmes pikave zgjedhse mund t ndryshohet
madhsia e forms. Treguesi pozicionohet mbi pik dhe merr formn e shigjets
dykahshe. Nse shtypet tasti i majt i mausit dhe zvarritet n drejtim t shigjetave,
ndryshon madhsia e forms. Prmes pikave ansore, ndryshmi i madhsis mund
30

Avni Rexhepi - Visual Basic

Projekti i par

t bhet vetm n drejtim t shigjetave treguese (majtas/djathtas pr zgjerim dhe


ngushtim, ose posht/lart pr zgjatje dhe shkurtim). Prmes pikave n skaje (n
knde), kur treguesi merr formn e shigjets s pjerrt, mund t ndryshohet
madhsia n t katr drejtimet njkohsisht.
Pr t ndryshuar pamjen e forms, mund t ndryshojm edhe ngjyrn e saj t
prapavis. N modin e ekzekutimit, ngjyra e prapavis s forms, sht ngjyr hiri
standarde e dritareve t Windows-it. N modin e dizajnit, forma ka ngjyrn e njjt
t prapavis, por shihen edhe pikat t cilat definojn rrjetn pr orientim dhe
dizajnim m t leht. Pr t ndryshuar me lehtsi ngjyrat e formave, mund t
aktivizojm edhe paletn e ngjyrave, duke zgjedhur n menyn View, Color Palete.
Ather n ekran paraqitet paleta e ngjyrave dhe duke klikuar n ngjyrn prkatse
ndryshojm ngjyrn e forms s zgjedhur (ose kontrolls s zgjedhur, n rastet
tjera).
Prveq ndryshimeve t ktilla direkte, pr ndryshimin e ngjyrave dhe pr t
ndyshuar madhsin me precizitet t caktuar, duhet ndryshuar tiparet e forms n
dritaren Properties. Ndr tiparet kryesore t formave jan: Appearance( Paraqitja,
dukja)-q mund t jet e rrafsht ose 3D; BackColor (ngjyra e prapavis) ka vlera
t predefinuara t Visual Basicut (vlerat jan n form heksadecimale); Enabled (E
mundsuar)-komunikon me shrytzuesin n modin e ekzekutimit; Font (Fonti)Lloji i shkronjave, dhe versionet e tij: FontBold, FontItalic, FontName, FontSize,
FontStrikethru, FontTransparent, FontUnderline, ForeColor; Height (Lartsia);
HelpContextID (Fajlli pr ndihm i lidhur me formn, ndihma n kontekst); Left
(skaji i majt) distanca e skajit t majt n krahasim me objektin barts
(kontejnerin); LinkMode (Lloji i lidhjes DDE); MouseIcon (Ikona e forms s
minimizuar n modin e ekzekutimit); Name (Emri) emri i forms; MaxButton
(Tasti pr maksimizim t dritares) a shfaqet apo jo pr t n titullin e forms;
MinButton (Tasti pr Minimizim); RightToLeft (Nga e djathta n t majt) tregon
drejtimin e shfaqjes s tekstit; ScaleHeight (Shkalla e lartsis) prcakton numrin
e njsive pr matjen vertikale t brendis s objektit dhe t ngjashme me t:
ScaleTop (Shkalla pr skajin e eprm); ScaleWidth (Shkalla pr gjersi);
ScaleMode (Modi i shkalls) prcakton njsin matse; Top (Maja-skaji i eprm)
tregon distancn prej skajit t eprm t objektit barts; Visible (Shihet, i
dukshm) prcakton a shihet forma n modin e ekzekutimit; Width (Gjersia)
prcakton gjersin e forms.
Lista e plot e tipareve t forms dhe t gjitha kontrollave tjera, mund t shihet n
shtojcn n fund t librit.

Madhsia dhe njsia matse


Njsia matse e predefinuar n Visual Basic quhet Twips. Kjo sht njsia
standarde, pr lvizje, madhsi, urdhra pr vizatime grafik, etj. Nj Twip sht
sa 1/20 pjes e piks s shtypsit (printerit) (1 Cm = 576 Twips ose 1 Inch = 1440
31

Avni Rexhepi - Visual Basic

Projekti i par

Twips). Kjo njsi prcakton madhsin e objektit kur ai t shtypet n printer.


Distancat aktuale fizike n ekran ndryshojn varsisht nga madhsia e ekranit.
Pr t ndryshuar njsin matse n form, duhet ndryshuar tiparin ScaleMode. Pr
njsin Twip zgjedhet 1, kurse pr centimetra 7. Ndryshimi i njsis matse mund
t bhet n modin e dizajnimit (Design Time) ose n modin e ekzekutimit (Run
Time).
Shkalla matse dhe orientimi n form bhet duke u
bazuar n sistemin koordinativ, t vendosur prej skajit
t majt t eprm q ka koordinatn (x,y) = (0,0) dhe
duke u rritur pr gjersi n ann e djath, gjegjsisht
pr lartsi te posht. Nse kemi nj form me gjersi 6
cm dhe lartsi 4 cm dhe njsi matse kemi zgjedhur
centimetrin, ather koordinata e piks s skajit t lart
majtas sht: (0,0), e skajit t lart djathtas (6,0), e
skajit t majt posht (0,4), e skajit t djatht posht
(6,4) dhe e qendrs (3,2).

Fig. 1.22 Scale Mode

Vendosja e kontrollave n form


Meqense forma ishte objekti ku ndodh do gj, fillojm me vendosjen e
kontrollave n form, prej kutis s veglave ToolBox.
Treguesi i mausit (kursori) normalisht ka formn e shigjets dhe n kt rast n
kutin e veglave (ToolBox) sht aktive vegla Pointer. Pr t zgjedhur nj objekt
tjetr, klikojm nj her n t dhe kontrolla prkatse zgjedhet. Kontrolla e
zgjedhur dallohet me ngjyr m t qelt t prapavis s saj. Kur sht e zgjedhur
ndonj kontroll tjetr, prveq pointerit, kur lvizim treguesin e mausit npr
siprfaqe t ekranit dhe n form, ai ka formn e plusit.
Pr t vendosur kontrolln n form ekzistojn dy mundsi:
- N kutin e veglave klikojm dy her kontrolln dhe ajo automatikisht
vendoset n qendr t forms dhe ka madhsin standarde (t predefinuar
prej Visual Basic-ut), ose
- Klikojm nj her kontrolln pr ta zgjedhur dhe pastaj kalojm n form,
n pozitn e dshiruar shtypim dhe mbajm shtypur tastin e majt t mausit
dhe e zvarrisim treguesin, pr t caktuar madhsin e kontrolls n form.
32

Avni Rexhepi - Visual Basic

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).

Fig. 1.23 Vendosja e kontrolls n form

N form paraqitet kontrolla me


emrin e predefinuar (standard)
Label1 dhe ajo sht objekti i
zgjedhur kurse treguesi kthehet n
gjendjen e mparshme, me
kontrolln aktive Pointer. Nse
insertohet edhe nj label, ajo do t
paraqitet me emrin Label2, e
kshtu me rradh. Objekti i
zgjedhur tregohet me pikat e
zgjedhjes, katrort e vegjl, n
knde dhe n mes t vijave ansore
t objektit.

Edhe pr ndryshimin e madhsis s kontrolls s zgjedhur, mund t veprojm


direkt me maus ose duke br ndryshimin e tipareve prkatse, pr madhsi: Width
(gjersia) dhe Height (lartsia) kurse pr pozit: Top (Skaji i eprm) dhe Left (Skaji
i majt).

Zgjedhja e kontrolls (Objektit)


Zgjedhja e kontrolls ose objektit bhet duke pozicionuar treguesin (kursorin) mbi
t (n t) dhe duke klikuar tastin e majt t mausit. Zgjedhja e kontrolls mund t
bhet edhe nse n dritaren e tipareve, hapim listn e emrave t kontrollave aktuale
dhe zgjedhim emrin e kontrolls prkatse. N kt rast n dritaren Properties
paraqitet lista e tipareve t kontrolls s zgjedhur dhe n dritaren punuese zgjedhet
kontrolla prkatse.

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

Avni Rexhepi - Visual Basic

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.

Ndryshimet n modin e dizajnit


Pas ndrprerjes s ekzekutimit, do t kthehemi n modin e dizajnimit. Tani do t
bjm disa ndryshime n program. Pr t br ndryshime n dizajnin e forms,
klikojm diku n hapsirn e saj dhe zgjedhet forma. N dritaren Properties, n
fushn pr emrin e objektit paraqitet emri Form1 Form dhe lista e tipareve t
forms. S pari do t ndryshojm titullin e dritares s forms, ashtu q kur t
ekzekutohet programi, n titull t forms t paraqitet teksti: Forma e par. Pr kt
qllim duhet ndryshuar tiparin Caption (Titulli). Momentalisht velra sht Form1.
Klikojm me tastin e majt brenda fushs dhe kursori vendoset n t. Largojm
emrin e vjetr dhe shkruajm tekstin: Forma e par. Edhe gjat shkruarjes s
titullit, mund t vreni se titulli i dritares s forms ndryshohet automatikisht.
34

Avni Rexhepi - Visual Basic

Projekti i par

Pr t ndryshuar ngjyrn e prapavis, ndryshojm tiparin BackColor (Ngjyra e


prapavise). Momentalisht aty shihet vlera: &H8000000F&. (Fig. 1.25). Konstantet
e ngjyrave jan vlera t predefinuara t Visual Basic-ut. Lista e konstantave t
ngjyrave, mund t shihet n shtojcn n fund t librit. Kur pozicionohet kursori
brenda fushs, aktivizohet tasti n skajin e djatht pr hapjen e lists s ngjyrave.

Fig. 1.25 Ngjyra e


prapavis

Ngjyrat jan t ndara n dy kategori: Palette (Paleta e


ngjyrave) ku shihet paleta e ngjyrave standarde, e
njjt me paletn e ngjyrave q mund t hapet prej
menys: View-Color Palette dhe System (Sistemore),
ku shihet lista e ngjyrave standarde t pjesve t
dritares. N paletn e ngjyrave zgjedhim nuancn e
par t ngjyrs s verdh n katrorin e katrt n
rreshtin e par. Vlera e fushs bhet: &H00C0FFFF&
dhe prapavia e forms automatikisht merr kt ngjyr.
Pr t mos lejuar ndryshimin e madhsis s dritares,
prcaktojm tiparin BorderStyle (Stili i kufirit), i cili
momentalisht sht 2-Sizeable (madhsia e
ndryshueshme). N listn q hapet zgjedhim
1-FixedSingle (Madhsi fikse).

N vazhdim do t largojm tastet pr minimizim dhe pr maksimizim t dritares s


forms, duke dhen vlern False (False, jo e vrtet) pr tiparet: MinButton dhe
MaxButton, t cilat paraprakisht kishin vlerat True (E sakt, E vrtet).
Ndryshojm edhe tiparin ScaleMode pr caktimin e njsis matse, nga 1-Twip n
7-Centimeter.
Pastaj, zgjedhim kontrolln Label1 dhe gjithashtu ndryshojm tiparet e saj duke ua
dhn vlerat vijuese:
- Alignment (Rreshtimi i tekstit): nga 1-LeftJustify (rreshtimi majtas) n 2-Center (i
qendrzuar);
- BackStyle (Stili i prapavis) nga 1-Opaque (e patejdukshme) n 0-Transparent
(transparente, e tejdukshme);
- Caption (Titulli) nga Label1 n: Msojm Visual Basic;
- Font nga MsSansSerif-8-Regular, n Arial-14-Bold. Pr t hapur dritaren Font,
kur pozicionohemi n fushn Font, n skaj paraqitet tasti me tri pika, q sht
shenj pr fushat pr t cilat hapet dialog boksi prkats pr ndryshime. Kur
ndryshohet fonti, ather n dritaren e forms, vrehet se nuk shihet teksti i plot
pr etiketn (Label1) pr arsye se madhsia e saj sht e vogl, prandaj duhet
ndryshuar madhsin.
35

Avni Rexhepi - Visual Basic

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).

Start) dhe tani n ekran kemi formn:

Si shihet, dritarja ka marr ngjyrn


e prcaktuar t prapavis, titulli ka
ndryshuar, mungojn tastet pr
minimizim dhe pr maksimizim,
kemi vetm tastin Close pr
mbyllje t dritares. Nse tentoni t
ndryshoni madhsin e dritares, nuk
ka mundsi, pasi q edhe kur
pozicionoheni n vijat kufitare,
forma e treguesit (kursorit) nuk
ndryshon si zakonisht n shigjet
dykahshe.
Fig. 1.26 Forma e par
Sa i prket kontrolls Label1, shihet teksti i saj (Caption) Msojm Visual Basic,
me pozitn, madhsin dhe fontin e prcaktuar. Ngjyra e prapavis sht
transparente (e tejdukshme). Sikur t mos e bnim prapavin e kontrolls Label
transparente, do t shihej edhe prapavia e saj. Ndrprejm ekzekutimin dhe
kthehemi n modin e dizajnimit.

36

Avni Rexhepi - Visual Basic

Projekti i par

Ndryshimet n modin e ekzekutimit Editori i kodit


Pr t shpjeguar ndryshimet n modin e ekzekutimit, do t bjm ndryshimet q i
bm n modin e dizajnimit. Fillojm nj projekt t ri, duke zgjedhur n menyn
File New project (Projekt i ri). Me kt rast do t hapet dritarja pr dialog e cila
na pyet pr ruajtjen e fajllave me t cilt punuam: projektin dhe formn : Save
changes to the following files? Project1? Form1?. Prgjigjemi me No (Jo) dhe n
dialogun vijues zgjedhim llojin e projektit Standard EXE, pr projektin e ri.
Hapet dritarja e forms Form1. Shtojm n t nj Label- (Label1) dhe kemi
gjendjen fillestare, si n rastin e par, para ndryshimeve t bra n modin e
dizajnimit.
Ndryshimet gjat modit t ekzekutimit (Run-Time), bhen prmes ndryshimeve n
kodin e programit. Pr t br ndryshimet n kodin e ekzekutimit, duhet t
aktivizojm dritaren e kodit t programit. Pr t hapur dritaren e kodit, zgjehim
formn (duke klikuar kudo n siprfaqen e saj, jasht Label1). Zgjehim n meny:
View - Code ose n dritaren Project Explorer, n shiritin e veglave t saj klikojm
tastin View Code. N ekran do t hapet dritarja e Editorit t kodit (Fig. 1.27).

Fig. 1.27 Dritarja e kodit

Titulli i dritares prmban emrin


Project1-Form1(Code), q tregon se
sht dritarja e kodit t projektit
dhe forms prkatse. Dritarja ka
n pjesn e eprme, dy fusha:
majtas - Objects (Objektet) ku
momentalisht ndodhet teksti
General (E prgjithshme) dhe
djathtas Procedure (procedurat)
ku momentalisth shkruan
Declarations (Deklarimet).

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

Kjo sht struktura standarde e procedurave t ngjarjeve (sintaksa e prgjithshme).


Prmban kreun, ku paraqitet tipi i procedurs, emri i objektit dhe emri i ngjarjes
prkatse i lidhur me nnviz (vizlidhse), si dhe Fundi i procedurs i paraqitur
me End Sub. Pr t lehtsuar shkruarjen e kodit, Visual Basic-u automatikisht
krijon strukturn e procedurs. N pjesn pr procedurat, do t shpjegohen detajet
tjera pr procedurat.
37

Avni Rexhepi - Visual Basic

Projekti i par

Nse hapim listn, ather paraqitet lista e t gjitha procedurave t mundshme pr


Formn (Fig. 1.28).

Fig. 1.28 Lista e


procedurave t Forms

N list, mund t zgjedhet ngjarja pr t ciln do t


dshironi t reagoj programi dhe t ekzektoj ndonj
komand t caktuar. Pr fillim, do t mbetemi te ngjarja
Load, ka do t thot, se me rastin e hapjes (paraqitjes
s forms), do t ekzekutohet kodi prkats. Vendosim
kursorin n pjesn mes kreut dhe fundit t procedurs
dhe mes tyre mund t shkruajm urdhrat, t cilt do t
ekzekutohen me kt rast. Dritarja e kodit, do t hapet
automatikisht, nse klikoni dy her n siprfaqen e
forms ose t ndonj kontrolle t caktuar. N cilin
objekt t klikohet dy her, pr t hapet dritarja e kodit
dhe automatikisht prshkruhet emri i kontrolls dhe
ngjarja pr t.

Pr rastin ton, nse n siprfaqen e forms klikojm dy her tastin e mausit,


automatikisht hapet dritarja e kodit dhe paraqitet pjesa e kodit pr ngjarjen Load.
Editori i kodit t Visual Basicut funksionon me rregullat standarde t editorve t
tekstit. Mund t bhet lvizja npr tekst, kopjimi, zhvendosja, etj.
Gjat shkruarjes s kodit, Visual Basic-u ofron ndihm n forma t ndryshme, pr
t lehtsuar shkruarjen e kodit dhe pr t evituar gabimet e mundshme gjat
shkruarjes s kodit. Fjalt e rezervuara, t cilat jan komanda t VB ose emra t
kontrollave dhe objekteve n program, automatikisht marrin ngjyrn e kaltrt t
mbyllt, pr tu dalluar prej pjess tjetr t kodit. Komentet ngjyrosen me ngjyr t
gjelbrt, kurse gabimet e paraqitura gjat detektimit, ngjyrosen me ngjyr t kuqe.
Si lehtsim pr shkruarjen e kodit, mund t aktivizohet lista e tipareve dhe
metodave prej menys: Edit - List Properties/Methods (Ctrl+J) ose duka klikuar
me tastin e djatht t mausit dhe n menyn e kontekstit, zgjedhet List
Properties/Methods. Mnyra m e shpejt pra sht, duke shtypur kombinimin
Ctrl+J me tastier. Me kt rast n pozitn ku ka qen kursori, paraqitet lista e
tipareve dhe metodave t mundshme pr at pjes (Fig. 1.29).

38

Avni Rexhepi - Visual Basic

Projekti i par

Fig. 1.29 Lista e tipareve/metodave

Pr t gjetur m leht kontrolln


ose objektin e caktuar, kur lista
sht e hapur shtypen disa nga
shkronjat e para prmes tastiers
dhe kursori pozicionohet n list,
n tiparet ose metodat q prmbajn
ato shkronja. Pr shembull, kur
hapet lista, porsa t shtypet
shkronja L n tastier,
automatikisht kalohet n kontrolln
Label1.

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"

Rreshtimi i tekstit n Labl-


Stili i prapavis
Teksti i Label-s

39

Avni Rexhepi - Visual Basic

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

-------------------------------------------------Gjat shkruarjes s kodit, tipari pr objektin gjegjsisht kontrolln e caktuar


shkruhet n formn: kontrolla.tipari (kontrolla pik tipari).

Fig. 1.30 Tiparet e


kontrolls

Pr shembull gjat shkruarjes s kodit pr kontrolln


Label1, porsa t shtypim pikn pr qasje n tiparet e
kontrolls, automatikisht hapet lista e tipareve t
mundshme pr at kontroll (Fig. 1.30). Pr disa
tipare, edhe vlerat e mundshme, si p.sh., True ose
False, paraqiten posa t shtypet shenja = pr t
ndar vlern pr to. Edhe kjo paraqet nj lehtsim
gjat shkruarjes s kodit, sepse i qasemi m leht
tipareve t kontrolls dhe kemi parasysh cilat tipare
vlejn pr at kontroll.

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.

Plotsimi automatik i fjalve


Pr t shpejtuar shkruarjen e kodit, mund t aktivizojm edhe komandn Complete
Word (Kompleto fjaln), e cila plotson pjesn e mbetur t fjals, kur t jen
shkruar disa nga shkronjat e para t fjals, me t cilat Visual Basic-u do t ket
mundsi t identifikoj dhe t kompletoj fjaln.
Komanda Complete Word mund t aktivizohet prmes menys: EditComplete Word (Ctrl+Space).
Kur shtypet (ekzekutohet) komanda, nse numri i shkronjave t dhna nuk mjafton
pr identifikimin e fjals unike, ather paraqitet lista e tipareve/metodave, e
pozicionuar n fjaln e par t grupit t fjalve q kan shkronjat e para t njjta
me shkronjat e shtypura deri n at moment.

40

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Procedurat

veprimi t shfrytzuesit, si pr shembull shtypja n tastier, n maus ose klikimi n


ndonj kontroll. Kto ngjarje njihen si ngjarje t inicuara prej shfrytzuesit (User
iniciated events) dhe jan ngjarjet pr t cilat do t shkruhet kodi m s shpeshti.
Kur ndonj objekt n Visual Basic kupton se ka ndodhur nj ngjarje, ai
automatikisht thrret procedurn e ngjarjes duke prdorur emrin q i prgjigjet
ngjarjes prkatse. Pasi emri krijon lidhje mes objektit dhe kodit, procedurat e
ngjarjeve thuhet se jan t lidhura (bashkangjitura) me format dhe kontrollat.
- Procedura e ngjarjes pr kontroll kombinon emrin aktual t kontrolls (t
specifikuar n tiparin Name (Emri), nnvizn ( _ ) dhe emrin e ngjarjes. Pr
shembull, nse dshironi q t emrtoni nj tast komandues me emrin Fillo dhe
dshironi t definoni procedurn e ngjarjes kur ai klikohet, ather kemi
procedurn Fillo_Click.
- Procedura e ngjarjes s forms kombinon fjaln Form, nj nnviz dhe emrin
e ngjarjes. Nse dshironi q forma t thrras nj procedur t ngjarjse kur t
klikohet, prdoret procedura: Form_Click. Ngjashm me kontrollat, format
kan emra unikat, por ata nuk prdoren n emrat e procedurave t ngjarjeve.
Nse prdoret forma e tipit MDI (Multiple Document Interface Interfejs me
dokumente t shumfishta) ather procedura e ngjarjes kombinon fjaln
MDIForm, nnvizn dhe emrin e ngjarjes, si n rastin MDIForm_Load().
T gjitha procedurat e ngjarjeve prdorin sintaksn e prgjitshme t njjt:
Sintaksa pr ngjarje t kontrolls (Syntax for a control event)
Private Sub emrikontrolls_ngjarja(argumentet )
urdhrat
End Sub
Sintaksa pr ngjarje t forms (Syntax for a form event)
Private Sub Form_ ngjarja(argumentet )
urdhrat
End Sub

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

Avni Rexhepi - Visual Basic

Procedurat

dhe t bashkangjes kontrolln me procedurn prkatse. Kur emri i proceduras


nuk prshtatet me emrin e kontrolls, ajo shndrrohet n procedur t prgjithshme.
N tabeln vijuese sht paraqitur lista e ngjarjeve m t shpeshta.
Ngjarja

ka ndodh, veprimi

Change
Click
DblClick
DragDrop
DragOver
GotFocus
KeyDown
KeyPress
KeyUp
Event
LostFocus
MouseDown
MouseMove
MouseUp

Shfrytzuesi ndryshon tekstin n Text box ose Combo Box


Shfrytzuesi klikon tastin e majt t mausit n ndonj objekt.
Shfrytzuesi klikon dy her (Double-Click) tastin e mausit n ndonj objekt.
Shfrytzuesi zvarrit objektin n ndonj lokacion tjetr.
Shfrytzuesi zvarrit objektin prmbi ndonj objekt tjetr
Objekti merr fokusin (zgjedhet, selektorhet, kursori vjen mbrenda tij)
Shfrytzuesi shtyp tastin n tastier deri sa objekti ka fokusin.
Shfrytzuesi shtyp dhe liron tastin n tastier deri sa objekti ka fokusin.
Shfrytzuesi liron tastin e tastiers deri sa objekti ka fokusin.
Ngjarja, ndodhia.
Objekti humb fokusin (zgjedhet ndonj objekt tjetr, kursori largohet prej tij)
Shfrytzuesi shtyp cilindo tast t mausit deri sa treguesi sht mbi ndonj objekt.
Shfrytzuesi lviz treguesin e mausit mbi ndonj objekt.
Shfrytzuesi liron tastin e mausit deri sa treguesi i mausit ndodhet mbi ndonj objekt.

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

Avni Rexhepi - Visual Basic

Procedurat

Tr kodi ekzekutiv duhet t jet brenda procedurs. Nuk mund t definohet


procedura Sub brenda ndonj procedure tjetr Sub, apo brenda ndonj funksioni.

Thirrja e procedurs prej modulit tjetr


Procedurat Public mund t thirren prej cilsdo pjes t projektit. Mund t paraqitet
nevoja e specifikimit t modulit q e prmban procedurn q thirret. Kjo varet prej
asaj se a sht procedura n form, n klas apo n modul standard.
- Procedurat n form - t gjitha thirrjet jasht modulit t forms duhet t tregojn
n modulin e forms q prmban procedurn. Nse procedura me emrin ProcABC
ndodhet n modulin e forms t quajtur Form1, ather ajo mund t thirret duke
prdorur urdhrin: Call Form1.ProcABC(arguments)
-Procedurat n Class Module (modul t klass) - Sikur thirrja e procedurs n
form, thirrja e procedurs n modul t klass krkon q thirrja t bhet duke e
kualifikuar prmes variabls q tregon n nj instanc t klass. Pr shembull,
DemoClass sht nj instanc e klass Class1:
Dim DemoClass as New Class1
DemoClass.ProcABC

Megjithat, pr dallim prej forms, emri i klass nuk mund t prdoret si


kualifikator kur ti referohemi nj instance t klass. Instanca e klass duhet s pari
t deklarohet si variabl (n kt rast, DemoClass) dhe ti referohemi prmes emrit
t variabls.
Nse procedura ka emr unik, nuk ka nevoj t prmbahet emri i modulit n thirrje.
Thirrja prbrenda ose jasht modulit do ti referohet ksaj procedure unike.
Procedura sht unike nse paraqitet vetm n nj vend.
Nse dy ose m shum module prmbajn procedur me emr t njjt, mund t
nevojitet q t bhet kualifikimi me emrin e modulit. Thirrja n procedurn e
zakonshme prej modulit t njjt ekzekuton procedurn n at modul. Pr
shembull, nse procedura me emrin ProcAS ndodhet n dy module: Module1 dhe
Module2. Thirrja e ProcAS prej modulit Module2 do t ekzekutoj procedurn q
ndodhet n Module2. Nse prej modulit Module2 duhet thirrur procedurn ProcAS
q ndodhet n Module1, ather duhet prdorur formn:
Module1.ProcAS(argumentet)

45

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Procedurat

shkronja t vogla dhe menjher n vazhdim, pa ndonj hapsir, emri prshkrues i


kontrolls q fillon me shkronj t madh (pr tu dalluar m leht prej shkurtess).
Pr shembull, nse keni ndonj label ku shkruhet emri ather ajo do t emrtohet:
lblEmri. Komanda q mbyll dritaren: cmdMbyllja, e kshu me rradh. N tabeln
vijuese jan dhn shkurtesat e disa kontrollave t brendshme t Visual Basicut, t
cilat prdoren m s shpeshti.
Kontrolla
Label
Frame
CheckBox
ComboBox
HscrollBar
Timer
DirListBox
Shape
Image
OLE Container Control

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

Insertimi i procedurs prmes menys


Procedurat mund t insertohen n dritaren e kodit prmes menys: Tools-Add
Procedure... (Shto procedur...), me rast n ekran do t paraqitet dritarja Add
Procedure (Fig. 1.32).
N fushn Name (Emri) shkruajm
emrin e procedurs, kurse n fushat
e opcioneve: Type (Tipi) dhe Scope
(domeni) zgjedhim tipin e
procedurs dhe domenin e saj. Nse
duhet deklaruar edhe variablat
statike, ather zgjedhet opcioni
All Local variables as Statics (T
gjitha variablat lokale si Statike).
Kur t shtypet OK, n dritaren e
kodit automatikisht do t krijohet
struktura e procedurs, me emrin e
saj , rreshti i zbraz n med dhe n
fund End Sub.

Fig. 1.32 Insertimi i procedurs


Pjesn tjetr t kodit e shtypim mes ktyre dy rreshtave.

47

Avni Rexhepi - Visual Basic

Procedurat

Insertimi i shpejt prmes tastaturs, bhet duke shtypur tastet: ALT+T+P, me


rast prsri hapet dritarja Add Procedure.

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

Avni Rexhepi - Visual Basic

Procedurat

ekzekutohen n Internet. Visual Basic-u mund t prdoret prej shfrytzuesve edhe pr t


krijuar komponente dhe kontrolla ActiveX t tyre.

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.

Fig. 1.33 - Open Project

Nse dshirojm t hapim ndonj


prej projekteve t cilat i kemi hapur
koht e fundit (gj q ndodh
zakonisht), pr t hapur m shpejt
projektet e prdorura s fundit, n
dialogun Open (Fig. 1.33),
zgjedhim faqen Recent (i fundit).
N kt faqe paraqitet lista e
projekteve, e cila i radhit projektet
prej projektit t fundit e prpara.
Pra i pari n list sht projekti i
fundit, i dyti projekti i parafundit, e
kshtu me radh.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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.

Le t fillojm nj projekt t ri StandardEXE. Projekti i ri mund t startohet duke


shtypur njkohsisht ALT+F+N dhe duke klikuar dy her ikonn StandardEXE.
Insetrojm n form labelat dhe tekst bokset si n Fig. 1.34.

51

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

N modin e dizajnimit forma dhe


kontrollat e vendosura n t duken
si n figur. Zgjedhim kontrollat
dhe n dritaren e tipareve
Properties ua prcaktojm tiparet
kontrollave prkatse. S pari do t
emrtojm kontrollat duke ua
prcaktuar tiparin Name:
lblParaqitja, lblEmri, lblMbiemri,
lblNjeRresht, lblShumeRreshta pr
labelat dhe: txtEmri, txtMbiemri,
txtNjeRresht, txtShumeRreshta, pr
teks bokset.

Fig. 1.34 Labelat dhe Tekst bokset

Pr formn prcaktojm tiparin ScaleMode 7 Centimeters dhe pastaj rregullojm


tiparet vijuese:
Label-at:
Name
lblParaqitja
lblEmri
lblMbiemri
lblNjeRresht
lblShumeRreshta

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.

Kontrollat insertohen dhe zhvendosen n pozitat e caktuara brenda forms.


Zhvendosja bhet duke i zgjedhur dhe duke i zvarritur prmes mausit ose duke
zgjedhur kontrolln dhe pastaj mbajm shtypur tastin Ctrl n tastier, dhe duke
shtypur shigjetn n tastier, kontrolla zhvendoset hap pas hapi nga nj njsi t
rrjets n drejtimin prkats. Gjithashtu ndryshojm madhsit e tyre sipas dshirs
dhe sipas nevojs. Pr t br shprndarjen hapsinore simetrike dhe pr t caktuar
52

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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.

Fig. 1.35 Format Editor

Pr t rreshtuar kontrollat n drejtim t


caktuar me nj kontroll tjetr, ato zgjedhen
dhe prmes menys Format-Align ose
prmes komands prkatse n shiritin e
veglave, harmonizohen: Lefts (skajet e
majta); Centers (Qendrat); Rights (Ant e
djathta); Tops (Skajet e eprme); Middles
(Meset); Bottoms (Skajet e poshtme) ose To
Grid (me rrjetn e forms).
Pr ti pozicionuar kontrollat n qendr t
forms, zgjedhim: Format-Center in Form:
Horizontally; Vertically.

Pr ti barazuar madhsit e kontrollave zgjedhim n meny: Format-Make Same


Size (Bji me madhsi t njjt): Widths (gjersit); Heights (Lartsit) dhe Both
(T dyja). Prndryshe mundemi edhe ti zgjedhim kontrollat dhe pastaj, n dritaren
Properties prcaktojm madhsin dhe kshtu t gjitha kontrollat e zgjedhura
marrin at vler pr gjersi ose pr lartsi. Ngjashm mund t veprohet edhe pr
tiparet tjera.
Pr t rregulluar shprndarjen hapsinore horizontale dhe vertikale, prdoret
menya: Format-Horizontal Spacing/Vertical Spacing: Make Equal (Barazoji),
Increase (Rriti), Decrease (Zvogloi); Remove (Largoji distancat, kontrollat ngjiten
njra me tjetrn).
53

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Pr t caktuar radhn e paraqitjes, nse mbulojn pjesrisht njra tjetrn prdoren


opcionet e menys: Format-Send to Back (Drgoje prapa); Bring to Front (Sille n
front, prpara) ose tastet prkatse n shiritin e veglave.
Pr t fiksuar pozitn e kontrolls n form, ashtu q mos ti ndryshohet pozita
rastsisht, zgjedhim n meny: Format-Lock Controls ose tasti prkats n shiritin e
veglave Format Editor.
Pastaj ruajm programin, duke e emrtuar projektin dhe formn dhe e ekzekutojm.
N ekran do t paraqitet dritarja e forms dhe kontrollat prkatse (Fig. 1.36).
Kursori s pari vendoset n fushn Emri. Lvizja npr fusha bhet prmes tastit
Tab n tastier. Sa her shypet Tab, kursori kalon n kontrolln e ardhshme, kurse
me Shift+Tab kthehet n fushn e prparshme. Rradha e lvizjes prcaktohet me
tiparin TabIndex. Vetm fushat pr t cilat tipari TabStop sht True mund t
pranojn kursorin. Fusha n t ciln ndodhet kursori thuhet se momentalisht ka
fokusin.

Fig. 1.36 - Forma n modin e ekzekutimit

N fushat e tipit TextBox mund t


shtypim tekstet sipas dshirs. N
fushn pr tekst n nj rresht kur
shkruajm tekste t gjata, teksti
zhvendoset majtas. N fushn pr
tekst n shum rreshta teksti
mbshtillet dhe zhvendoset n
rresht t ri, e nse bhen shum
rreshta, ather rreshtat zhvendosen
te lart. Nse dshirojm mund t
kufizojm numrin e karaktereve q
mund t shkruhen n tekst boks.

Pr kt qllim mund t prcaktohet tipari MaxLength. Vlera e tij e predefinuar


sht zero dhe nnkupton se nuk ka kufizim n gjatsi. Nse p.sh., pr fushn emri
prcaktojm tiparin MaxLength n 8, ather n fushn emri mund t shkruhen
vetm emrat me gjatsi m t vogl ose barazi me 8, pra maksimalisht 8 shkronja.

Fokusi i kontrollave dhe renditja TabIndex dhe TabStop


Prmendm m hert se kontrolla ka fokusin, kur kursori ndodhet brenda saj. Pra
kontrolla q momentalisht sht aktive, ajo ka fokusin. Kjo vlen edhe pr dritaret
n Windows. Vetm njra dritare mund t ket fokusin dhe t jet aktive n nj
moment. Ajo dritare q sht aktive, zakonisht ka titullin e dritares me ngjyr t
kaltrt (por ngjyra mund t ndryshohet). N nj moment vetm nj kontroll mund
54

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

t ket fokusin. Kjo sht me rndsi, sepse fokusi prcakton se ka do t


aktivizoj shtypja e ardhshme n tastier, e tastit Enter, etj., sepse kontrolla q ka
fokusin pranon veprimet e shfrytzuesit prej tastiers dhe shkakton reagimet e
caktuara, gjegjsisht inicon procedurat prkatse t ngjarjeve. Kur hapet dritarja e
forms, fokusin e ka kontrolla me numr m t vogl t tiparit TabIndex. Ashtu si
insertohen kontrollat n form, me t njjtn rradh Visual Basicu ua ndan numrin
rendor pr tiparin TabIndex. Sipas nevojs, mund t ndryshojm tiparin TabIndex,
pr t ndryshuar rradhn e fokusit pr kontrollat n form. Numrimi fillon prej
zeros (0). Prmes tastiers ose prmes mausit prcjellim fokusin te kontrolla e
caktuar. Disa kontrolla kan mundsi t pranojn fokusin e disa jo (p.sh kontrolla
Label). Pr kontrollat q mund t pranojn fokusin, mund tua prcaktojm tiparin
TabStop n False, ashtu q t mos e pranojn fokusin.
N modin e ekzekutimit, fokusi mund ti kalohet kontrolls s caktuar prmes
kodit, duke prdorur urdhrin SetFocus. Pr shum kontrolla kemi edhe ngjarjet
GotFocus (Merr Fokusin) dhe LostFocus (Humbet Fokusin) pr t cilat mund t
inicojm veprimet e caktuara. Pra duke definuar kodin pr kto ngjarja, mund t
bjm ndryshime t caktuara ose t inicojm veprime t caktuara.
Pr shembull, le t shkruajm kodin pr kontrollat txtEmri dhe txtMbiemri pr
ngjarjet GotFocus( ) dhe LostFocus( ) si n Fig. 1.37.
Dshirojm q kur t vendoset kursori n fush, pra kur kontrolla t merr fokusin,
ngjyra e prapavis t bhet e verdh, ngjyra e tekstit e kuqe dhe stili Bold
(shkronjat e theksuara). Kur t largohet fokusi, kthehet gjendja e mparshme,
ngjyra e prapavis e bardh, e tekstit e zez dhe largojm stilin Bold.
Aktivizojm dritaren e kodit dhe n n fushn Object t saj zgjedhim kontrolln
txtEmri, kurse n fushn djathtas Procedure zgjedhim procedurn e ngjarjes
GotFocus( ). N dritaren e kodit do t shtohen automatikisht rreshtat:
Private Sub txtEmri_GotFocus( ) dhe End Sub. Vendosim kursorin mes atyre dy
rreshtave dhe fillojm shkruarjen e kodit.
Pr t shkruar kodin m shpejt dhe m leht prdorim listn e tipareve dhe
metodave dhe plotsimin automatik t fjalve. Definojm ngjyrn e prapavis s
kontrolls: txtEmri.BackColor=vbYellow. Gjat shkruarjes s kodit prdorim
sintaksn: vbNgjyra (ku Ngjyra sht fjala angleze e ngjyrs prkatse: White (e
bardh), Black (e zez), Red (e kuqe), Yellow (e verdh), Blue (e kaltrt), Green (e
gjelbrt), etj.). Pastaj definojm komandn pr ngjyrn e shkronjave dhe stilin Bold
t tekstit pr kontrolln txtEmri. Tekstin e komandave e zhvendosim djathtas n
krahasim me tekstin e kreut dhe fundit t procedurs, vetm pr shtje estetike,
pr t lehtsuar leximin dhe prcjelljen e kodit. Kjo nuk ka ndikim n rrjedhn e
programit, pra rezultati i njjt fitohet edhe kur tr kodi shkruhet n skajin e
majt, pa trheqje, por ather leximi dhe prcjellja e kodit sht m e vshtir.

55

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Fig. 1.37 Kodi pr fokusin e kontrollave


N vazhdim, pr t shkruar kodin m shpejt, fillojm procedurn e ngjarjes
LostFocus, duke e zgjedhur n listn e procedurave dhe prsri automatikisht
paraqitet struktura pr t: Private Sub txtEmri_LostFocus( ) dhe End Sub. Zgjedhim tre
rreshtat e kodit q i shkruajtm pr ngjarjen GotFocus dhe i kopjojm (Edit Copy)
e pastaj i bartim n pjesn e kodit pr ngjarjen LostFocus (Edit Paste). Pastaj i
bjm ndryshimet e nevojshme pr ngjyrn dhe stilin Bold.
Ngjashm, krijojm strukturn pr kontrolln txtMbiemri pr ngjarjen GotFocus
dhe prsri me Edit-Paste thrrasim prej memorjes pjesn e kodit dhe vetm i
bjm ndryshimet e pjes txtEmri n txtMbiEmri. Edhe nse i shkruajm shkronjat
me madhsi t ndryshm, Visual Basic-u automatikisht e bn ndryshimin e
madhsis s shkronjave n formn si e kemi definuar emrin e kontrolls. Kjo
mund t jet edhe nj shenj se kemi prdorur emrin e rregullt pr kontrolln
prkatse. Pra mjafton t vendosim kursorin para shkronj E n fjaln txtEmri, aty

56

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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.

Tasti Komandues kontrolla CommandButton


CommandButton (Tasti komandues) prdoret si kontroll e cila inicon,
ndrpren ose prfundon nj proces. Tasti komandues aktivizohet prmes
mausit, ose prmes tastiers, kur e ka fokusin.
Pr t paraqitur tekstin n tastin komandues, prcaktohet tipari i tij Caption.
Shfrytzuesi gjithmon mund t zgjedh tastin komandues duke klikuar n t. Pr
t lejuar zgjedhjen e tastit komandues prmes ENTER, duhet prcaktuar tiparin e tij
Default n True. Pr t lejuar lejuar zgjedhjen e tastit prmes ESC (tasti ESC n
tastier) duhet prcaktuar tiparin Cancel n True.
Kthehemi n projektin n t cilin punuam n pjesn paraprake dhe n modin e
dizajnit, insertojm nj tast komandues n form (Fig. 1.38). Funksioni i tij do t
jet q t pastroj prmbajtjen e t gjitha fushave tekstuale (Tekst bokseve) n
form. I prcaktojm tiparet e tij si vijon: Name cmdPastro; Caption Pastro
fushat, Default True.
Klikojm dy her tastin komandues
dhe hapet dritarja e kodit, pr
ngjarjen Click:
cmdPastro_Click( ).

Shkruajm kodin vijues:


Private Sub cmdPastro_Click()
txtEmri.Text = ""
txtMbiemri.Text = ""
txtNjeRresht.Text = ""
txtShumeRreshta.Text = ""
txtEmri.SetFocus
End Sub

Fig. 1.38 Tasti komandues n form

Tani, tasti komandues sht i


gatshm pr prdorim. Pra kemi
definuar tiparet e tij n modin e
dizajnimit dhe kodin pr
funksionim 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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

ua ndar vlern e zbrazt me (Pra thonjzat e hapura dhe t mbyllura pa distanc


mes veti). Kjo ka t bj m tipin e t dhnave pr tekst, gj q do t shpjegohet n
pjesn pr llojet e t dhnave q prdoren n Visual Basic. Meqense pr tastin
komandues kemi definuar edhe tiparin Default si True, ather n do moment
mund t shtypim ENTER n tastier dhe t aktivizojm tastin komandues.
Tiparet e zakonshme pr tastin komandues jan prshkruar n tabeln vijuese.
Tipari

Prshkrimi

BackColor

Prcakton ngjyrn e prapavis s tastit komandues. Para se t paraqitet


ngjyra e prapavis, duhet ndryshuar tiparin Style nga )-Standard n 1Graphical.
Prcakton a e pranon tasti komandues ngjarjen Click nse shfrytzuesi
shtyp tastin Esc n tastier.
Mban tekstin q paraqitet n tastin komandues.
Prcakton nse tasti komandues prgjigjet n shtypjen e tastit Enter
edhe nse ndonj kontroll tjetr ka fokusin.
Prcakton a sht aktiv tasti komandues. Shpeshher gjat kohs s
ekzekutimit, prmes kodit, ndryshohet tipari Enabled n False, kur tasti
komandues nuk nevojitet m.
Hap dialogun Font pr prcaktimin e fontit t tiparit caption.
Cakton lartsin e tastit komandues.
Prcakton largsin e skajit t majt t tastit komandues prej skajit t
majt t forms.
Prcakton formn e kursorit kur shfrytzuesi lviz mausin mbi tastin
komandues.
Mban emrin e fotografis s ikons grafike e cila paraqitet n tastin
komandues, prderisa tipari Style sht caktuar si 1-Graphical.
Prcakton pamjen e tastit komandues, si tast standard i Windowsit (0Standard) apo me ngjyr dhe fotografi t mundshme (1-Graphical).
Prcakton rradhn e tastit komandues n rradhn e fokusit.
Prcakton a pranon tasti komandues fokusin.
Teksti q paraqitet si udhzim ose prshkrim gjat kohs s ekzekutimit,
kur kursori mbahet mbi tastin komandues.
Prcakton distancn e skajit t eprm t tastit prej skajit t eprm t
forms.
Prcakton a shihet (paraqitet) tasti komandues apo sht i fshehur prej
shfrytzuesve. Kontrolla e fshehur nuk mund t pranoj fokusin deri sa
kodi i ekzekutuar nuk ia ndryshon tiparin Visible n True.
Cakton gjersin e tastit komandues.

Cancel
Caption
Default
Enabled

Font
Height
Left
MousePointer
Picture
Style
TabIndex
TabStop
ToolTipText
Top
Visible

Width

N nj form mund t prdoren disa taste komanduese pr aktivizimin e


procedurave t ndryshme dhe kryerjen e veprimeve t ndryshme. Le t shohim nj
form t modifikuar t shembullit t fundit. Forma n modin e dizajnimit duket si
n fig. 1.39. N kt projekt do t prdorim dy forma.
Pr t shtuar nj form t re, n menyn project zgjedhim Add Form (Shto
form) ose n shiritin e veglave shtypim tastin Add Form.
58

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

N formn e dyt, Form2, (Fig. 1.39c) do t vendosim vetm dy taste komanduese,


njri pr kthim n formn e par dhe tjetri pr mbylljen e forms.

Fig. 1.39a Forma me disa tastet


komanduese

N formn e par Form1, prveq


fushave Emri dhe Mbiemri, kemi
edhe fushn e re Emri dhe Mbiemri,
n t ciln paraqitet emri i plot,
duke bashkuar emrin dhe mbiemrin
nga dy fushat e eprme. Kjo bhet,
duke shtypur tastin komandues
cmdPastro, t cilit ia kemi caktuar
tiparin Capiton: Emri i plot.
Gjithashtu kemi tastin komandues
cmdForma2 (Forma2), me t cilin
aktivizohet forma e dyt (Form2)
dhe tastin cmdDalja (Dalja >), me
t cilin mbyllet forma.

Kodi dhe tiparet e tyre jan si n vijim:

Fig. 1.39b Kodi pr formn Form1 dhe tastet komanduese n t


59

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

N formn 2 dyt, Form2 (Caption: Forma2), kemi vetm dy taste komanduese.


Tasti komandues cmdForm1
(Forma1) shrben pr t kaluar n
formn e par (Form1), kurse
cmdDalja (Dalja >) pr t mbyllur
formn. Kodi:
Private Sub cmdDalja2_Click()
Unload Form2
End Sub
Private Sub cmdForma1_Click()
Form1.Sho
End Sub

Fig. 1.39c Forma e dyt.


Kur forma paraqitet n dritare, kemi ngjarjen Load (ngarko, mbushe, n kuptim t
paraqitjes s forms, mbushjes s ekranit (memorjes) me t, ngarkimit t saj n
memorje dhe paraqitjes n ekran). Pr mbylljen e forms, kemi ngjarjen (metodn)
Unload (Shkarko, zbraze). Pr paraqitjen n ekran t forms, prdorim metodn
Show (EmriForms.Show). Pozitn e paraqitjes s formave n ekran (njra pran
tjetrs), e rregullojm n modin e dizajnimit, n dritaren Form Layout.

Fig. 1.39d ToolTipText teksti udhzues

Pr tekst boksin txtEmri, kemi kemi


definuar edhe tiparin ToolTipText
Plotsoni kt fush me emrin tuaj.
Ngjashm edhe pr txtMbiemri
kemi: ToolTipText Plotsoni kt
fush me mbiemrin tuaj. N modin e
ekzekutimit, kur mbahet kursori
mbi fushn Emri, paraqitet teksti
shpjegues ToolTipText, si n
Fig.1.39d. Ky tipar sht mir t
prdoret, kur nuk ka mundi q t
prshkruhet trsisht funksioni i
tastit ose fushs prmes Label-ave.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Komandimi prmes tastiers


Pr t aktivizuar tastin komandues prmes tastiers, n tiparin Caption t tastit
komandues, zgjedhet shkronja e cila do ta aktivizoj tastin komandues prmes
kombinimit ALT + Shkronja. Ajo shkrojn caktohet duke vendosur shenjn &
(Ampersand) para, si p.sh: &Emri i plot. Shkronja E n tastin komandues do t
paraqitet e nnvizuar (ngjashm me shkronjat e nnvizuara npr meny t
programeve). Kur t ekzekutohet programi, shtypja e ALT+E do t ket efekt t
njjt, si kliku prmes mausit n tastin komandues.

Zhvendosja e forms gjat kohs s ekzekutimit


Prmes dritares Form Layout zakonisht definohet pozita fillestare e forms n
ekran pr modin e ekzekutimit. Pozitn e forms n modin e ekzekutimit mund ta
ndryshojm edhe prmes kodit. N shembullin vijues, do t demonstrojm
zhvendosjen e forms n pozita t caktuara n ekran. N modin e dizajnimit, forma
do t duket si n Fig. 1.40. Insertojm n t katr taste komanduese, n pozitat e
skajshme t forms dhe duke ua ndryshuar tiparin Name (Emri) i emrtojm si:
cmdLartMajtas (Command1), cmdLartDjathtas (Command2), cmdPoshteMajtas
(Command3) dhe cmdPoshteDjathtas (Command4). N mes t forms insertojm
nj Label- dhe e emrtojm me emrin lblInfo (Label1).

Fig. 1.40 Forma n modin e dizajnimit

Tiparet tjera t kontrollave dhe t


forms do ti ndryshojm n modin
e ekzekutimit prmes kodit. Kodi i
programit prmban edhe
komentet, t cilat jepen vetm pr
t shpjeguar komandat e ndryshme
n kod, por nuk kan kurrfar
ndikimi n rrjedhn e programit. N
dritaren e kodit, komentet fillojn
me shenjn e apostrofit dhe duken
me ngjyr t gjelbrt. Teksti pas
apostrofit, deri n fund t rreshtit,
paraqet koment.

Komanda q vazhdon n dy rreshta t kodit, shnohet me nj hapsir dhe shenjn


( _ ), (nnviz, underline) e cila tregon se komanda vazhdon edhe n rreshtin
vijues.
---------------------------------------------------------------------------------------------------Private Sub Form_Load()
'Cakto tiparin Caption te tasteve komanduese

61

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

cmdLartMajtas.Caption = "Lart Majtas"


cmdLartDjathtas.Caption = "Lart Djathtas"
cmdPoshteMajtas.Caption = "Posht Majtas"
cmdPoshteDjathtas.Caption = "Posht Djathtas"
'Pastro tekstin fillestar te labeles Info
lblInfo.Caption = ""
'Cakto titullin e formes
frmLevize.Caption = "Levize Formn"
'Pjesa e kodit qe vendose formen ne qender
'te ekranit, vendose pozitn e katr tasteve komanduese
'dhe vendose madhsine dhe pozitn e labels
'Vendose formen ne qender te ekranit. Kjo behet
'duke caktuar skajin e majte te formes ne qender
'te ekranit, por duke zbritur gjysmen e gjeresise se formes.
'Gjithashtu, skaji i eperm i formes vendoset ne qender
'te ekranit, por duke zbritur gjysmen e lartesise se formes
frmLevize.Left = (Screen.Width - frmLevize.Width) / 2
frmLevize.Top = (Screen.Height - frmLevize.Height) / 2
'Cakto skajin e majte te tasteve komanduese.
'200 Twips per skajin e majte vendose hapsire mes
'skajit te formes dhe skajit te tastit.
'Skajet e tasteve te djathta jane caktuar duke zbritur gjeresine
'e tastit prej gjeresise se formes dhe duke zbritur 300
'per te vendosur hapesire mes skajit te tastit dhe skajit te formes
cmdLartMajtas.Left = 200
cmdPoshteMajtas.Left = 200
cmdLartDjathtas.Left = _
frmLevize.Width - cmdLartDjathtas.Width - 300
cmdPoshteDjathtas.Left = _
frmLevize.Width - cmdPoshteDjathtas.Width - 300
'Cakto skajin e eperm te tasteve. Kjo behet
'ngjashem si per skajin e majte.
cmdLartMajtas.Top = 200
cmdPoshteMajtas.Top = _
frmLevize.Height - cmdPoshteMajtas.Height - 500
cmdLartDjathtas.Top = 200
cmdPoshteDjathtas.Top = _
frmLevize.Height - cmdPoshteDjathtas.Height - 500
'Cakto madhesine e labeles
lblInfo.Height = 360
lblInfo.Width = 3000
'Vendose labelen ne qender te formes. Kjo behet
'ngjashem si per vendosjen e formes ne qender te ekranit.
lblInfo.Left = _

62

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

(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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

65

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

LLOJET E T DHNAVE, KONSTANTET,


VARIABLAT
Edhe n Visual Basic sikur n shumicn e gjuhve programuese, pr ruajtjen e t
dhnave (vlerave) definohen variablat (ndryshoret). Variablat kan emrin i cili
prdoret pr t ju referuar vlers q e ruan variabla dhe tipin e t dhnave i cili
definon llojin e t dhnave q mund t ruhet n variabl. Vargjet mund t prdoren
pr ruajtjen e bashksive t indeksuara t variablave t ndrlidhura.
Konstantet gjithashtu ruajn vlerat, por si tregon edhe emri i tyre, kto vlera
mbeten konstante prgjat ekzekutimit t programit. Prdorimi i konstanteve e bn
kodin m t kuptueshm dhe m t lexueshm, duke prdorur emra n vend t
vlerave. Ekzistojn disa konstante t brendshme t Visual Basic-ut, por edhe
shfrytzuesi mund t krijoj konstante.
Tipi i t dhnave kontrollon ruajtjen e t dhnave n Visual Basic. Visual Basic-u
si tip standard t t dhnave e prdor tipin Variant (i ndryshm), i cili paraqet nj
variabl fleksibile e cila ndryshon llojin sipas nevojs. Prve ksaj n Visual
Basic kemi disa lloje t t dhnave q mundsojn optimizimin e kodit pr
shpejtsi dhe madhsi, kur nuk nevojitet fleksibiliteti i tipit Variant.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Dim sht fjala e rezervuar q i tregon VB se dshironi t deklaroni


variabl,
EmriVariables sht emri i variabls,
As sht fjala e rezervuar q i tregon VB se jeni duke definuar tipin e t
dhnave pr variabln,
Tipi sht tipi i t dhnave t variabls

Kshtu pr shembull,
Dim i as Integer

definon variabln i e cila sht e tipit 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:
-

Emri gjithmon duhet t filloj me shkronj, jo numr ose karakter tjetr


Nuk mund t ket hapsir
Duhet t jet unik brenda procedurs ose modulit (varsisht prej domenit)
Nuk mund t jet m i gjat se 255 karaktere

P.sh., nuk lejohet: 1jave (Fillon me numr), Emri.Mosha (prmban pikn),


67

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Avni Rexhepi - Visual Basic


lbl
lin
lst
mdi
mnu
opt
ole
pnl
shp
spn
txt
tmr
vsb

Label
Line
List box
MDI child form
Menu
Option button
OLE client
3D panel
Shape
Spin control
Text/edit box
Timer
Vertical scrollbar

Llojet e t dhnave, konstantet, variablat


lblMbiemri
linKuqe
lstVendet
mdiKryesore
mnuEdit
optGjinia
oleFillimi
pnlEkipet
shpRrethi
spnTemp
txtAdresa
tmrLimiti
vsbKomentet

Zgjedhja e tipit t variabls


Variabla mund t ruaj vlera t fardoshme, si numra, tekst, objekte, kontrolla etj.
Si m specifike dhe q prdoren m s shumti, jan variablat q ruajn vlera
numerike, string dhe vlera logjike. Kur definohet tipi i variabls, ather ajo duhet
t prmbaj t dhna q i prgjigjen atij tipi, sepse deklarimi i tipit i jep instruksion
Visual Basic-ut se si ta krijoj dhe ta ruaj tipin e caktuar t t dhnave q do t
vendosen n at variabl.
Kur jan n pyetje vlerat numerike, duhet pasur kujdes lidhur me definimin e
madhsis s variabls. Preferohet q gjithnj t deklarohen vlera m t mdha,
nse nuk e dini saktsisht kufirin e sakt t madhsive t vlerave. Kur supozoni se
ndonj vler nuk do t jet numr i plot, duhet definuar tipin Single dhe Double,
n vend t Integer dhe Long.
N tabeln vijuese jan paraqitur tipet e t dhnave dhe kufinjt e vlerave q mund
ti mbaj secili tip dhe sasia e memorjes q krkohet pr ruajtjen e informats pr
at variabl.

69

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Llojet e t dhnave q ruajn variablat


Memoria
Ruan
Tipi
Integer
Numrat e plot
Long
Numrat e plot

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

Nuk ka nevoj ti tregoni Visual Basic-ut se ka do t prmbaj variabla. Pr


dallim prej gjuhve tjera, VB nuk krkon q t specifikoni deklarimin e variabls
para se t prdorni at. Nse variabla nuk sht e deklaruar, VB prdor tipin
standard, t njohur si Variant, i cili mund t prmbaj informat t fardo lloji.
Pr variablat e tipit Boolean, True ka vlern minus nj (-1), kurse False zero (0).

Vlera e zbrazt (Empty)


Ndonjher duhet t dihet se a i sht ndar ndonj vler variabls s krijuar.
Tipi Variant ka vler t zbrazt (Empty) para se ti ndahet ndonj vler. Vlera e
zbrazt sht vler speciale e ndryshme prej zeros (0), stringut me gjatsi zero ()
ose vlers Null. Vlera Empty mund t testohet me funksionin IsEmpty( ), si p.sh., If
IsEmpty(Z) Then Z = 0.
Kur Variant-a prmban vler Empty, ajo mund t prdoret n shprehje t
ndryshme dhe trajtohet si zero ose si string zero, varsisht prej shprehjes.

70

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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]]

Dim, Private, Static, dhe Public jan fjal t rezervuara t VB q definojn se si


dhe kur mund t prdoren variablat. EmriVar dhe EmriVar2 prfaqsojn emrat e
variablave q deklarohen. Si tregohet me sintaks, mund t definohen disa variabla
n nj urdhr, duke i ndar me presje (Jan paraqitur 2 variabla, por mund t
definoher numr i fardoshm).
TipiVar dhe TipiVar2 prfaqsojn emrin e tipit t variablave respektive. Tipi i
variabls sht fjal e rezervuar q i tregon VB se far informate do t ruhet n
variabl. Mund t definohen t gjitha llojet e specifikuara n tabeln paraprake.
Deklarimi i tipit sht opcional. Nse deklarohet tipi, duhet t shtypet fjala e
rezervuar As. Nse nuk definohet tipi, prdoret tipi Variant. Mirpo prdorimi i
tipit Variant pr informatat themelore ka dy t meta: mund t shpenzoj resurse t
memories dhe mund t prodhoj vlera t paparashikueshme, sidomos pr vargjet.
Rreshtat vijues t kodit tregojn se si prdoren urdhrat pr deklarim eksplicit t
variablave.
Private iVleraNum As Integer
Private iMesatarja As Integer, dVleraHyrese As Double
Static sLlogaritMesataren As Single
Dim strMesazhi As String

72

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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)

Krkimi i Option Explicit pas krijimit t forms ose modulit


Nse aktivizoni opcionin: Require Variable Declaration (krko deklarimin e
variablave) (n dialogun Options, menya: Tools-Options, n faqen Editor), ather
kjo nuk ka efekt n format dhe modulet e krijuara paraprakisht. N kt rast, duhet
shtuar urdhrin Option Explicit si rresht i par n kodin e cilsdo forme ose moduli
ekzistues.
Gjithashtu, mund t mbroheni duke detyruar Visual Basic-un, q t ju detyroj t
deklaroni variablat n mnyr eksplicite. Kjo bhet duke shtuar urdhrin Option
Explicit n rreshtin e par t seksionit General t kodit t forms ose modulit.
Gjithashtu mund t konfiguroni VB q t bj kt automatikisht sa her q shtoni
ndonj form ose modul. Kjo bhet duke aktivizuar opcionin Require Variable
Declaration n faqen Editor t dialogut Options (Menya Tools-Options).
Detektimi automatik i gabimeve
Zakonisht, VB sht i konfiguruar q t prkthej (kompajloj) kodin sa her q
ekzekutohet kodi (programi). Kshtu, nse nuk ndryshoni kt konfigurim dhe
prdorni Option Explicit, ather variablat e padeklaruara do t paraqiten si
gabime. Nse dshironi t kyqni kt opcion, n dialogun Options, n faqen
General, deselektoni opcionin Compile On Demand.
73

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Pasi t prcaktoni Option Explicit, nse nuk e deklaroni variabln, do t paraqitet


mesazhi i gabimit: Variable Not Defined (Variabl e padefinuar) kur t
kompajlohet kodi. Debuggeri (Dibageri, prmirsuesi, eleminuesi i gabimeve) i
integruar i VB do t markoj (theksoj me ngyr t verdh t prapavis) variablat e
tilla dhe do t ndal kompajlimin e programit.
Nj prparsi e ksaj sht se do t pengoj gabimet e mundshme t shtypit n kod.
Prdorimi i shkronjave t mdha
Nse n deklarimin e variabls prdorni disa shkronja t mdha, ather gjat
shkrurajes s kodit, shtypeni emri e variabls me shkronja t vogla, dhe VB
automatikisht do t bj prmirsimin (shndrrimin) n shkronja t mdha pr ta
prshtatur deklarimin. Kjo njherit sht edhe konfirmim vizuel i menjhershm se
emri sht shtypur korrekt (sa i prket shkronjave q i prmban).

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

Megjithse jan paraqitur disa kundrshti lidhur me mnyrat e deklarimit, me


parashtes apo me prapashtes, sht mir t prdoret mnyra e njjt prgjat tr
programit ose brenda nj grupi progamersh q bashkpunojn n nj projekt t
prbashkt, ashtu q kodi t jet m i lexueshm dhe m i kuptueshm.

74

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Prdorimi i variablave tekstuale String


String-u sht nj bashksi (grup) karakteresh. Vlerat vijuese paraqesin shembuj t
vlerave string:
Topi; Ka ndodhur nj gabim; a; 12 Dhjetor 2002; 25, etj. Vreni se
secili grup i karaktereve sht i mbyllur brenda thonjzave ( ).
Thonjzat jan shum t rndsishme, sepse ato i tregojn VB se sht fjala pr
vler t tipit String. Edhe numrat e shkruar brenda thonjzave, paraqesin String, e
jo vler numerike. Shembuj t till t shpesht jan kodet postale dhe numrat e
telefonit. Pr kt arsye, n stringjet q prmbajn karaktere numerike nuk
prdoren operacionet aritmetike.
Pr t prdorur vlerat e shtypura n TextBox ose n InputBox (Fush q prdoret
pr leximin e vlerave hyrse, e cila shpjegohet m von), s pari duhet t bhet
konvertimi n vler numerike prmes urdhrave pr konvertim, prej nj lloji t
vlers n tjetrin.
Prmbajtja e tekst boksit sht gjithmon string. Kshtu, urdhrat si :
StrVar = txtBox.Text

dhe txtBox.Text = strVar

mund t prdoren pr ti ndar prmbajtjen e tekst-boksit variabls string strVar


dhe anasjelltas.
Numrat ruhen n tekst-boks si string, kshtu q s pari duhet t konvertohen n
vler numerike para se tu ndahen variablave numerike. Nse str sht prezentimi i
numrit prmes stringut, ather
Val(str)
sht vlera e numrit. N kt mnyr, urdhrat si:
numVar = Val (txtBox.Text)

dhe txtBox.Text = Str(numVar)

mund t prdoren pr ti ndar prmbajtjen e tekst-boksit varuabls numerike


numVar dhe anasjelltas. Duhet pasur kujdes, se gjat konvertimit t numrave jonegativ n string prmes urdhrit Str, karakteri i par i tyre sht hapsir boshe.

75

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Pr shembull, n formn si n fig. 2.1,


vendosim dy tekst-bokse (txtMila dhe
txtKm) dhe i prdorim pr to
shkruajm kodin pr t shndrruar
vlerat tekstuale string n vlera
numerike dhe anasjelltas, pr llogaritje
dhe pr paraqitje n tekst-boks.
Fig. 2.1 Konvertimet Str-Val
Prmes tyre do t bjm shndrrimin e vlerave t gjatsis nga mila n kilometra
dhe anasjelltas, prmes kodit vijues:
Private Sub txtkm_LostFocus()
txtMila.Text = Str(0.6214 * Val(txtkm.Text))
End Sub
Private Sub txtMila_LostFocus()
txtkm.Text = Str(1.609 * Val(txtMila.Text))
End Sub

Prndrsyhe, konvertimet mund t bhen prmes funksioneve t gatshme t VB t


prshkruara n tabelat vijuese.
Veprimi
Konvertimi ndrmjet tipeve
Prcaktimi i tipeve t
brendshme
Verifikimi i tipit t t
dhnave

Fjala e rezervuar (komanda)


CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng,
CStr, CVar, CVErr, Fix, Int
Boolean, Byte, Currency, Date, Double, Integer, Long,
Object, Single, String, Variant (default)
IsArray, IsDate, IsEmpty, IsError, IsMissing, IsNull,
IsNumeric, IsObject

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

'Deklarimi i variabls pr numrin e par


'Deklarimi i variabls pr numrin e dyt
'Deklarimi i variabls q do t mbaj shumn e dy numrave

'Konverto tekstin e insertuar n tekst boks


'ne integer dhe ndaja variables s par
x = CInt(txtNumriPare.Text)
'Konverto tekstin e insertuar n tekst boks
'ne integer dhe ndaja variables s dyt
y = CInt(txtNumriDyte.Text)
'Mbledhi dy variablat e para dhe ndaja rezultatin
'variabls s tret
z=x+y
'Konverto variabln e tret q sht integer
'n tekst dhe ndaja tiparit Text t tekstboksit

77

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

'pr paraqitje t rezultatit


txtShuma.Text = CStr(z)
End Sub

Tani programi sht i gatshm dhe mund t ekzekutohet.

Stringu me gjatsi t ndryshueshme dhe me gjatsi fikse


Shumica e stringjeve q prdoren n programe jan stringje me gjatsi t
ndryshueshme (Variable-length string), q mund t prmbajn deri n 64000
karaktere. Pasi informata ruhet n variabl, madhsia e saj prshtatet pr t
pranuar gjatsin e stringut. Mirpo, ekziston edhe lloji tjetr i stringut, String me
gjatsi fikse (Fixed-length string). Si tregon edhe emri, variabla string me gjatsi
fikse ruan madhsin e njjt, pa marr parasysh informatn q i ndahet. Nse i
ndahet nj shprehje me gjatsi m t vogl, pjesa e mbetur plotsohet me zbrastir
(space character). Nse shprehja e tejkalon gjatsin e variabls, ather vetm
karakteret q i z ruhen, pjesa tjetr prehet dhe nuk mirret parasysh.
Variabla string me gjatsi fikse mund t deklarohet vetm duke prdorur formn e
deklarimit eksplicit, si n vijim:
Dim EmriVariabls As String * gjatsiastringut
Kshtu, pr t br stringun strStringu1 q gjithmon t pranoj 25 karaktere, duhet
deklaruar kshtu:
Dim strStringu1 As String * 25
Pra, deklarimi i stringut me gjatsi fikse prmban edhe shenjn e yllit (* asterisk), pr ti treguar VB se stringu do t ket gjatsi fikse. Parametri i fundit,
gjatsiastringut, tregon numrin e karaktereve q mund t prmbaj variabla.

Prcaktimi i domenit t variablave


Domeni i variablave (zona e prdorimit) prcaktohet jo vetm prej tipit por edhe
prej vendit t deklarimit. Pr shembull, fjala e rezervuar Dim, ka kuptime t
ndryshme n pjes t ndyshme t kodit. N variablat n seksionin e Deklarimit,
mund t prdoret vetm fjala e rezervuar Private. Urdhri i deklarimit t variablave
i tregon VB se ku mund t prdoret variabla. Zona e prdorimit t variabls njihet
si Domen i variabls. Kjo sht e ngjashme me telefonin, ku numrat brenda zons
s njjt (domenit t njjt, p.sh., numrat prbrenda Prishtins) thirren drejtprdrejt
me numrin e telefonit, si p.sh., 825 - 525, kurse pr numrat jasht domenit, s pari
duhet dhn prefiksin e pastaj numrin, si p.sh., 038 + Numri i telefonit (038 825
525).
78

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Edhe domeni i variablave n VB sht i ngjashm. Mund t kemi variabla q


shihen vetm lokalisht, brenda procedurs ku jan deklaruar dhe mund t kemi
variabla globale, q shihen kudo brenda forms, modulit ose edhe tr programit.
Standard, variabla e deklaruar me Dim sht lokale, pr procedurn ku sht
deklaruar. Pr t definuar variabla q kan domen tjetr, duhet modifikuar urdhrin
pr deklarim.

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 publike dhe variablat lokale


Mund t ndod q variablat me emr t njjt kan domen t ndryshm. Pr
shembull, mund t keni nj variabl publike t emrtuar Temp dhe brenda
procedurs t deklaroni nj variabl me t njjtin emr, Temp.
Referencat n emrinTemp brenda procedurs do ti qasej variabls lokale, kurse
referenca jasht procedurs, do ti qasej variabls publike.
Variabls s nivelit t modulit mund ti qasemi prej procedurs duke kualifikuar
variabln me emrin e modulit:
79

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Public Temp As Integer


Sub Test( )
Dim Temp As Integer
Temp = 2 Temp ka vlern 2
MsgBox Form1.Temp Form1.Temp ka vlern 1
End Sub
Private Sub Form_Load( )
Temp = 1 Cakto Form1.Temp n 1
End Sub
Private Sub Command1_Click ( )
Test
End Sub

N prgjithsi, kur variablat kan emr t njjt por domen t ndryshm,


variabla lokale gjithmon e mbulon at t jashtme.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Shembull:
Nj variabl statike e tipit integer,
mund t definohet si vijon:
Static Numratori as Integer

dhe mund t prdoret pr t ditur


numrin e shtypjeve t nj tasti
komandues. Krijojm tastin
komandues cmdNumro dhe tekst
boksin txtClick. Definojm
mesazhin Dim Msg as String.
Fig. 2.3 Forma pr testim
Nse variabla pr numrimin e shtypjeve dimenzionohet me Dim, brenda
procedurs se shtypjes, ajo do t zhduket kur procedura t prfundoj (pas do
kliku) dhe variabla sht jasht domenit t prdorimit. Nse variabla bhet statike,
ather vlera ruhet prej shtypjes n shtypje.
Option Explicit
Private Sub cmdNumro_Click()
'Bje variabln statike q t ruaj vlern prej klikut n klik
Static Numratori As Integer
'Krijo variabln pr mesazhin - String
Dim Msg As String
'Fillo mesazhin
Msg = "Kliku numr: "
'Konverto variabln Numrator prej Integer
'n String dhe bashkoje me stringun paraprak
Msg = Msg & CStr(Numratori) & "."
'Paraqite stringun n Tekstboks
txtClick.Text = Msg
'Rrite variabln pr numrator, duke ja shtuar vlern e mparshme
Numratori = Numratori + 1
End Sub

81

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Nse prdoret fjala e rezervuar Static gjat deklarimit t procedurs, ather t


gjitha variablat n t do t trajtohen si statike. Variablat statike zakonisht prdoren
n ngjarjet pr timer (numratorin dhe orn).

Krijimi i konstanteve t shfrytzuesit


Konstantet zakonisht emrtohen me shkronja t mdha dhe nse ka nevoj pr disa
fjal, me nnviz ( _ ), si p.sh., NUMRI_GODITJEVE=25. Megjithat nuk
prjashtohet edhe emrtimi me shkronja t vogla, ose me prefiks me shkronja t
vogla, e tjerat t prziera.
Edhe pse VB deklaron nj numr mjaft t madh t konstanteve, ndonjher
paraqitet nevoja pr deklarimin e konstanteve t shfrytzuesit. Konstantet
deklarohen me urdhrin me fjaln e rezervuar: Const pr t emrtuar konstantn me
emr dhe vler, si n sintaksn n vijim:
Const EMRI_KONSTANTES [As TipiKosntantes] = vlera

q sht e ngjashme me deklarimin e variablave. Pra duhet dhn emrin dhe


opcionalisht tipin. Fjala e rezervuar Const, n fillim i tregon VB se urdhri definon
nj konstante. Kjo dallon prej urdhri q vetm ia ndan vlern variabls.
Pr deklarimin e tipit t konstants prdoren tipet e njjta si n rastin e variablave.
N fund, pr t definuar konstanten, duhet t shtypet edhe shenja e barazis (=) dhe
vlera q i ndahet. Nse definohet konstanta e tipit string, vlera duhet t jet nn
thonjza.

Urdhri pr ndarjen e vlerave


Pr prdorimin efikas t variablave, duhet t ket mundsi q variabls ti ndahet
(ti prcaktohet) vlera dhe t manipulohet me ato vlera, pra t bhet vendosja e
vlerave n variabla. Pasi t krijohet variabla, n t duhet t ruhen t dhnat. Kjo
sht detyr e urdhrit pr ndarjen e vlerave (Assignment Statment). N urdhrin
pr ndarjen e vlerave, prcaktohet variabla t cils i ndahet vlera. Pr ti ndar
vlern variabls, duhet shtypur shenjn e barazis pas emrit t variabls dhe
shprehjen q paraqet vlern q do t ruhet n variabl. Shprehja mund t jet nj
vler literale, kombinim i variablave dhe konstanteve tjera ose funksion q kthen
vlera. Nuk ka kufizime n aspekt t kompleksitetit t shprehjes q prdoret.
Sidoqoft, edhe pse VB do t tentoj q automatikisht t shndrroj tipet e
papajtueshme t t dhnave, duhet t tentohet q t ndahen vlerat korrekte pr
variablat.
Urdhrat vijues bjn ndarjen e vlerave:

82

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

NumStudent% = 25
Shuma% = 2276
Mesatarja% = Shuma% / NumStudent%
TopStudenti$ = "Virtyt Rexhepi"
StudentiDobet$ = txtStudent.Text

Shumica e tipareve t formave dhe kontrollave mund t konsiderohen si variabla


dhe mund t bhet ndarja e vlerave t tyre gjat kohs s ekzekutimit.
Patm edhe shembullin, pr ndarjen e vlers s rezultatit, t shums s dy vlerave
t insertuara n fushat e para dhe ndarjen e vlers s rezultatit, kontrolls txtShuma:
Konverto variabln e tret (q sht integer)
n tekst dhe ndaja vlern tiparit text t TextBox-it pr rezultat txtShuma.
txtShuma.Text = CStr(z)

Gabimi TypeMismatch
Dim x%
urdhri vijues do t shkaktoj TypeMismatch Error
x% = "Jungjatjeta!"
...

Gabimi TypeMismatch (Mosprshtatje e tipit) paraqitet kur variabls i ndahet vlera


e tipit t gabuar, q nuk i prshtatet tipit t deklaruar t variabls. Pr shembull kur
variabls s tipit Integer x%, i ndahet vlera string, shkaktohet mosprputhje dhe
paraqitet gabimi i mosprshtatjes s tipit (TypeMismatch Error).
Pr t eleminuar mundsin e paraqitjes s gabimit t till, pr insertimin e vlerave
t shfrytzuesit prmes dialogut pr insertim (Input Box), i cili ka fushn tekst
boks, duhet t bhet verifikimi i vlers s dhn t shfrytzuesit, si n vijim:
IsNumeric(txtNumriPare.Text)

Pr t penguar paraqitjen e gabimeve t tilla, prdoret funksioni i Visual Basic-ut,


IsNumeric( ), i cili vrteton a sht vlera e dhn numr apo jo?. Verifikimi i
vlerave hyrse (t insertuara prej shfrytzuesve) q njihet si Data Validation
(Validiteti i t dhnave), sht nj detyr shum e rndsishme e programit.
Funksioni
Funksioni sht pjes e emrtuar e kodit e cila kthen rezultate ose procedur speciale q
kthen rezultate. Funksioni mund t riprdoret disa her brenda programit. Pr qllime t
llogaritjes, mund t prcillen informatat n funksion. Informata q i prcillet funksionit, quhet
parametr, ose njihet edhe si argument.

83

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Dy operacionet m t thjeshta matematike jan mbledhja dhe zbritja. Si n


matematik, llogaritjet kryhen nga e majta n t dhjatht, si n pjesn vijuese t
kodit:
dVlera1 = 1.25 + 3.17
dVlera2 = 3.21 - 1
dVlera3 = dVlera2 + dVlera1
dVlera4 = dVlera3 + 3.75 - 2.1
dVlera4 = dVlera4 + 1

rezultati
rezultati
rezultati
rezultati
rezultati

4.42
2.21
6.63
8.28
9.28

85

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Prdorimi i variabls n t dy ant e operatorit pr ndarje t vlers


Rreshti i fundit mund t duket i uditshm nse nuk keni prvoj n programim. Sikur n
shumicn e gjuhve programuese, mund t shtypet kodi q i tregon programit q t marr
vlern momentale t variabls, tia shtoj asaj nj vler dhe pastaj t ruaj rezultatin prapa,
n t njejtn variabl. Kjo mund t bhet edhe me variablat string, duke bashkuar stringjet.

Operacioni i Ekuivalencs prdoret pr ekuivalencn e dy shprehjeve. Rezultati


sht i sakt, nse t dy shprehjet jan t sakta. Nse njra prej shprehjeve sht
Null, edhe rezultati sht Null. Krahasimi mund t bhet edhe n nivel t bitave,
duke krahasuar bitat korrespondues t shprehjeve.
Shprehja 1
True
True
False
False

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

Pra vetm kur shprehjet jan t njjta, rezultati sht i sakt.


Pr shmbull:
Dim A, B, C, D, Testi
A = 10: B = 8: C = 6: D = Null
Testi = A > B Eqv B > C
Testi = B > A Eqv B > C
Testi = A > B Eqv B > D
Testi = A Eqv B

' Inicializimi i variablave.


' Rezultati True.
' Rezultati False.
' Rezultati Null.
' Rezultati -3 (Krahasimi sipas bitave).

Sa i prket operacionit t Implikacionit, kemi rregullat vijuese:


Shprehja 1
True
True
False
False

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Implikacioni me Null, jep rezultatin Null.


Operatori Ekskluzive Ose ka rregullat vijuese:
Shprehja 1
True
True
False
False

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

Pra, vetm kur shprehjet jan t ndryshme, rezultati sht i sakt.


Operatori Like, bn krahasimin me mostrat dhe prdoret n rastet e sortimit,
krkimit etj.
Dim Testi
Testi = "aBBBa" Like "a*a"
Testi = "F" Like "[A-Z]"
Testi = "F" Like "[!A-Z]"
Testi = "a2a" Like "a#a"
Testi = "aM5b" Like "a[L-P]#[!c-e]"
Testi = "BAT123khg" Like "B?T*"
Testi = "CAT123khg" Like "B?T*"

' Rezultati True.


' Rezultati True.
' Rezultati False.
' Rezultati True.
' Rezultati True.
' Rezultati True.
' Rezultati False.

Operatori prdoret pr krahasim t dy variablave. Nse t dy variablat i referohen


objektit t njjt, rezultati sht True, prndyshe rezultati sht False.
Dim ObjektiIm, ObjektiYt, KyObjekt, ObjektiTjeter, AiObjekt, Testi
Set ObjektiYt = ObjektiIm
' Cakto referencat e objekteve
Set KyObjekt = ObjektiIm
Set KyObjekt = ObjektiTjeter
Testi = ObjektiYt Is KyObjekt
' Rezultati True.
Testi = KyObjekt Is KyObjekt
' Rezultati False.
' Supozojme se ObjektiIm <> ObjektiTjeter
Testi = ObjektiIm Is AiObjekt
' Rezultati False.

87

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Pr t ndryshuar prioritetin n kryerjen e operacioneve, prdoren kllapat, si n


matematik.
x = (8 + 3) * 2
ose
x = 8 + (3 * 2)

rezultati 22
rezultati 14

Sa i prket pjestimit, prveq pjestimit t zakonshm:


Result = Numri1 / Numri2
Result = 2.3 / 2 rezultati 1.15

Visual Basic-u prkrah edhe dy operacione tjera t pjestimit: pjestimin e plot, q


paraqitet me shenjn e pjerrt mbrapsht ( \ ) dhe modulin (mbetjen). Pjestimi i plot
kthen vetm pjesn e plot t pjestimit, kurse moduli kthen vetm mbetjen:
Rezultati = 12 \ 5
Rezultati = 2.3 \ 2
Rezultati=14 Mod 5

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Eksponentet m t mdhenj se nj tregojn numrin n fuqi. Eksponentt m t


vegjl se nj, tregojn rrnjn dhe eksponentt negativ tregojn thyes (pjestim).
Shembull Eksponenti
3^2=9
9 ^ 0.5 = 3
2 ^ -2 = 0.25

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

Prndryshe, kur prdoret operatori +, nse t dy shprehjet jan t tipit string,


rezultati sht string. Nse njra prej shprehjeve sht vler numrike, rezultati
sht mbledhje aritmetike.
Dim Numri, Var1, Var2
Numri = 2 + 2

' Rezultati 4.

Var1 = "34": Var2 = 6


Numri = Var1 + Var2

' Inicializo variablat e prziera


' Rezultati 40.

Var1 = "34": Var2 = "6"


Numri = Var1 + Var2

' Inicializo variablat string.


' Rezultati "346" (string concatenation).

89

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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.

Urdhri If ... Then


Urdhri If... Then (Nse.. ather), prdoret pr verifikimin e kushtit t caktuar.
Nse plotsohet kushti (rezultati i Sakt True), ather ekzekutohet urdhri i
caktuar.
Urdhri mund t shkruhet n dy forma: N nj rresht (Single-Line If...Then) dhe n
shum rreshta (Multi-Line If ... Then). Secili prdor fjalt e rezervuara If ... Then
pr t testuar kushtin. Nse kushti sht i Sakt (True), ather programi ekzekuton
urdhrat e bashkangjitur me urdhrin If...Then. Nse kushti sht i pasakt (False),
ather komandat anashkalohen (nuk ekzekutohen).

If ... Then n nj rresht


Sintaksa e urdhrit n nj rresht (Single Line If..Then) sht:
If Kushti Then Urdhri

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Urdhri (komanda) paraqet veprimin q do t kryhet nse kusht plotsohet dhe


rezultati sht True dhe mund t jet fardo urdhri valid i VB, prveq deklarimit
t variablave.
(Shikoni shembullin: Kalkulatori.vbp)

If .. Then me shum urdhra


Urdhrat e shumfisht n urdhrin pr kushtzim (Multi-Line If...Then) kan
sintaksn vijuese:
If Kushti Then
Urdhri 1
Urdhri 2
Urdhri n
End If

Kur duhet ekzekutuar m shum se nj urdhr, si prgjigje n kushtin e dhn,


ather prdoret blloku i urdhrave mes If...Then dhe End If (Prdundo kushtin If).
Nse kushti plotsohet, ekzekutohen nj pas nj urdhrat brenda kushtit,
prndyshe, nse kushti nuk plotsohet ather, anashkalohen urdhrat dhe programi
vazhdon me urdhrin e par pas rreshtit End If.
(Edhe pr kt rasr, shikoni shembullin: Kalkulatori.vbp)

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

Urdhrat If dhe End If n kt bllok, jan t njjt si n rastet paraprake. Elementi


kryesor n kt kusht sht urdhri Else (prndryshe). Ky urdhr vendoset pas
urdhrit t fundit q ekzeutohet kur kushti plotsohet (True) dhe para urdhrit t
par q ekzekutohet kur kushti nuk plotsohet (False). Kur plotsohet kushti,
91

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Gjithmon verifikoni se a sht shkruar End If n fund t urdhrit.


Pr t siguruar strukturn e rregullt, pr If dhe End If sht mir q t bhet praktik
e prhershme q sa her t shtypet If, menjher t shtypet edhe End If dhe pastaj t
vendoset pjesa tjetr e kodit mes tyre. N nj form, krijohet struktura pr If...End If
dhe plotsohet prmbajtja e saj. Rreshtimi i If dhe End If n vij dhe zhvendosja
djathtas e pjess tjetr t kodit prmes tabulatorit, lehtson leximin dhe prcjelljen
e kodit.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Shihet se pr do kusht t plotsuar kemi urdhrin e caktuar, prndryshe vazhdohet


me kushtin e ardhshm.
Kemi edhe mundsin tjetr, t ndrthurrjes s kushteve kur testohet kushti i dyt,
vetm nse plotsohet i pari, si n vijim:
If Kushti1 Then
If Kushti2
Then
Urdhri1e2
Plotsohen t dy kushtet
Else
Urdhri1 Plotsohet vetm kushti1
End If
Else
UrdhriJo1
Nuk plotsohet 1 (rrjedh se as 2)
End If

Mund t bhen kombinime t ndyshme t ndrthurrjes s urdhrave.


Pr testimin e kushteve t tilla, prmes dritares Immediate, krijojm formn si n
vijim:
Le t marrim si shembull formn si n Fig. 2.4.

93

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Krijojm formn me dy tekst-bokse


(txtNumri1 dhe txtNumri2) dhe me
dy taste komanduese (cmdprova1
dhe cmdprova2). Pr shkruarjen e
kodeve prkatse, klikojm dy her
tastet komandues dhe shkruajm
kodet gjegjse, si n vijim:

Fig. 2.4 Forma pr testim

Private Sub cmdProva1_Click()


Dim Numri1 As Integer
Numri1 = Val(txtNumri1.Text)
If Numri1 > 10 Then
Debug.Print "Numri eshte me i madh se 10"
Else
If Numri1 = 10 Then
Debug.Print "Numri eshte 10"
Else
If Numri1 = 9 Then
Debug.Print "Numri eshte 9"
Else
Debug.Print "Numri eshte me i vogel se 9"
End If
End If
End If
End Sub
Private Sub cmdProva2_Click()
Dim Numri2 As Integer
Numri2 = Val(txtNumri2.Text)
If Numri2 <= 10 Then
If Numri2 >= 5 Then
Debug.Print "Numri eshte mes 5 dhe 10"
Else
Debug.Print "Numri eshte me i vogel se 5"
End If
Else
Debug.Print "Numri eshte me i madh se 10"
End If
End Sub

94

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Gjat ekzekutimit t programit, duke br prova pr vlera t ndryshme, shtypen


rezultatet prkatse n dritaren Immediate.

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

If PergjigjeTeSakta% >= 10 Then


strNota = "5"
ElseIf PergjigjeTeSakta% = 9 Then
strNota = "5-"
ElseIf PergjigjeTeSakta% = 8 Then
strNota = "4"
ElseIf PergjigjeTeSakta% = 7 Then
strNota = "4-"
ElseIf PergjigjeTeSakta% = 6 Then
strNota = "3"
ElseIf PergjigjeTeSakta% = 5 Then
strNota = "3-"
ElseIf PergjigjeTeSakta% = 4 Then
strNota = "2"
ElseIf PergjigjeTeSakta% = 3 Then
strNota = "2-"
Else
strNota = "1"
End If

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Kombinimi i kushteve me Dhe dhe me Ose


Gjat dhnies s kushteve t ndryshme, mund t bhet kombinimi i dy ose m
shum kushteve, n nj kusht t vetm prmes urdhrave AND (DHE)
(krkohet plotsimi i t gjitha kushteve t lidhura me DHE) dhe OR (OSE)
(krkohet plotsimi i njrit prej kushteve).
If (x<=10) And (X>5) Then...
If X > 5 Or Y>10 Then...

Prdorimi i kllapave lehtson ndarjen e kushteve prej fjalve t rezervuara,


prndryshe nuk sht i domosdoshm.

Urdhri Select Case


N vend t prdorimit t urdhrave t shumfisht prmes If...Then...ElseIf, mund t
prdoret edhe struktura Select Case (Zgjedhe Rastin), e cila ka sintaksn vijuese:
Select Case VleraPerTestim
Case Vlera1
Urdhri1
Case Vlera2
Urdhri2
Case Vlera3
Urdhri3
Case Else:
Urdhri4
End Select

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

ose, pr rangun e vlerave:


Select Case x%
Case 1 To 100
MsgBox "Vler m e madhe ose baraz me 1 dhe m e vogl ose baraz me 100"
Case 101 To 199
MsgBox "M e madhe se 100 dhe m e vogl se 200"
Case Else
MsgBox "Jasht rangut"
End Select

Prdorimi i strukturs Select Case pr rastin e vlersimit t notave t nxnsve,


lehtson dhe qartson kodin e njherit lehtson shtimin e opcioneve t reja, q pr
strukturn If...Then...Else, sht m e vshtir:
Select Case PergjigjeTeSakta %
Case 10
strNota = "5"
Case 9
strNota = "5-"
Case 8
strNota = "4"
Case 7
strNota = "4-"
Case 6
strNota = "3"
Case 5
strNota = "3-"
Case 4
strNota = "2"
Case 3
strNota = "2-"
Case Else
strNota = "1"
End Select

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

(Etiketat, Emrat) pr emrtimin e pjesve t programit, n t cilat kalohet prmes


urdhrit GoTo.
Pr shembullin e vlersimit t rangut t vlerave, do t mund t prdorej edhe kodi
vijues, prmes urdhrit GoTo (Shembulli GoTo.vbp). N form insertojm dy
kontrolla t tipit TextBox: txtVlera dhe txtRezultati dhe tastin komandues:
cmdRezultati.
Private Sub cmdRezultati_Click()
Dim Vlera As String, x As Single
x = Val(txtVlera.Text)
Select Case x
Case 1 To 100
GoTo Rangu1
Case 101 To 199
GoTo Rangu2
Case Else
GoTo Jasht
End Select

Kalo tek labela Rangu1


Kalo tek labela Rangu2
Kalo tek labela Jasht

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

Gjithashtu, kemi edhe urdhrin pr kalimin n procedurn e caktuar GoSub.


Prmes urdhrit GoSub ekzekutimi i programit kalon n procedurn e thirrur, e
pastaj prmes urdhrit Return (kthehu) kthehet dhe ekzekutimi vazhdon me
urdhrin pas urdhrit GoSub.
P.Sh.:
Sub GosubDemo()
Dim Num
Private Sub cmdPjesto_Click( )
Dim Num
' Lexo numrin prej tekst-boksit txtVlera. Krko numrin prej shfrytzuesit

98

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Num = Val(txtVlera.text) Jepni nj numr pozitiv q do t pjestohet me 2


' Vetm nse jepet numr pozitiv prdoret nnprogrami
If Num > 0 Then GoSub NnProg1
Debug.Print Num Shtype numrin n dritaren Immediate
Exit Sub ' Prdoret Exit pr t parandaluar ndonj gabim
NnProg1:
Num = Num/2 ' Kryej pjestimin
Return ' Kthe kontrolln n urdhrin q pason urdhrin GOSub
End Sub

Kontrollat CheckBox dhe OptionButton


Kontrolla opcionale CheckBox (fusha pr zgjedhje) dhe OptionButton
(tasti pr opcione) prdoren pr kushtzime t ndryshme logjike, n baz
t t cilave mandej kryhen llogaritje t ndryshme varsisht prej vlers s
tyre apo zgjedhjes ose moszgjedhjes s tyre.
Kryesisht prdoren pr paraqitje t vlerave t tipit Sakt/Pa Sakt (True/False) ose
Po/Jo (Yes/No). Mund t bhet edhe kombinimi i tyre n grupe.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Prmes dy kontrollave t tipit CheckBox do t kontrollojm stilin e tekstit t


shkruar n fushn tekstuale txtDalja (Fig. 2.5).

Fig. 2.5 Kontrollat CheckBox

Insertojm dy kontrolla t tipit


CheckBox dhe i emrtojm me
emrat prkats prmes tiparit
Name: chkBold dhe chkItalic.
Tiparet gjegjse Caption i
prcaktojm si Bold dhe Italic.
Tekst-boksin e emrtojme me
emrin txtDalja dhe pr tiparin
Text - Visual Basic 6.0.
Forma do t duket si n Fig. 2.5.

Prmes kodit vijues e kontrollojm gjendjen n modin e ekezekutimit.


Private Sub chkBold_Click()
If chkBold.Value = 0 Then txtDalja.FontBold = False
If chkBold.Value = 1 Then txtDalja.FontBold = True
End Sub
Private Sub chkItalic_Click()
If chkItalic.Value = vbUnchecked Then txtDalja.FontItalic = False
If chkItalic.Value = vbChecked Then txtDalja.FontItalic = True
End Sub

Kur t ekzekutohet programi, sa her q t klikohet fusha chkBold (e tipit


CheckBox), do t aktivizohet apo deaktivizohet stili Bold pr tekstin n fushn
txtDalja, prmes tiparit Value. Njsoj ndodh edhe me fushn chkItalic.
Opcion tjetr i mundshm, sht edhe krijimi i dy tasteve komanduese (cmdBold
dhe cmdItalic, n t cilat prmes tiparit Caption paraqesim tekstet: Bold dhe Italic)
dhe prmes tyre t aktivizohen fushat chkBold dhe chkItalic, si n vijim:
Private Sub cmdBold_Click()
chkBold.Value = 1
End Sub
Private Sub cmdItalic_Click()
chkItalic.Value = 1
End Sub

100

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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.

Fig. 2.6 Fushat e tipit CheckBox

Varsisht nga zgjedhja e fushave


Po dhe Jo (chkPo dhe chkJo), kur
t klikohet tasti komandues
Vlersimi (cmdVlerso), n fushn
tekstuale (txtDalja) do t paraqitet
teksti prkats: Po (kur sht
aktivizuar vetm fusha Po); Jo (kur
sht aktivizuar vetm fusha Jo);
Edhe Po edhe Jo (kur aktivizohen
q t dyja dhe: As Po as Jo, kur nuk
zgjedhe asnjra.

Pr t shkruar kodin pr tastin cmdVlerso, klikojm dy her n t dhe n dritaren e


kodit, pr procedurn cmdVlerso_Click( ), shkruajm kodin si n vijim:
Private Sub cmdVlerso_Click()
If chkPo.Value = 0 And chkJo.Value = 0 Then txtDalja.Text = "As Po as Jo"
If chkPo.Value = 1 And chkJo.Value = 0 Then txtDalja.Text = "Po"
If chkPo.Value = 0 And chkJo.Value = 1 Then txtDalja.Text = "Jo"
If chkPo.Value = 1 And chkJo.Value = 1 Then txtDalja.Text = "Edhe Po edhe Jo"
End Sub

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

N modin e dizajnimit, vlera e kontrolls prcaktohet prmes tiparit: Value, i cili


mund t ket vlern True ose False. Nse prmes kodit dshirojm t ndryshojm
gjendjen e tastit opcional, ather prmes urdhrit, bjm ndarjen e vlers (p.sh.,
optM.Value = True). Nse n modin e dizajnit nuk sht prcaktuar asnj kontroll
e tipit OptionButton me vler fillestare True (E sakt, kontrolla e kyqur), ather
kontrolla e par automatikisht merr vlern True.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

tipit CheckBox ose OptionButton. N kt rast, n secilin grup mund t zgjedhet


nga nj kontroll e tipit OptionButton.
Shembull:
N nj form insertojm katr korniza pr grupimin e kontrollave t tipit CheckBox
dhe OptionButton si n Fig 2.8.

Fig. 2.8 Grupimi i kontrollave

S pari insertojm kornizat:


fraFonti, fraNgjyra, fraMadhsia
dhe fraStili. Brenda tyre pastaj
insertojm tastet opcionale
(OptionButton): optA, optT,
optKuqe. OptKalter, opt10, ...
opt20, chkB dhe chkI. Gjithashtu
vendosim edhe nj fush tekstuale
txtDalja (tiparet: Alignment: 2Center; Font: Arial; Text: Visual
Basic 6.0). Pastaj shkruajm kodin
vijues:

Private Sub chkB_Click()


If chkB.Value = 0 Then txtDalja.FontBold = False
If chkB.Value = 1 Then txtDalja.FontBold = True
End Sub
Private Sub chkI_Click()
If chkI.Value = 0 Then txtDalja.FontItalic = False
If chkI.Value = 1 Then txtDalja.FontItalic = True
End Sub
Private Sub chkR_Click()
If chkR.Value = 1 Then
txtDalja.FontBold = False
txtDalja.FontItalic = False
End If
End Sub
Private Sub Opt10_Click()
txtDalja.FontSize = 10
End Sub
Private Sub opt14_Click()
txtDalja.FontSize = 14
End Sub

103

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Private Sub opt16_Click()


txtDalja.FontSize = 16
End Sub
Private Sub opt20_Click()
txtDalja.FontSize = 20
End Sub
Private Sub optKalter_Click()
txtDalja.ForeColor = vbBlue
End Sub
Private Sub optKuq_Click()
txtDalja.ForeColor = vbRed
End Sub
Private Sub optA_Click()
txtDalja.Font = "Arial"
End Sub
Private Sub optT_Click()
txtDalja.Font = "Times New Roman"
End Sub

Kur t ekzekutohet programi, grupet e kontrollave opcionale funksionojn n


mnyr t pavarur prej njra tjetrs.

104

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Urdhrat pr prsritje - Unazat


Nj prej beneficioneve t programimit sht edhe aftsia e prsrijtes s urdhrave.
Komandat specifike, t cilat vendosen n fillim dhe n fund t bashksis s
urdhrave q prsriten, pr t kontrolluar ekzekutimin e tyre njihen si Unaza. N
gjuhn angleze, njihen si Loop (lak, rrethoj), q ka kuptimin e zons s kufizur
brenda t cils prsriten urdhrat. Urdhrat kontrollues, tregojn se sa her dhe
kur do t prsriten urdhrat brenda unazs.
Visual Basic-u prkrah dy lloje t zakonshme t urdhrave pr prsrijte
(Unazave): Counter Loops (unazat numruese) t cilat bjn nj numr t caktuar t
prsritjeve dhe Conditional Loops (unazat pr kushtzim) t cilat kryejn
veprimin gjersa plotsohet kushti i dhn ose deri sa t ekzistojn kushtet e
caktuara.

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]

For fjala e rezervuar, q fillon unazn,


VariablaNumrator variabla numerike e cila prdoret si numrator n unaz
VleraFillestare numri prej t cilit fillon unaza
To fjala e rezervuar e cila ndan vlern fillestare dhe vlern prfundimtare
VleraPerfundimtare numri n t cilin ndalet unaza
Step fjala e rezervuar (sht opcionale), q tregon se unaza prsritet
pr nj hap t caktuar (kur nuk definohet, nnkuptohet se hapi sht 1)
Hapi paraqet madhsin e hapit rrits/zvoglues (mund t jet vler
negative)
Next fjala e rezervuar q prfundon unazn
Variabla pran Next, tregon cila variabl azhurohet prmes Next.
N fillim t unazs For...Next, definohet variabla numrator, si edhe vlerat fillestare
dhe prfundimtare t vlers s variabls. Hern e par q ekzekutohet unaza,
numratori vendoset n vlern e piks fillestare.

105

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Shembuj:
Dim i as Integer
For i = 1 To 10
Debug.Print Vlera momentale e i sht: i = & i
Next i

Kjo pjes e kodit, n dritaren Immediate do t shtyp me rradh:


Vlera momentale e i sht: i = 1
Vlera momentale e i sht: i = 2
...
Vlera momentale e i sht: i = 10
Testimi i pjesve t kodit
Pr t testuar pjest e kodit, duke i ekzekutuar dhe verifikuar rezultatet n dritaren
Immediate, mjafton t startohet nj projekt StandardEXE. Klikohet dy her n form, q t
kalohet n dritaren e kodit dhe n procedurn e ngjarjes mes urdhrave Form_Load ( ) ...
End Sub, shkruhet kodi prkats dhe pastaj ekzekutohet projekti.
Rezultatet n dritaren Immediate shtypen prms urdhrit: Debug.Print

Nse bjm ndyshimin vijues, numratori zvoglohet n do hap:


Dim i as Integer
For i = 10 To 1 Step -1
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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Ndrprerja e unazs For...Next


Normalisht, unaza For...Next kalon npr t gjith hapat, prej vlers fillestare deri
te vlera prfundimtare, por ndonjher mund t ndodh q dshirohet ndrprerja e
parakohshme e unazs, n baz t ndonj kushti t caktuar. Ndrprerja e unazs,
gjegjsisht dalja prej unazs bhet me urdhrin Exit For.
Pr shembull, nse pr velrn 8 dshirojm t ndrprejm unazn, japim urdhrinsi
n vijim:
For i = 1 To 10
Debug.Print Vlera momentale e i sht: i = & i
If i=8 Then Exit For
Next i

Unazat Do ... Loop


Unaza Do...Loop sht unaz e kushtzuar (Conditional Loop), e cila sht aktive
deri sa ekziston kushti i caktuar. Veti kryesor e unazs s kushtzuar, sht kushti
(ndonj shprehje q mund t kthej vlern True ose False). Dy format themelore t
unazs s kushtzuar jan: Do...While dhe Do...Until.

Unaza Do ... While


Sintaksa e unazs Do ... While sht:
Do While kushti
Urdhri/at
Loop

Do fjala e rezervuar q shnon fillimin e unazs


While fjala e rezervuar q tregon far lloji i unazs sht
Kushti gjendja q duhet t ekzistoj, p.sh; i=10, Vlera1 <> True, x<y, etj
Urdhri/at urdhri ose urdhrat q ekzekutohen deri sa unaza sht aktive dhe
kushti sht True.
Loop fjala e rezervuar q tregon fundin e unazs
Gjithashtu, mund t prdoret njsoj edhe forma tjetr e sintakss:
Do
Urdhri/at
Loop While kushti

Si shihet, kemi dy forma unazs, Do ... While, q dallojn pr nga pozita e kushtit,
n fillim apo n fund t unazs.
107

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Fjala e rezervuar While, n unazn Do ... While i tregon programit se unaza do t


prsritet tr kohn, gjersa shprehja sht e sakt. Kur kushti bhet False (i
pasakt), ather programi vazhdon jasht unqazs, n urdhrin pas fjals s
rezervuar Loop.
Vreni, se rritjen e numratorit, duhet br prmes urdhrit t veqant, (i = i + 1),
sepse kjo nuk bhet vetvetiu automatikisht, si n rastin e unazs For ... Next.
Edhe unaza Do ... While, mund t ndrprehet me urdhrin: Exit Do, pr kushtin e
caktuar brenda unazs.

Unaza While ... Wend


N versionet e mparshem t Visual Basic-ut ka ekzistuar edhe forma While ...
Wend e unazs, e cila prkrahet akoma, mirpo preferohet q t prdoren format e
reja, sepse unaza While ... Wend nuk mund t ndrprehet, si unaza For ... Next dhe
Do ... While.
Sintaksa e saj sht:
While Kushti
Urdhrat
Wend
i=1
While i <= 10
Debug.Print " I = " & i
i=i+1
Wend

Pra, fjala e rezervuar Loop, zvendsohet me Wend.

108

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Unaza Do ... Until


Unaza Do ... Until, sht e ngjashme me Do ... While, vetm se urdhrat brenda
unazs Do ... Until, ekzekutohen deri sa kushti pr dalje prej unazs sht False.
Me fjal tjera, deri sa kushti nuk potsohet, ekzekutohen urdhrat n unaz dhe kur
plotsohet kushti, unaza ndrpritet. Sintaksa e urdhrit Do ... Until sht:
Do Until kushti
Urdhri/at
Loop

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

Avni Rexhepi - Visual Basic


Do While x<=10
Urdhrat
Loop
Do
Urdhrat
Loop While x<=10

Llojet e t dhnave, konstantet, variablat


Do Until x> 10
Urdhrat
Loop
Do
Urdhrat
Loop Until x>10

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Pr ti ndar vlerat, secilit element t vargut, Vargu1, do t prdorej sintaksa


vijuese:
Vargu1(0) = 5
Vargu1 (1) = 12
Vargu1 (2) = 25

111

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Vargu1 (3) = 0
Vargu1 (4) = 8

Pr t ndryshuar vlern e elementit t katrt t vargut, nga zero n 45, do t shtypej:


Vargu1(3) = 45
Option Base
Kur t deklarohet vargu, elementi i par i vargut sht zero (0). Ka mundsi q t
ndryshohet renditja, duke br q elementi i par t jet nj (1). Pr t br kt, duhet
insertuar urdhrin Option Base 1, n pjesn General t modulit t projektit. Kjo duhet br
vetm nse dshironi q elementi i par t jet 1.

Deklarimi i vargut me fjaln e rezervuar To


Vargu mund t deklarohet edhe duke prdorur fjaln e rezervuar To, n sintaksn e
Indeksit. Pr shembull, nse dshironi t krijoni vargun me variabla integer, n t
cilin elementi i par ka numrin 1 ndrsa i fundit 5, duhet t shtypet:
Dim Vargu2(1 To 5) as Integer

Kjo sht nj form e leht e fillimit t numrimit t elementeve me vler t


ndryshme prej zeros.
Dim Vargu 2 (1 To 5) As Integer
Vargu2(1) = 5
Vargu2(2) = 10
Vargu2(3) = 15
Vargu2(4) = 20
Vargu2(5) = 25

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

prdoret Preserve, ather vlera e t gjitha elementeve t vargut do t ndryshohet


n vlern standarde t tipit t t dhnave (zero pr vlerat numerike dhe string i
zbrazt pr string me madhsi variabile). Stringu me madhsi fikse mbushet me
zero dhe variantat inicializohen me Empty, q mund t jet ose zero ose string zero.
- ArrayName emri i vargut
- Indeksi indeksi i elementit t fundit t vargut
- As fjala e rezervuar e VB q tregon deklarimin e tipit. Kur bhet ridimensionimi,
As sht opcionale.
- DataType sht tipi i t dhnave. Kur bhet redimensionimi, tipi sht opcional
dhe nuk mund t ndryshohet me fjaln e rezervuar ReDim, prveq nse vargu sht
i tipit Variant.
Prmes kodit vijues, do t shtonim nj element t ri, n vargun Vargu2, t
deklaruar paraprakisht:
ReDim Preserve Vargu2(6)
Vargu2(6)=30

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

- Tipi sht cilido tip valid i t dhnave n Visual Basic.


Kshtu, pr t deklaruar vargun me dy kolona dhe katr rreshta do t prdorej
sintaksa vijuese:
Dim iVarg(1,3) as Integer

Ndrsa vargu dy-dimensional mund t konsiderohet si nj drejkndsh (matric),


vargu tre-dimensional mund t konsiderohet si nj paralelopiped ose kub pr rastin
e dimensioneve t barabarta (disa rrafshe t matricave). Pr t deklaruar vargun
tredimensional, do t prdorej sintaksa vijuese:
Dim iVarg(1,2,1) as Integer

N vargun iVarg, vlerat e secilit element mund t prcaktohen si vijon:


iVarg(0,0,0) = 5
iVarg(0,1,0) = 187
iVarg(0,2,0) = 16
iVarg(1,0,0) = 12
iVarg(1,1,0) = 55
iVarg(1,2,0) = 7
iVarg(0,0,1) = 34
iVarg(0,1,1) = 13
iVarg(0,2,1) = 4500
iVarg(1,0,1) = 612
iVarg(1,1,1) = 9
iVarg(1,2,1) = 784

Njsoj, si pr rastin e vargut nj-dimensional, edhe ktu mund t prdoret fjala e


rezervuar To pr t deklaruar indeksin e rangut pr secilin dimension n vargun
shumdimensional. Pr shembull, prmes
Dim dVargu(1 To 5, 3 To 8, 3 To 5) As Double

do t deklarohej vargu tredimensional, me gjersi prej 5 kolonash, me gjasht


rreshta dhe me thelsi prej tre rrafshesh.
Gjithashtu, mund t prdoret ReDim pr redimensionim t vargut
shumdimensional. Nse prdoret fjala e rezervuar Preserve, mund t ndryshohet
vetm dimensioni i fundit dhe numri i dimensioneve nuk mund t ndryshohet.

114

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Prdorimi i Unazave pr prshkimin e vargjeve


Prmes unazave q i prshkruam paraprakisht mund t lvizim npr varg, duke
prshkuar elementet e tij, me rradh. Kjo mund t bhet pr prcaktimin e vlerave,
shtypjen ose ndryshimin e tyre. Prmes kodit vijues, n nj form me nj tast
komandues (cmdVargu) dhe nj teks boks (txtVargu) mund t shtypim me rradh
vlerat e elementeve t vargut me 20 elemente.
Private Sub cmdVargu_Click()
Dim i%
Dim iVarguIm%(19)
Dim MsgFillimi$
Dim MsgMesi$
Dim MsgUnaza$
Dim MsgIPlote$
'Prcakto vlerat e elementeve t vargut
'duke prdorur unazn pr t prshkuar elementet e vargut
For i% = 0 To 19
'Le t jet vlera e elementit sa dyfishi i i%
iVarguIm%(i%) = i% * 2
Next i%
'Krijo mesazhin MsgFillimi$ (string)
MsgFillimi$ = "Elementi: "
MsgMesi$ = ", Vlera e tij: "
'Prshko prsri vargun dhe paraqiti vlerat
For i% = 0 To 19
MsgUnaza$ = MsgUnaza$ & MsgFillimi$ & CStr(i%)
MsgUnaza$ = MsgUnaza$ & MsgMesi$ & iVarguIm(i%)
'Bashko mesazhin e unazs MsgUnaza
'me mesazhin e plot. Gjithashtu shto kalimin n rresht t ri
MsgIPlote$ = MsgIPlote$ & MsgUnaza$ & vbCrLf
'Pastro mesazhin e unazs ashtu q hapin e ardhshm
't paraqitet vlera e re
MsgUnaza$ = ""
Next i%
txtVargu.Text = MsgIPlote$
End Sub

Duhet pasur kujdes, q tipari MultiLine pr txtVargu t definohet si True.

115

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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.

Krijimi i vargut t kontrollave n modin e dizajnimit


Shum vargje t kontrollave do t krijohen gjat modit t dizajnimit. Pr t krijuar
nj varg kontrollash n form, duhet vepruar si vijon:
1. Krijohet kontrolla n form (p.sh Text Box), zgjedhet dhe kopjohet n memorje
prmes Edit-Copy (ose n ndonj mnyr tjetr).
2. Pastaj zgjedhet n meny Edit-Paste pr t krijuar kopjen e kontrolls dhe n kt
rast paraqitet dialogu 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 Yes (Po).

Fig. 2.5 Vargu i kontrollave

N kt rast, kur zgjedhet kontrolla e par nse


shikoni n dritaren e tipareve, n fushn ku
paraqitet emri i kontrolls s zgjedhur
momentalisht, do t shihni se ajo paraqitet si
Text1(0), kurse kur zgjedhet kontrolla e dyt,
ajo paraqitet si Text1(1). Pra indeksi paraqitet
n kllapa, kurse emri i kontrolls sht i njjt
pr t gjitha kontrollat e vargut t kontrollave.
Nse hapet lista pr t shikuar t gjitha
kontrollat n form (Fig. 2.5), ather shihet
edhe vargu i kontrollave Text1(0) dhe Text1(1)
n form.

Pr secilin antar t vargut t kontrollave prcaktohet edhe vlera e tiparit Index.


Nse vazhdohet me Edit-Paste, vazhdon krijimi i antarve t rinj t vargut t
kontrollave (Text1(0), Text1(1), Text1(2), ...Text1(n)).
Krijimi i vargut t kontrollave mund t bhet edhe duke krijuar kontrolln e par
dhe duke prcaktuar tiparin Index, i cili fillimisht nuk ka vler fare. Nse vendosim
vlern 0 pr antarin e par t vargut, ather prmes Copy-Paste do t krijohet
116

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

automatikisht vargu i kontrollave me indeksat vijues: 1, 2...n. N kt rast, nuk do


t paraqitet fare pyetja, se a dshironi t krijoni varg t kontrollave.
Shembull:
Le t krijojm nj projekt t ri dhe n form vendosim nj tekst-boks dhe vargun e
tri tasteve komanduese (Tasti(0), Tasti(1), Tasti(2)). (Fig. 2.6).
Klikojm dy her, njrin prej
tasteve komanduese dhe kalojm n
dritaren e kodit. Aty automatikisht
do t prgatitet struktura pr
procedurn e ngjarjes: Private Sub
Tasti_Click(Index As Integer)
dhe End Sub. Pra si shihet, tani
procedura e ngjarjes ka si argument
edhe indeksin e kontrolls.
Fig. 2.6 Vargu i kontrollave
Shkruajm kodin si n vijim:
Private Sub Tasti_Click(Index As Integer)
Text1.Text = "Klikuat Tastin me numr: " & Index
End Sub

Ekzekutojm programin dhe kur klikojm tastet komanduese, n teskt-boks shtypet


teksti: Klikuat Tastin me numr: 0, pr tastin e par; Klikuat Tastin me numr: 1,
pr tastin e dyt dhe Klikuat Tastin me numr: 2, pr tastin e tret.
Pra shihet se kemi vetm nj procedur pr t tri kontrollat. Kontrolla prcillet
prmes numrit t indeksit t kontrolls.

Krijimi i vargut t kontrollave gjat ekzekutimit


Vargu i kontrollave mund t krijohet edhe n modin e ekzekutimit. Kjo paraqet nj
lehtsim, pasi q krijimi i vargut t kontrollave n modin e dizajnimit, kur kemi t
bjm m numr t madh t kontrollave sht pun e mrzitshme dhe e
mundimshme. Vendosja n pozita precize dhe me distanca t barabarta sht pun
e mundimshme. N kt aspekt, Visual Basicu ofron zgjidhjen prmes urdhrit
Load, i cili krkon q t krijohet vetm elementi i par i vargut t kontrollave gjat
modit t dizajnimit. Elementet tjera t vargut krijohen sipas nevojs n modin e
ekzekutimit. Sipas nevojs, prcaktojm tiparet: Left, Top, Width dhe Height pr t
prcaktuar pozitat e kontrollave dhe madhsit e tyre. Kontrollat e vargut mund t
paraqiten dhe t largohen n mnyr dinamike, sipas nevojs.
117

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

N shembullin vijues, le t shohim si bhet krijimi i vargut t kontrollave n modin


e ekzekutimit. Vendosim nj label dhe nj tekst-boks n form, si n Fig. 2.7a.
Prcaktojm tiparet vijuese pr to:
Objekti
Form1

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

Klikojm dy her n form dhe kalojm n dritaren e kodit, n procedurn e


ngjarjes Form_Load ( ). Shkruajm kodin vijues:
Private Sub Form_Load()
Dim i As Integer, EmrateMuajve As String
EmrateMuajve = "FebMarAprMayJunJulAugSepOctNovDec"
' txtMuaji(0) = 1, nse dshirojm numrin e muajit n tekst-boks
For i = 1 To 11
Load lblMuaji(i)
Load txtMuaji(i)
lblMuaji(i).Top = lblMuaji(i - 1).Top + txtMuaji(0).Height
txtMuaji(i).Top = txtMuaji(i - 1).Top + txtMuaji(0).Height
' txtMuaji(i).Text = i + 1, pr numrin e muajit n tekst-boks
lblMuaji(i).Caption = Mid(EmrateMuajve, 3 * i - 2, 3)
lblMuaji(i).Visible = True
txtMuaji(i).Visible = True
Next i
End Sub

118

Avni Rexhepi - Visual Basic

Fig. 2.7 Vargu i kontrollat i krijuar gjat


ekzekutimit

Llojet e t dhnave, konstantet, variablat

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.

Kur t ekzekutohet programi, do t krijohen labelat dhe tekst-bokset pr t gjith


muajt e vitit (Fig. 2.7 b).
Shembull i ngjashm sht edhe projekti Tabela e shumezimit.vbp, q gjindet n
folderin e njjt.
Duhet pasur kujdes, q kontrollat q krijohen n modin e ekzekutimit, fillimisht
nuk shihen, sepse tipari i tyre Visible ka vlern fillestare False, prandaj duhet t
ndryshohet n True, pr tu paraqitur, prndyrshe nuk do t shihen fare.
N mnyr t ngjashme mund t krijohet numr i fardoshm i kontrollave. Pr t
ndryshuar vlern fillestare t indeksit, q t mos jet zero (0) si deri m tani, duhet
t krijohet kontrolla n modin e dizajnit dhe tipari indeks i saj t vendoset n vlern
e dshiruar fillestare. Pastj prmes Load, n modin e ekzekutimit shtohen
elementet tjera deri n antarin e fundit me numrin e dshiruar t indeksit q
prcakton numrin e antarve q do t krijohen. Urdhri Load kopjon t gjitha
tiparet e elementit me numrin m t vogl t indeksit, sado q t jet ai. Pr
shembull mund t krijohet vargu me indekse prej 1 deri n 2002, ose prej 250 deri
n 500, sipas dshirs. P.sh., n modin e dizajnit mund t krijohet txtViti(1998) dhe
pastaj n modin e ekzekutimit t ekzekutohen urdhrat vijues:
For Viti = 1999 to 2003
Load txtViti(Viti)
Next Viti

Sa i prket vargjeve t kontrollave, n folderin vargjet e kontrollave mund t


shikoni edhe shembujt: Tabela e shumezimit.vbp, Telefoni.vbp dhe Dielli.vbp.

119

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Prdorimi i fotografive dhe grafiks


N Visual Basic fotografite mund t paraqiten n tri vende: n form, n kontrolln
PictureBox dhe n kontrolln Image.
Fotografia mund t krijohet ose t vije prej ndonj programi pr vizatime (Paint
Programet), si ato q jan n kuadr t sistemit operativ Windows, aplikacioneve
grafike, librarive t ClipArt-eve etj. Visual Basic-u ofron nj numr t madh t
ikonave q mund t prdoren n aplikacione si dhe lejon shtimin e fajllave *.jpg,
*.gif si dhe *.bmp, *.ico, *.dib, *.cur, *.wmf dhe *.emf.
Pr insertimin e fotografive prdoren teknika t ndryshme varishst prej asaj se a
shtohet fotoja n modin e dizajnimit apo n modin e ekzekutimit.

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.

Fig. 2.8 Kontrolla PictureBox

Prndryshe, n PictureBox mund t


vendosim edhe ndonj foto apo figur
me Copy-Paste. P.sh, n Microsoft
Word, mund t vizatojm ndonj prej
figurave me an t kontrolls
AutoShapes apo t insertojm ndonj
ClipArt, e pastaj me Copy-Paste ta
bartim n kontrolln PictureBox.
Nse tipari AutoSize sht prcaktuar
si True, ather kontrolla PictureBox
automatikisht do t marr madhsin
q i prshtatet madhsis s fajllit t
zgjedhur pr tu paraqitur n t.

Pr t insertuar fotografi n modin e ekzekutimit prdoret funksioni LoadPicture,


si n vijim:
120

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

picFoto1.Picture = LoadPicture("C:\Fotot\Kompjuteri.bmp")

Gjithashtu, mund t bhet kopjimi i fotografis prej nj kontrolle PictureBox n


tjetrn, prmes urdhrit:
picFoto1.Picture = picFoto2.Picture

Fshirja e fotografis mund t bhet prmes urdhrit:


picFoto1.Picture = LoadPicture("")

(Shikoni shembullin Fshirja dhe kopjimi.vbp).


Pr t krijuar simulime ose animacione, mund t manipulohet me tiparet grafike
dhe metodat e kontrolls PictureBox, n modin e ekzekutimit. Tiparet grafike dhe
procedurat e ngjarjeve jan t nevojshme pr operacionet e shtypjes n modin e
ekzekutimit, si modifikimi i formatit t forms pr t shtypur n t, etj.
Vetm kontrolla PictureBox dhe kontrolla Data mund t prdoren n format MDI
(t cilat do t shpjegohen m von), pr t grupuar kontrollat e ndryshme pr
krijimin e shiritave t veglave ose shiritat e statusit. Gjithashtu, kontrolla
PictureBox mund t prdoret edhe si destinacion pr kontaktin DDE.
Shembull:
Fillojm nj projekt t ri dhe n form insertojm nj kontroll PictureBox dhe e
emrtojm picDielli (Tipari Name - picDielli) . Kalojm n Microsoft Word dhe
insertojm figurn e diellit (N shiritin e veglave Draw, zgjedhim AutoShapes dhe
pastaj prej kategoris Basic Shapes zgjedhim figurn e diellit dhe e insertojm n
faqe. Kt mund ta bjm edhe prmes menys: Insert-Picture-AutoShapeBasicShapes). Pastaj e ngjyrosim me ngjyr t verdh dhe e kopjojm, me EditCopy (ose CTRL+C) dhe kalojm prsri n dritaren e Visual Basic-ut. Zgjedhim
kontrolln picDielli dhe me Edit-Paste (ose CTRL+V) e kopjojm n t figurn e
diellit. Pastaj insertojm edhe dy taste komanduese: cmdStarto dhe cmdRifillo (Fig.
2.9).
N dritaren e tipareve ckaktojm tiparet pr picDielli: BorederStyle-None, Left100, Top-100, Height 1000, Width-1000. (Njesia matse sht Twips). Caktojm
tiparin Caption, t tasteve komanduese si: Starto levizjen dhe Rifillo. Pastaj duke
klikuar dy here n njrin prej tasteve komanduese kalojm n dritaren e kodit dhe
shkruajm kodin vijues:

121

Avni Rexhepi - Visual Basic

Fig. 2.9 Zhvendosja n modin e


ekzekutimit

Llojet e t dhnave, konstantet, variablat


Private Sub cmdStarto_Click()
For i = 1 To 5000
picDielli.Left = i
Next i
For i = 100 To 1800
picDielli.Top = i
Next i
End Sub
Private Sub cmdRifillo_Click()
picDielli.Left = 100
picDielli.Top = 100

End Sub

Kur t shtypet tasti Starto levizjen, prmes unazave For-Next, do t bhet


zhvendosja e kontrolls picDielli, n skajin e djatht posht t forms. Prmes tastit
Rifillo, kthehet n gjendjen fillestare. Pr t br lvizjen e kontrolluar, mund t
bhet kombinimi me kontrolln Timer, e cila do t shpjegohet m von.
Shembull:
Kontrolla PictureBox mund t shfrytzohet edhe si tabel pr shkruarjen e tekstit.
Shtypja e tekstit n kontrolln PictureBox bhet prmes metods Print.
Insertojm nj kontroll PictureBox n form dhe nj tast komandues (Fig. 2.10).
Emrtojm kontrollat me emrat: picRezultati dhe cmdPastro. Definojm dy
variabla t tipit Integer (x dhe y) dhe shkruajm kodin si n vijim. Prndryshe, ky
kod do t mund t ishte pjes e ndonj projekti m t gjer, ku variablat x dhe y do
t mirreshin prej ndonj kontrolle t tipit TextBox ose do t krkoheshin si vlera
hyrse prej shfrytzuesit, prmes InputBox-it.
Private Sub picRezultati_Click()
Dim x, y As Integer
x=5
y=2*x
picRezultati.Print " x = "; x
picRezultati.Print " y = 2 * x = "; y
picRezultati.Print ""
picRezultati.Print "Kliko tastin Pastro"
End Sub
Private Sub cmdPastro_Click()
picRezultati.Cls
End Sub

Fig. 2.10 Shtypja e tekstit

122

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Pr shtypjen e rreshtit t zbrazt, jipet metoda Print pa parametra ose me string t


zbrazt, kurse pastrimi i kontrolls PictureBox bhet prmes metods CLS. Kur n
PictureBox sht insetruar ndonj foto prmes tiparit Picture n modin e dizajnimit
ose n modin e ekzekutimit, ather metoda CLS nuk ka efekt.

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

Pr t krijuar kufirin (Border) prreth kontrolls Image, prcatohet tipari


BorderStyle 1-Fixed Single.
Kur klikohet kontrolla Image nuk paraqitet e shtypur dhe nuk vrehet efekti i
shtypjes. Pr t simuluar efektin mund t prdoret ngjarja MouseDown (Tasti i
mausit i shtypur), n t ciln p.sh., ndryshojm tiparin BorderStyle.
Shembull:
N form insertojm tri kontrolla Image (imgFoto1, ImgFoto2, ImgFoto3) dhe nj
tekst-boks (Text1). Prmes Copy-Paste, prej Microsoft Wordit, marrin nj ClipArt
dhe e insertojm n kontrollat Image dhe pr t trija caktojm tiparet: Heigth-1000,
Width-1000 dhe Stretch-True. Gjithashtu caktojm tiparet Appearance dhe
BorderStyle: imgFoto1: Appearance-1, BorderStyle-0; imgFoto2: Appearance-1,
BorderStyle-1; imgFoto3: Appearance-0, BorderStyle-1.
Pr t fituar efektin e zgjedhjes dhe
t shtypjes, shkruajm kodin pr
ngjarjet: MouseMove (kur lvizet
kursori mbi kontroll) dhe
MouseDown (Kur shtypet tasti i
mausit n kontroll). N tekst-boks
shtypim tekstin pr secilin veprim,
pr t sqaruar tiparin i cili
ndryshohet kur lvizim ose kur
shtypim tastin e mausit.
Fig. 2.10 Kontrolla Image
Kodi pr ngjarjet MouseMove dhe MouseDown:
Private Sub ImgFoto1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
imgFoto1.BorderStyle = 1
Text1.Text = "BorderSyle = 1 - FixedSingle"
End Sub
Private Sub ImgFoto1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
Single)
imgFoto1.BorderStyle = 0
Text1.Text = "BorderSyle = 0 - None"
End Sub
Private Sub ImgFoto2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
imgFoto2.BorderStyle = 0
Text1.Text = "BorderSyle = 0 - None"

124

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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

Kontrolla Shape dhe kontrolla Line


Kontrollat Shape dhe Line jan t prshtatshme pr vizatimin e
elementeve grafike n siprfaqe t forms. Mirpo kto kontrolla nuk
prkrahin ngjarjet dhe thjesht prdoren vetm pr qllime dekorative.
Pr t kontrolluar pamjen e kontrolls Shape jan n dispozicion disa tipare.
Tipari Shape (Forma) mundson
paraqitjen e drejtkndshit, katrorit,
rrethit, elipss, drejtkndshit dhe t
katrorit me knd (skaje)
rrumbullaksuara. Tiparet
BorderColor dhe FillColor mund t
prcaktohen pr t ndryjuar
ngjyrn. Tiparet BorderStyle,
BorderWidth, FillStyle dhe
DrawMode kontrollojn mnyrn e
vizatimit kufinjve t kontrolls
Shape si dhe llojet e ndryshme t
mbushjes s formave t vizatuara.
Fog. 2.11 Kontrollat Shape dhe Line

125

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

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.

Vizatimi i vijave dhe drejtkndshave n modin e ekzekutimit


Pr t vizatuar vijat dhe drejtkndshat n modin e dizajnit, prdoret metoda Line.
Metoda Line vizaton vijat dhe drejtkndshat n ndonj objekt. Sintaksa e saj sht:
object.Line [Step] (x1, y1) [Step] - (x2, y2), [color], [B][F]
ku:
Pjesa
object

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

Avni Rexhepi - Visual Basic

(x2, y2)

color

Llojet e t dhnave, konstantet, variablat


relativisht ndaj piks fillestare.
Krkohet patjetr. Vlerat e tipit Single, q
tregojn koordinatat e piks s fundit t vijs
q vizatohet.
Opcionale. Vler e tipi Long Integer q
tregon ngjyrn RGB q prdoret pr
vizatimin e vijs. Nse nuk jepet, prdoret
tipari ForeColor. Mund t prdorent funksioni
RGB ose QBColor pr t prcaktuar ngjyrn.
Opcionale. Nse caktohet, bn q t
vizatohet drejtkndshi, duke prdorur
koordinatat pr t caktuar pikat e kndve t
kundrta t drejtkndsshit.
Opcionale. Nse opcioni B sht prdorut,
opcioni F specifikon se drejkndshi sht i
mbushur me ngjyrn e prdorur pr
vizatimin e vijs. Nuk mund t prdoret nse
nuk prdoret edhe B. Nse prdoret vetm
B, drejtkndshi mbushet me vlerat
momentale t FillColor dhe FillStyle. Vlera
standarde pr FillStyle sht Transparent.

Pr t vizatuar vijat e lidhura, duhet filluar vijn e ardhshme n pikn fundore t


vijs paraprake. Gjersia e vijs varet nga tipari DrawWidth. Mnyra se si vizatohet
vija ose drejtkndshi n prapavi varet prej tiparit DrawMode dhe DrawStyle. Kur
ekzekutohet Line, tiparet CurrentX dhe CurrentY vendosen n pikn e fundit t
specifikuar prmes argumenteve.
Shembull:
Prmes kodit vijues, vizatohet
drejtkndshi si n fig. 2.11.

Fig. 2.11 Vijat n modin e ekzekutimit

Private Sub Form_Click()


Form1.CurrentX = 1000
Form1.CurrentY = 500
ForeColor = vbBlue
DraWidth = 4
Line -Step(3000, 0)
Line -Step(0, 1500)
Line -Step(-3000, 0)
Line -Step(0, -1500)
End Sub

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

Avni Rexhepi - Visual Basic

Llojet e t dhnave, konstantet, variablat

ather, do t vizatohej drejtkndshi i njjt. Nse pas shkronjs B vendoset edhe


F, ather do t isht i mbushur me ngjyr. Mirpo, vizatimi i vijave dhe
drejtkndshave prmes kodit vije n shprehje jo pr vizatimin e nj vije apo
drejtkndshi t vetm si n kt rast, por kur duhet vizatuar m shum vija ose
drejtkndsha, si n shembullin vijues.
Shembull:
Prmes kodit vijues forma do t mbushet me drejkndsha me ngjyra.
Shembull:
Private Sub Form_Click()
Dim X, Y, F, F1, F2, i ' Deklarimi i variablave
ScaleMode = 3 ' Caktimi i ScaleMode ne Pixels
X = ScaleWidth / 2 ' Qendra Horizontale
Y = ScaleHeight / 2 ' Qendra Vertikale
DraWidth = 8 ' Caktimi i DraWidth.
For i = 50 To 0 Step -2
F = i / 50 ' Llogaritjet ne unaz
F1 = 1 - F: F2 = 1 + F
ForeColor = QBColor(i Mod 15) ' Ngjyra (Foreground color).
Line (X * F1, Y * F1)-(X * F2, Y * F2), , BF
Next i
End Sub

Prmes variablave X dhe Y


definojm qendrn dhe ato kan
funksionin e koordinatave
CurrentX dhe CurrentY. Njsi
matse sht zgjedhur Pixel-i (Pixel
- Picture Element, pika e
fotografis n ekran). Prmes
unazs For...Next me hap 2,
vizatohen 25 vija (drejtkndsha)
me ngjyra t ndryshme.

Fig. 2.11 Metoda Line, modi i ekzekutimit

128

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Hyrjet dhe daljet


Deri m tani jemi bazuar n vlerat t cilat i kemi krijuar prmes urdhrave pr
ndarjen e vlerave ose i kemi shtypur n tekst-bokse t ndryshme. Nse nuk sht e
nevojshme q vlera hyrse t qndroj tr kohn n form, ather vlerat hyrse
mund t lexohen edhe prmes funksionit/urdhrit Input Box (kutis hyrse, nj
dritare speciale e dialogut, q shrben pr leximin e vlerave hyrse). Gjithashtu
edhe shtypja e rezultateve mund t bhet prmes funksionit/urdhrit Message Box
(kutija e mesazheve, dritare n t ciln shtypen rezultatet ose vrejtjet e ndryshme,
ashtu q t jen m t dukshme dhe t trheqin vrejtjen e shfrytzuesve).
Leximi i vlerave hyrse mund t bhet edhe prej fajllave t ndryshm t cilve
Visual Basic-u ju qaset prmes urdhrit Input #, kurse shtypja e rezultateve dalse
mund t bhet edhe n fajlla t ndryshm ose n letr, prmes urdhrit Print
(gjegjsisht metods Print (Print method)).

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)

ku, Prompt paraqet tekstin udhzues, Title titullin e dritares s InputBox-it,


n ekran do t paraqitet nj dritare (InputBox) si n fig.2.12. Prompt dhe Title jan
t tipit String (Variabla tekstuale).

Fig. 2.12 Input Box

N fushn prkatse shtypet teksti, i


cili kur t shtypet tasti komandues
OK, vlern e dhn ia kthen
variabls q e ka thirrur (strEmri).
Nse shtypet Cancel, ather
anulohet veprimi dhe mbyllet
InputBox-i.

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

formn e prgjithshme t funksionit InputBox (Fig. 2.13). Kjo njihet si QuickInfo


(ndihm e shpejt). Parametrat opcional jan t shnuar n kllapa t mesme.

Fig. 2.13 Forma e prgjithshme e urdhrit InputBox


- Prompt - teksti udhzues q paraqitet n Input Box,
- Title - titulli i dritares,
- Default - teksti ose vlera standarde qe paraqitet n fushen e Input-Box-it, pr t
mos pasur nevoj t shtypet prsri. Zakonisht prdoret n rastet kur ekziston
ndonj vler e shpesht, me qllim t kursimit t kohs, p.sh.
- XPos,YPos - koordinatat e skajit t majt t eprm t InputBox-it. Nse nuk
definohen, InputBox paraqitet n mes t ekranit.
- HelpFile - paraqet n InputBox edhe tastin Help, i cili do t ofronte ndihm shtes
pr prdorimin e InputBox-it
- Context - prcaktimi i pozits (pjess) s Help fajllit q do t paraqitet nse
definohet HelpFile pr InputBox-in.
Prveq Prompt-it, t gjith parametrat tjer jan opcional.
Shembull:

Fig. 2.14a Shembull me InputBox

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.

Ather teksti i shtypr n InputBox, i ndahet variabls strEmri, e cila shtypet n


kontrolln picRezultati (Fig. 2.14b), prmes urdhrit picRezultati.Print strEmri.
Private Sub cmdEmri_Click()
Dim strEmri, Prompti, Titulli As String

130

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Prompti = "Ju lutemi shtypni: Emrin dhe Mbiemrin"


Titulli = "Emri dhe mbiemri"
strEmri = InputBox(Prompti, Titulli)
picRezultati.Print strEmri
End Sub

Sa her q t shtypet tasti


komandues do t paraqitet
InputBox-i. N kontrolln
picRezultati do t paraqiten me
rradh emrat e shtypur n InputBox.
N kuadr t ndonj projekti emrat
e till me rradh do t
regjistroheshin n ndonj fajll t
veant, n baza t t dhnave, etj.
Fig. 2.14b Rezultati prej InputBox-it

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

ku, Prompt paraqet tekstin e mesazhit, Title titullin e dritares s MsgBox-it.


Prompt dhe Title, jan variabla t tipit String. Forma e prgjithshme e funksionit
MsgBox sht:
MsgBox (prompt[, buttons] [, title] [, helpfile, context])

Vetm Prompt-i krkohet patjetr, kurse parametrat tjer jan opcional.

Fig. 2.15 - MsgBox

Nse nuk definohet parametri Buttons, ather


nnkuptohet forma thjesht e MsgBox-it q paraqet
vetm tastin OK n MsgBox, me t cilin konfirmojm
leximin e mesazhit dhe mbyllim dritaren e MsgBox-it.
Prmes parametrave Prompt dhe Title, duke i kombinuar
me ndonj string, definojm tekstet udhzuese dhe
shpjeguese pr MsgBox.
131

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Parametri Buttons, mundson paraqitjen e formave t ndryshme t MsgBox-ave, me


disa lloje t tasteve komanduese. N tabeln vijuese, jan dhn disa nga
Konstantet m t shpeshta pr parametrin Buttons:
Konstanta
VbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbMsgBoxHelpButton

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

strEmri = InputBox("Jepni Emrin dhe Mbiemrin", "Emri dhe Mbiemri")


Mesazhi = "A e pranoni antarin e ri?"
' Defino mesazhin.
Stili = vbYesNo + vbCritical + vbDefaultButton1
' Defino parametrin Buttons.
Titulli = "MsgBox - Demonstratim"
' Defino Titullin.
Pergjegja = MsgBox(Mesazhi & vbCrLf & strEmri, Stili, Titulli)
If Pergjegja = vbYes Then
' Pergjigja - Yes. Kryhen veprimet vijuese.
lblEmri.Visible = True
txtEmri.Visible = True
txtEmri.Text = strEmri
Else
' Pergjigja - No.
txtEmri.Visible = True
txtEmri.Text = "Nuk pranohet. Perseriteni." ' Veprimet per No.
End If
End Sub

Prmes kodit do t paraqesim


InputBox-in pr regjistrimin e emrit
dhe mbiemrit (fig. 2.17c). Pasti t
shtypet emri dhe mbiemri dhe
pastaj tasti komandues OK, n
ekran do t paraqitet MsgBox-i (Fig.
2.17d). Varesisht prej pergjigjes s
dhn pr MsgBox-in, ekzekutojm
urdhrat n vazhdim. Nse shtypet
tasti Yes, fitohet rezultati si n fig.
2.17e. Nse shtypet tasti No, fitohet
rezultati si n fig. 2.17f.
Fig. 2.17a Forma n modin e dizajnimit
Shembulli sht i ruajtur me emrin InputBox dhe MsgBox.vbp.
Si shihet prej kodit, pr stilin e MsgBox-it, kemi definuar:
Stili = vbYesNo + vbCritical + vbDefaultButton1

Variabla Pergjegja, merr rezultatin prej MsgBox-it:


Pergjegja = MsgBox(Mesazhi & vbCrLf & strEmri, Stili, Titulli)

Pr t kaluar kursorin n rresht t ri (Efekti i njjt me shtypjen e tastit ENTER, n


editort e teksteve) Visual Basic-u ka urdhrin vbCrLf (Visual Basic Carrier
Return, Line Feed). Pr vlersimin e prgjegjes prej MsgBox-it, kemi prdorur
strukturn If...Then...Else.

133

Avni Rexhepi - Visual Basic

Fig. 2.17b Gjendja fillestare

Funksionet dhe procedurat e funksioneve

Fig. 2.17c dhe d Input Box dhe MsgBox

Fig. 2.17e Rezultati pr Yes

Fig. 2.17e Rezultati pr No

Format dhe dritaret modale pr dialog


Dritaret pr dialog jan modal (modale) ose modeless (jomodale). Dritarja
modale pr dialog duhet t mbyllet para se t mund t vazhdohet me prdorimin e
aplikacionit. Pr shembull, dritarja pr dialog sht modale nse krkon q t
shtypet OK ose Cancel para se t kalohet n ndonj form ose dialog tjetr.
Dritaret pr dialog t cilat paraqesin mesazhe t rndsishme krkohet q t jen
gjithnj modale.
Dritaret jomodale pr dialog lejojn kalimin e fokusit prej nj dialogu n tjetrin ose
n ndonj form tjetr pa pasur nevoj q se pari t mbyllen. Mund t vazhdohet t
134

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

punohet n ndonj pjes tjetr t aplikacionit, deri sa dritarja pr dialog akoma


sht e hapur. Dritaret jomodale jan shum t rralla.
Nj shembull i dritares jomodale pr dialog sht dritarja Find (gjeje) e cila
shrben pr krkimin e fjalve t caktuara n tekst.
Pr t paraqitur ndonj form si form modale, prdoret urdhri Show (paraqite)
me argumentin vbModal (konstante me vler 1):
frmForma1.Show vbModal

Pr paraqitje t forms, si form jomodale, prdoret urdhri i njjt por pa


argumentin vbModal:
frmForma1.Show

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Leximi i t dhnave prej fajllit qasja sekuenciale


Prveq krijimit t t dhnave prmes programit dhe ndarjes s vlerave prmes
urdhrave pr ndarjen e vlerave, t dhnat mund t mirren edhe prej fajllave t
ndryshm. Pr krijimin e fajllave tekstual rekomandohet prdorimi i File System
Objects (Objekteve t sistemit pr fajllat), mirpo mund t prdoren edhe mnyrat
e mhershme pr fajllat me qasje sekuenciale. Qasja sekuenciale sht e
prshtatshme kur duhet prpunuar fajllat q prmbajn vetm tekst, si jan fajllat
e krijuar me editor t teksteve, ku t dhnat nuk ndahen n seri t rekordeve.
Qasja sekuenciale nuk sht e prshtatshme pr ruajten e serive t gjata t numrave,
sepse secili numr ruhet si karakter (string) dhe kshtu numri me katr shifra do t
krkonte 4 bajta (pr do karakter nga nj bajt), n vend se t ruhet si Integer, q
krkon vetm dy bajta.

Hapja e fajllit pr qasje sekuenciale


Kur hapet fajlli pr qasje sekuenciale, ai hapet pr t kryer n t njrin prej
operacioneve vijuese: Input (leximin e karaktereve prej fajllit), Output (shtypjen e
karaktereve n fajll) ose Append (shtimin, bashkangjitjen e karaktereve n fajll).
Sintaksa e urdhrit Open sht si vijon:
Open pathname For [Input | Output | Append] As filenumber [Len = buffersize]

ku - pathname, shtegu i fajllit q hapet pr qasje sekuenciale, filenumber-numri i


fajllit dhe buffersize-madhsia e baferit.
Kur hapet fajlli sekuencial pr Input (hyrje), ai duhet t ekzistoj paraprakisht,
prndryshe lajmrohet gabim. Kur tentohet t hapt fajlli q nuk ekziston prmes
Output apo Append, ather urdhri Open s pari e krijon fajllin e pastaj e hap at
pr ta mbushur me t dhna. Opcioni Len (Gjatsia) prcakton numrin e
karaktereve pr ti vendosur n bafer, gjat kopjimit t t dhnave mes fajllit dhe
programit. Pas hapjes pr Input, Output ose Append, fajlli duhet t mbyllet prmes
urdhrit Close (Mbylle).

Leximi i t dhnave
T dhnat mund t mirren prej fajllave, prmes urdhrit Input #.
Input #filenumber, varlist

Ku, filenumber numri i fajllit, varlist lista e variablave t ndara me presje, q


marrin vlerat q lexohen prej fajllit.
Prmes programeve pr editim t tekseve mund t krijojm fajlla t t dhnave. T
dhnat n fajll krijohen duke i shtypur n rreshta t veant ose duke i shkruar disa
t dhna n nj rresht por duke i ndar me presje (Comma-Delimited Text).
136

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Zakonisht, t dhnat e ndrlidhura grupohen n nj rresht. Si rregull e zakonshme,


shkruarja e t dhnave tekstuale (variablave t tipit String) bhet nn thonjza, pr
ti dalluar prej t dhnave numerike dhe t llojeve tjera. Prmes Notepad.Exe,
editorit m t thjesht t teksteve t sistemit operativ Windows, shkruajm t
dhnat dhe ruajm fajllin ose vetm krijojm fajllin e zbrazt dhe e ruajm, e pastaj
e mbushim me t dhna prmes programit. Pr shembull, n nj fajll ndodhen t
dhnat pr emrat e studentve, numrat e lndve dhe notat e studentve pr lnd,
si vijon:
"Shpresa Berisha", 101, 9
"Albin Topi
", 101, 8
"Shpresa Berisha", 102, 10
"Albin Topi
", 102, 10

Caktojm nj gjatsi standarde pr t gjith emrat. T dhnat ndahen me presje.


Fajlli sht i ruajtur n shtegun: C:\Temp\Notat.txt.
T dhnat u ndahen variablave nj nga nj me rradh n mnyrn si jan paraqitur
n fajll. Kshtu Shpresa Berisha do t jet vlera e par q do ti ndahet nj
variable. Pasi t gjitha elementet e rreshtit t par, tu ndahen variablave, krkesat
tjera pr vlera do t lexojn prej rreshtave vijues.
T dhnat e ruajtura n fajlla mund t lexohen me rradh (n mnyr sekuenciale)
dhe tu ndahen variablave, prmes hapave vijues:
1. Fajllit i ndahet nj numr pr referenc, prej 1 deri n 255
2. Ekzekutohet urdhri:
Open Fajlli For Input As #n

Ku n numri referues pr fajllin. Kjo procedur njihet si Hapja e fajllit pr


lexim (Opening File for Input), n kuptimin q programi merr vlera hyrse
prej fajllit. Kjo procedur krijon nj linj komunikimi ndrmnet kompjuterit
dhe njsis s diskut pr t lexuar prej diskut. T dhnat mund t vijn si vlera
hyrse n program prej fajllit t specifikuar dhe tu ndahen variablave n
program.
3. T dhnat e elementeve lexohen me rradh, nj nga nj, prej fajllit me an t
urdhrit Input #.
Input #n, Var

bn q programi t shikoj n fajll pr vlern e ardhshme n dispozicion dhe


tia ndaj at vler variabls var. N fajll, t dhnat e veanta jan t ndara me
presje ose n rreshta t veant. Variablat n urdhrin Input # duhet t jen t
tipit t njjt me t dhnat q i ndahen atyre prej fajllit (String, numr, etj).
4. Pasi t lexohen t dhnat e dshiruara, fajlli mbyllet prmes urdhrit:
Close #n

137

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

Prmes kodit vijues, n tabeln picTabela,do t fitohen rezultatet e ngjashme pr t


dy rastet.
Private Sub cmdShtypja_Click()
Dim Adresa As String, Numri As Single
picTabela.Cls
Adresa = "Rruga e Tirans"
Numri = 22
picTabela.Print "Adresa sht: "; Adresa; " -"; Numri
End Sub
Private Sub cmdInput_Click()
Dim Adresa As String, Numri As Single
picTabela.Cls
Open "C:\Temp\Adresat.txt" For Input As #1
Input #1, Adresa
Input #1, Numri
picTabela.Print "Adresa sht: "; Adresa; " -"; Numri
Close #1
End Sub

138

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

N form, insertojm kontrollat, si n Fig. 2.19.


Emrtojm kontrollat: picTabela,
cmdNotat, cmdTeGjithe. Prmes
tastit Nota (cmdNotat) do t
lexojm t dhnat pjes pjes, kurse
prmes tastit T gjitha notat, do
ti lexojm t gjitha t dhnat prej
fajllit, prmes nj unaze. Kalojm
n dritaren e kodit dhe shkruajm
kodin pr tastet komanduese.
Deklarojm variablat Emri - String
dhe NrLendes dhe Nota - Integer.
Pr t lexuar t dhnat n nj rresht,
i lexojm pr do urdhr Input #
nga tri variabla.
Fig. 2.19 Leximi i t dhnave prej fajllit
Mirpo si shihet prej kodit, pr t lexuar t dhnat pr studentt, pr do student,
duhet dhn urdhrin e veant Input#. Pr t shtypur ato t dhna, kemi urdhrat
prkats: picTabela.Print variablat .
Private Sub cmdNotat_Click()
Dim Emri As String, NrLendes, Nota As Integer
picTabela.Cls
picTabela.Print "Studenti", , "Lenda Numer", "Nota"
picTabela.Print
Open "C:\Temp\Notat.txt" For Input As #1
Input #1, Emri, NrLendes, Nota
picTabela.Print Emri, NrLendes, Nota
Input #1, Emri, Lenda, Nota
picTabela.Print Emri, NrLendes, Nota
Close #1
End Sub
Private Sub cmdTeGjithe_Click()

139

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

Pr tastin komandues T gjitha notat, pr t lexuar t gjitha t dhnat prej


fillimit deri n fund t fajllit, prdorim unazn me urdhrin:
While Not EOF(1) Deri sa nuk bhet fundi i fajllit (1)

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

do t shtyp rezultatin e prodhimit (shumzimit) t dy variablave.

Leximi i rreshtit Line Input #


T dhnat nga fajlli mund t lexohen edhe n rreshta prmes urdhrit
Line Input #n, ashtu q i tr rreshti i tekstit n fajll lexohet prnjher, dhe i
ndahet nj variable. Nse n shembullin paraprak, e shtojm edhe nj tast
komandues Rreshti (cmdRreshti) dhe pr t shkruajm kodin si n vijim:
Private Sub cmdRreshti_Click()
Dim RreshtiTekstit
picTabela.Cls
Open "C:\Temp\Notat.txt" For Input As #1 ' Hape fajllin.
Do While Not EOF(1) ' Unaza deri n fund t fajllit.
Line Input #1, RreshtiTekstit ' Lexo rreshtin, ndaja Variabls
picTabela.Print RreshtiTekstit ' Shtype rreshtin
Loop
Close #1 ' Mbylle fajllin
End Sub

Shkruarja e t dhnave n fajll


Pr mbushjen e fajllit me t dhna prmes programit prdoren urdhrat pr
shkruarje n fajll: Print #n , Put dhe Write #. Prmes Print # zakonisht shkruhen t
dhnat q lexohen prmes urdhrit Line Input #. Pr shkruarje t t dhnave
sekuenciale, si dhe pr lexim m t prshtatshm t tyre prmes urdhrit Input #,
prdoret urdhri: Write #n .
Write #filenumber, [outputlist]

Ku, filenumber - numri i fajllit, outputlist - lista e variablave t ndara me presje.


Paraprakisht fajlli duhet t hapet pr shkruarje (Output ose Append) prmes
urdhrit:
Open EmriFajllit for Output As #NrFajllit

141

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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.

Fig. 2.20 Shembulli Shkruarje/Lexim

Permes kontrolls Shkruaj


(cmdShkruaj) aktivizojm kodin
prmes t cilit mbushim fajllin me
t dhna dhe n kontrolln
picTabela paraqesim porosin
Shkruarja prfundoi. Prmes
tastit Lexo (cmdLexo)
aktivizojm kodin i cili bn leximin
e t dhnave prej fajllit.
Fajllin sht krijuar prmes
Notepad.exe, sht ruajtur si:
C:\Temp\Notat2.txt dhe sht i
zbrazt.

Prmes kodit vijues mbushim fajllin me t dhna:


Private Sub cmdShkruaj_Click()
Dim strPorosia As String, intX As Single
strPorosia = "Shkruarja prfundoi"
intX = 174374
Open "C:\Temp\Notat2.txt" For Output As #1
Write #1, "Jungjatjeta", "044", intX
Write #1,

' Hap fajllin pr shkruarje


' Shkruaj t dhnat e ndara me presje
' Shkruaj nj rresht t zbrazt

Dim VarBool, VarDate, VarNull, VarError


' Cakto vlerat e tipit: Boolean, Date, Null, dhe Error.
VarBool = False: VarDate = #12/12/2002#: VarNull = Null
VarError = CVErr(32767)
' Tipi Boolean shkruhet si #TRUE# ose #FALSE#.
' Datat shkruhen n formatin universal pr dat,
' si p.sh., #12/12/2002# q paraqet 12 dhjetor 2002.
' Null shkruhet si #NULL#. Error shkruhet si #ERROR errorcode#.
Write #1, VarBool; " sht vler e tipit Boolean "
Write #1, VarDate; " sht vler e tipit date"
Write #1, VarNull; " sht vler e tipit Null"

142

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Write #1, VarError; " sht vler e tipit Error "


Close #1 ' Mbyllja e fajlit.
picTabela.Cls
picTabela.Print
picTabela.Print strPorosia
End Sub

Pra, fajlli hapet pr shkruarje (For Output - Pr dalje, n kuptim t daljes s t


dhnave prej programit). Prmes Write (shkruaj) bhet shkruarja e t dhnave n
fajll. Normalisht, n fund fajlli mbyllet prmes Close (Mbylle).
Tani pr t lexuar t dhnat e vendosura n fajll, kemi kodin vijues:
Private Sub cmdLexo_Click()
Dim Variabla1, Variabla2, Vlera, VarBool, VarDate, VarNull, VarError
picTabela.Cls
Open "C:\Temp\Notat2.txt" For Input As #1 ' Hapja e fajllit per lexim.
Input #1, Variabla1, Variabla2, Vlera
picTabela.Print Variabla1, Variabla2; Vlera
Input #1, Variabla1
picTabela.Print Variabla1
Input #1, VarBool, Vlera
picTabela.Print VarBool, Vlera
Input #1, VarDate, Vlera
picTabela.Print VarDate, Vlera
Input #1, VarNull, Vlera
picTabela.Print VarNull, Vlera
Input #1, VarError, Vlera
picTabela.Print VarError, Vlera
Close #1
' Mbyllja e fajllit.
End Sub

Rezultati q fitohet pas shtypjes


sht paraqitur n Fig. 2.20b.
Shembulli sht i ruajtur me emrin:
Shkruarja dhe Leximi.vbp.

Fig. 2.20b Rezultati i leximit

143

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Fajllat me qasje t rastit


Pr t ju qasur t dhnave t caktuara n fajllin sekuencial duhet t lexohen
(kalohen) t gjitha t gjitha t dhnat paraprake. Analogji me kt do t ishte
prdorimi i kasetave muzikore. Pr t dgjuar kngn e katrt, duhet kaluar
shiritin npr tri kngt e para, pr t arritur tek e katrta. Kjo mnyr e qasjes
funksionin pr fajlla t vegjl me t dhna t pastrukturuara, mirpo pr fajlla t
mdhenj dhe t strukturuar, duhet prdorur qasja direkte (josekuenciale).
Fajllat t cilt lejojn qasje josekuenciale n t dhna njihen si fajlla me qasje t
rastit ose me qasje direkte (Random Access Files). Analogji me kt sht
prdorimi i CD-ve (kompakt disqeve), ku ka mundsi ti qasemi n mnyr direkte
cilsdo kng t dshiruar.
Pr t lejuar qasjen josekuenciale n t dhna, fajlli me qasje t rastit ka nj
struktur t definuar qart. Fajlli me qasje t rastit prbhet prej nj numri t
caktuar t rekordeve, ku secili rekord ka gjatsi t njjt (n bajta). Kshtu, duke
ditur gjatsin e do rekordi, ka mundsi t llogaritet dhe t prcaktohet me lehtsi
fillimi i do rekordi. (Rekordi mundson paketimin n nj trsi t disa variablave
t ndrlidhura t llojeve t ndryshme)

Fig. 5.4 Fajlli me


qasje t rastit

Rekordi i par n fajllat me qasje t rastit sht Rekordi 1


(jo zero (0), si ishte me vargjet). Secili rekord prmban
nj bashksi t variablave t llojeve t ndryshme, t cilat
prshkruajn ndonj element. Struktura e fajllave me
qasje t rastit sht si n Fig. 5.4. Pr t shkruar dhe pr
t lexuar fajllat me qasje t rastit, duhet t dihet gjatsia e
secilit rekord, n bajta. Duke ditur gjatsit e disa llojeve
t variablave, si: Integer 2 bajta, Long 4 bajta, Single
4 bajta, Double 8 bajta, String 1 bajt pr do
karaktere, etj., pr do variabl q ndodhet n rekord t
fajllit, duhet t mblidhen gjatsit individuale dhe kshtu
t fitohet gjatsia e prgjithshme e rekordit.
Pr t lehtsuar kt detyr, Visual Basic-u mundson
definimin e variablave t shfrytzuesit.

Variablat e defininuara prej shfrytzuesit


N Visual Basic mund t prdoren edhe variablat e definuara prej shfrytzuesit
(User-defined variables). Ky tip i t dhnave mundson grupimin e variablave t
llojeve t ndryshme n nj trsi, me nj tip t definuar prej shfytzuesit pr tr
144

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

grupin. T dhnat q prdoren pr fajllat me qasje t rastit m s shpeshti ruhen n


variabla t definuara prej shfrytzuesit.
Deklarimi i variablave t shfrytzuesit fillon me fjaln e rezervuar Type dhe
prfundon me End Type. Zakonisht prdoren stringjet me gjatsi fikse (Fixedlength string). P.sh.,
Type Studentet
Emri as String * 15
Mbiemri as String * 15
Vendlindja as String * 20
Mosha as Integer
End Type

Kshtu, gjatsia totale e rekordit Studentet do t jet (15+15+20+2 = 52 bajta).


Deklarimi i variablave t shfrytzuesit duhet t bhet n pjesn General (e
prgjithshme) t kodit ose n fajllin special t njohur si *.bas Module (Modul i
Visual Basic-ut). Kur krijohet n pjesn General, para fjals Type duhet dhn
fjaln e rezervuar Private dhe rekordi sht valid vetm brenda forms. Nse
vendoset n modul .bas, fjala Type mund t paraprihet me Private (rekordi sht
valid vetm prbrenda modulit) ose Public (rekordi sht valid (i vlefshm) kudo
brenda programit).
Pr t krijuar variabla t tipit t ri t definuar, prdoret urdhri Dim. Kshtu, mund
t definojm:
Dim Arbeni As Studentet
Dim Arta as Studentet
Dim Studenti as Studentet
...

Pra kemi variablat, t cilat prmbajn n vehte t gjitha komponentet e variabls s


shfrytzuesit Studentet. Pr t ju referuar nj komponenteje brenda variabls s
definuar prej shfrytzuesit, prdoret notacioni me pik: Variabla.Komponenta, si
p.sh:
Dim MoshaeStudentit
...
MoshaeStudentit=Arbeni.Mosha

Pra, ka ngjashmri me notacionin me pik, q prdoret pr tiparet e variablave t


zakonshme (Text1.Text, Label.Caption, etj).

145

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Shkruarja dhe leximi i fajllave me qasje t rastit


Fajlli me qasje t rastit sht si nj varg i rekordeve t ruajtura n disk. Rekordet
jan t numeruara dhe mund t ju referohemi prmes numrit prkats. Pr hapjen e
fajllit me qasje t rastit prdoret urdhri n formn:
Open EmriFajllit For Random as # n Len=GjatsiaeRekordit

ku n sht numri n dispozicion i fajllit, kurse GjatesiaeRekordit sht gjatsia e


secilit rekord. Edhe nse nuk shtypet pjesa For Random, programi do ta shtoj
automatikisht at. Pr fajllat me qasje t rastit nuk ka dallime mes hapjes pr
shkruarje dhe pr lexim, si n rastin e fajllave sekuencial. Kur hapet fajlli me qasje
t rastit, ather n t mund t kryhen t gjitha operacionet: t shkruhet, t lexohet,
t shtohet ose t ndryshohet.
Shkruarja n fajllin me qasje t rastit bhet prmes urdhrit Put (Vendose):
Put #n, NumriRekordit, variabla

Leximi prej fajllit me qasje t rastit bhet me urdhrin Get (Merre):


Get #n, NurmiRekordit, variabla

Nse nuk specifikohet numri i rekordit, ather nnkuptohet pozita e ardhshme


vijuese, n raport me pozitn ku sht lexuar ose shkruar hern e fundit.
Shkruarja nuk sht e thn t bhet me rradh. Pr shembull, pasi t hapet fajlli,
mund t jipet urdhri: Put #n, 5, VariablaeRekordit, me t cilin shkruhet n rekordin e
pest, kurse rezervohet (prcaktohet) hapsira pr katr rekordet paraprake.
Mbyllja e fajllit me qasje t rastit bhet prmes urdhrit Close (Mbylle):
Close #n

Pr t llogaritur gjatsin e fajllit, zakonisht prdoret funksioni LOF(n), (Length of


File gjatsia e fajllit). Kshtu, pr t gjetur fundin e fajllit, nuk prdoret EOF(n),
por LOF(n)/Len(Variabla), ku Variabla sht variabla e tipit t variabls s krijuar
prej shfrytzuesit me urdhrin Type (Definimi i Rekordit).
Kshtu, pr t shtuar nj rekord t ri n fund t fajllit, prdorim urdhrat vijues:
RekordiFundit=Lof(1)/Len(Variabla)
Put #1, RekordiFundit+1, Variabla

146

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Dim NumriRekordit, RekordiFundit As Integer


'Vlerat e fushave t rekordit i marrim nga fushat n form
Studenti.Emri = txtEmri.Text
Studenti.Mbiemri = txtMbiemri.Text
Studenti.Vendlindja = txtVendlindja.Text
Studenti.Mosha = Val(txtMosha.Text)
'NumriRekordit = NumriRekordit + 1

'Pozita e rekordit t ardhshm

RekordiFundit = LOF(1) / Len(Studenti) 'Pozita e rekordit t fundit


Put #1, RekordiFundit + 1, Studenti 'Shkruarja n fajll, n fund t fajllit
'Pastrojm fushat n form
txtEmri = ""
txtMbiemri = ""
txtVendlindja = ""
txtMosha = ""
txtEmri.SetFocus
End Sub
Private Sub cmdListo_Click()
Dim Studenti As Studentet
Dim NumriRekordit As Integer
Form1.Height = 6250 'Gjatsia e re e forms
'NumriRekordit = 0
picLista.Cls
'Pastrojm kontrollen picLista
picLista.Print "Emri"; Tab(17); "Mbiemri"; Tab(33); "Vendlindja"; Tab(50); "Mosha"
'Unaza pr t kaluar npr t gjitha rekordet n fajll
For NumriRekordit = 1 To LOF(1) / Len(Studenti)
Get #1, NumriRekordit, Studenti 'Leximi i rekordeve nga fajlli
picLista.Print Studenti.Emri; Tab(17); Studenti.Mbiemri; Tab(33); _
Studenti.Vendlindja; Tab(50); Studenti.Mosha
Next NumriRekordit
End Sub
Private Sub cmdDalja_Click()
Close #1 'Mbyllja e fajllit me qasje t rastit
End
'Dalja prej programit
End Sub

Shembulli ndodhet n folderin Leximi prej fajllit: Shkruarja dhe leximi


RandomAccess.vbp. Shikoni edhe shembullin: RandomAccess2.vbp.

148

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

Rezultati i shtypjes sht treguar n fig. 2.21.


Pra, nse elementet ndahen me
presje, ather shtypen n zona t
veanta, kurse ndarja me pikpresje
bn shtypjen e njpasnjshme t
elementeve. (sht zgjedhur fonti
Courier, i cili e ka gjersin e njjt
pr t gjitha karakteret).
Fig. 2.21 Zonat e shtypjes

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Private Sub cmdTab_Click()


picRezultati.Cls
picRezultati.Print Tab(5); " X"; Tab(15); " Y"; Tab(25); " Z=X+Y"
picRezultati.Print
picRezultati.Print Tab(5); 10; Tab(15); 20; Tab(25); 10 + 20
picRezultati.Print Tab(5); 30; Tab(15); 40; Tab(25); 30 + 40
picRezultati.Print Tab(5); 50; Tab(15); 60; Tab(25); 50 + 60
End Sub

n, ekran do t fitohej rezultati vijues:


Duhet pasur kujdes me prdorimin
e funksionit Tab(n), sepse nse
vlera e n jepet m e vogl se
pozita momentale e kursorit brenda
rreshtit, ather kursori do t
zhvendoset n pozitn n n
rreshtin e ardhshm.
Fig. 2.22 Formatizimi me Tab(n)
P.sh: picRezultati.Print Tung; Tab(5); Mirupafshim,
do t shtypte n rreshtin e par Tungjatjeta kurse n rreshtin e ardhshm, prej
pozits s 5, Mirupafshim.
Ngjashm funksionon edhe funksioni Spc(n), i cili inserton hapsirn prej n
karakteresh, prej pozits ku sht kursori. (Spc., shkurtesa pr Space-Hapsira)

Karakteri pr vazhdim t rreshtit


N nj rresht t kodit mund t shkruhen deri n 1023 karaktere. Nse n nj rresht
shkruhen m shum karaktere sesa q mund t shfaqen n dritare t kodit, Visual
Basic-u bn rrotullimin (scrollimin) e ekranit n t djatht, pr aq sa ka nevoj.
Mirpo, megjithat preferohet q rreshtat e kodit t mos jen m t gjat sesa
gjersia e dritares s kodit n ekran. Pr t shkruar rreshtat e gjat t kodit prdoret
shenja pr vazhdim t rreshtit, nnviza ( _ ) (underscore character) t cils i
paraprin nj zbraztir. Pr shembull, rreshti:
msg = Pun, pun nat e dit, q t shohim paks drit

mund t shkruhet si:


msg = Pune, pun nat e dit, & _
q t shohim paks drit

150

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

drgon VarShprehja n shtyps, njsoj si urdhri PictureBox.Print VarShprehja e


drgon VarShprehja n PictureBox.
Edhe pr shtypjen n printer mund t prdoren pikpresjet, presjet dhe funksioni
Tab(n). Tiparet e fontit pr shtypje n printer prcaktohen prmes urdhrave si:
Printer.FontName = Arial
Printer.FontBold = True
Printer.FontSize = 14

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

Shtypet pamja e forms (bit-pas-biti)


Pr t ndrprer shtypjen n shtyps.
Prfundon shtypjen dhe liron printerin pr
urdhrat pasues, pa pritur shtypjen e tr
faqes n shtyps
Llogarite lartesine dhe gjeresine e faqes per
shtypje, varesisht prej printerit dhe letres
Orientimi i faqes. Vlera vbPRORPortrait ose
1-Portrati, dhe vbPRORLandScape ose
2-Landscape
Prcaktimi i koordinats X dhe Y
Emri i pajisjes qe e perkrah drajveri perkates

Printer.ScaleHeight, Printer.Scaleidth
Printer.Orientation

Printer.CurrentX, Printer.CurrentY
Printer.DeviceName

Pr shembull nse dshirojm t shtypim emrat e t gjith printerve q jan t


instaluar n sistemin operativ t kompjuterit, mund t insertojm n form nj tast
komandues (cmdPrinter) dhe pr t t shkruajm kodin:
Private Sub cmdPrinter_Click()
Dim x As Printer
For Each x In Printers
Debug.Print x.DeviceName

Deklarimi i variables per Printer


Unaza pr do printer
Shtypet emri i pajisjes, ne dritaren Immediate

151

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Next
End Sub

Pr t shtypur formn n shtyps mjafton t insertohet urdhri PrintForm.


Zakonisht, krijohet nj tast komandues dhe n procedurn e tij cmdEmri_Click,
insertohet urdhri PrintForm. Nse forma ka ndonj kontroll t tipit PictureBox,
pr t shtypur prmbajtjen e saj momentale n ekran edhe n printer, duhet
prcaktuar tiparin e saj AutoRedra-True.
Shembull:
Insertojm n nj form dy taste komanduese: cmdShtypja dhe cmdElementet, dhe
pr to shkruajm kodin vijues:
Private Sub cmdShtypja_Click()
Dim Hidth, HHeight, i, Msg
' Deklarimi i variablave
On Error GoTo ErrorHandler
' Manipulatori i gabimit
Msg = "Ky sht teksti i shtypur n faqen"
For i = 1 To 2 ' Caktojme dy prsritje
HWidth = Printer.TextWidth(Msg) / 2
' Llogarisim gjysmn e gjersis
HHeight = Printer.TextHeight(Msg) / 2
' Llogarisim gjysmn e lartsis
Printer.CurrentX = Printer.ScaleWidth / 2 - HWidth
Printer.CurrentY = Printer.ScaleHeight / 2 - HHeight
Printer.Print Msg & Printer.Page & "."
' Shtyp.
Printer.NewPage ' Faqja e re.
Next i
Printer.EndDoc
' Shtypja perfundoi
Msg = "Dy faqe, secila me nga nj rresht n qendr "
Msg = Msg & "jan drguar n shtyps."
MsgBox Msg ' Paraqite mesazhin.
Exit Sub
ErrorHandler:
MsgBox "Ka ndodhur nj problem gjat shtypjes."
Exit Sub
End Sub
Private Sub cmdElementet_Click()
Dim Header, i, Y ' Deklarimi i variablave
Print "Tani sht duke u shtypur..."
Header = "Demonstrim: Shtypja - Faqja "
For i = 1 To 3
Printer.Print Header;
Printer.Print Printer.Page
Y = Printer.CurrentY + 10
'Vizato vizn prgjat faqes
Printer.Line (0, Y)-(Printer.ScaleWidth, Y)
For K = 1 To 50
Printer.Print String(K, " ");

152

' Vrejtja n form


' Hederi i faqes
' Shtypja e hederit t faqes
' Shtypja e numrit t faqes
' Caktimi i pozites pr viz
' Vizato vizn
' Shtype stringun e hapsirave

Avni Rexhepi - Visual Basic


Printer.Print "Visual Basic 6.0 - ";
Printer.Print Printer.Page
Next
Printer.NewPage
Next i
Printer.EndDoc
End
End Sub

Funksionet dhe procedurat e funksioneve


' Shtype tekstin
' Shtype numrin e faqes

Shembulli sht i ruajtur me emrin: Shtypja n Printer.vbp.

153

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Objekti FileSystemObject
Objekti FileSystemObject ofron qasje n sistemin e fajllave t kompjuterit.
Sintaksa e tij sht:
Scripting.FileSystemObject

Objekti FileSystemObjekt me metodat e tij, prdoret pr krijimin e fajllava,


folderve, kopjimin, zhvendosjen, shfletimin dhe leximin e specifikave t njsive,
folderve dhe fajllave, si jan: data e krijimit, madhsia, hapsira e lir, etj.
Disa nga metodat kryesore t FileSystemObject (t rradhitura sipas alfabetit) jan:
CopyFile (kopjo fajllin), CopyFolder (kopjo folderin (sikur: Copy-Paste)),
CreateFolder (krijo folderin), CreateTextFile (krijo fajll tekstual), DeleteFile
(fshije fajllin), DeleteFolder (fshije folderin), FileExists (fajlli ekziston),
FolderExists (FolderiEkziston), GetFile (merre, gjeje fajllin n shtegun e dhn),
GetFolder (merre folderin), MoveFile (zhvendose fajllin (sikur: Cut-Paste)),
MoveFolder (zhvendose folderin), OpenTextFile (hape fajllin tekstual), etj.
Pr shembull, urdhrat vijues prdoren pr manipulimin me fajlla dhe folder:
Kopjimi i fajllit dhe folderit:
Urdhri:
object.CopyFile source, destination[, overwrite]

kopjon prej Source (burimit) tek Destination (Caku). Opcioni Overwrite


(mbishkruaj) tregon a t mbishkruhet fajlli nse ve ekziston tek caku. Nse
Overwrite definohet si True, nse tek caku ka ekzistuar fajlli me at emr, do t
mbishkruhet (fshihet fajlli ekzistues, kopjohet i riu). P.sh., urdhri:
FileSystemObject.CopyFile "c:\mydocuments\*.doc", "c:\temp\"

Kopjon tw gjith fajllat e tipit (*.doc) nga folderi MyDocuments n folderin Temp.
Ngjashm, urdhri pr kopjim t folderit:
object.CopyFolder source, destination[, overwrite]

kopjon folderin prej burimit tek caku. P.sh:


FileSystemObject.CopyFolder "c:\mydocuments\*", "c:\temp\"

154

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Zhvendosja e fajllit dhe folderit:


Ngjashm me kopjimin, bhet edhe zhvendosja e fajllave dhe folderve prej
burimit tek caku:
object.MoveFile source, destination
object.MoveFolder source, destination

Fshirja e fajllit dhe folderit:


Fshirja e fajllit dhe folderit bhet prmes metods DeleteFile/DeleteFolder t
FileSystemObject. Fshirja e fajllave n Visual Basic mund t bhet edhe me
urdhrin Kill (mbyte).
Sintaksa e urdhrave pr fshirje t FileSystemObject sht:
object.DeleteFile filespec[, force]
object.DeleteFolder folderspec[, force]

ku: filespec dhe folderspec paraqesin specifikimin pr fajllin, gjegjsisht


specifikimin pr folderin (shtegun dhe emrin prkats).
Opcioni Force (True/False) prcakton a do t fshihen edhe fajllat me atributin
Read-Only (vetm pr lexim).
Pr metodat e FileSystemObject, si manipulimi me fajlla dhe folder (kopjimi,
zhvendosja, fshirja, etj) shikoni shembullin Manipulimi me fajlla dhe folder.vbp
dhe shikoni Help-in.
Kodi vijues tregon se si fitohet objekti Folder dhe si mirren tiparet e tij:
Sub ShowFolderInfo(folderspec) 'folderspec - Specifikimi i folderit
'folderspec = "C:\Temp"
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
s = f.DateCreated
data e krijimit t folderit
MsgBox "Folderi: '" & folderspec & "' sht krijuar m: " & s _
, vbInformation, "ShowFolderInfo"
End Sub

Kodi vijues tregon si t fitohet koleksioni Files dhe t prshkohet koleksioni i


fajllave prmes unazs For Each...Next pr t shfletuar fajllat n folderin e caktuar:
Sub ShowFolderList(folderspec) 'folderspec - Specifikimi i folderit
'folderspec = "C:\Temp"
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)

155

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

Prmes kodit vijues do t ilustrohet se si prdoret FileSystemObject pr t kthyer


objektin TextStream (Rrjedh teksti) i cili mund t lexohet (object.ReadAll) ose n
t cilin mund t shkruhet. Faktikisht prdoret pr shkruarje dhe lexim n fajlla.
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("C:\Temp\testfile.txt", True)
a.WriteLine ("Ky sht vetm nj test.")
a.Close

'Krijo fajllin
'Shkruaj n t

Prmes kodit t treguar, metoda CreateObject kthen FileSystemObject-in (fs).


Metoda CreateTextFile pastaj e krijon fajllin si objekt TextStream (a) dhe metoda
WriteLine shkruan nj rresht t tekstit n fajllin tekstual t krijuar. Metoda Close e
mbyll fajllin.
Metoda OpenTextFile hap fajllin e specifikuar dhe kthen objektin TextStream i
cili mund t prdoret pr leximin e fajllit ose pr t shtuar tekst n fajll
Sub OpenTextFileTest
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("c:\testfile.txt", ForAppending,TristateFalse)
f.Write "Jungjatjeta!"
f.Close
End Sub

156

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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]])

Metoda OpenAsTextStream ka kto pjes:


Pjesa

Prshkrimi

Object

Krkohet. Emri i File Object-it

Iomode

Opcional. Tregon modin hyrs/dals (input/output). Mund t jet nj prej tri


konstanteve: ForReading (PrLexim), ForWriting (PrShkruarje), ose
ForAppending (PrShtim).

Format

Opcional. Nj prej tri vlerave Tristate q prdoret pr t treguar formatin e fajllit t


hapur. Nse nuk jepet, fajlli hapet si ASCII fajll.

Konfigurimi
Argumenti imode mund t ket vlerat vijuese:
Konstanta

Vlera

Prshkrimi

ForReading

Hape fajllin vetm pr lexim. Nuk mund t shkruhet n kt fajll.

ForWriting

Hape fajllin pr shkruarje. Nse fajlli me emr t njjt ve


ekziston, prmbajtja e mparshme fshihet.

ForAppending

Hape fajllin pr t shkruar n fund t tij (pr t shtuar tekst t ri


n fund, pa e fshir prmbajtjen paraprake).

Argumenti format mund t ket vlerat vijuese:


Konstanta

Vlera

Prshkrimi

TristateUseDefault

Hap fajllin duke prdorur vlerat standarde


t sistemit.

TristateTrue

Hap fajllin si Unicode.

TristateFalse

Hap fajllin si ASCII.

Metoda OpenAsTextStream ofron funksionalitetin e njjt me metodn


OpenTextFile t FileSystemObject-it. Pr m tepr metoda OpenAsTextStream
mund t prdoret pr t shkruar n fajll.
Kodi vijues tregon prdorimin e metods OpenAsTextStream:
157

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

Pr t verifikuar a ekziston fajlli, prdoret metoda FileExists(EmriFajllit), e cila


kthen vlern True nse fajlli ekziston, gjegjsisht False nse ai nuk ekziston.
Sintaksa:
object.FileExists(filespec)

Ngjashm, pr t verifikuar ekzistimin e folderit, prdoret metoda


FolderExists(EmriFolderit).
Pr shembull, nse n form insertoni nj TextBox (txtShtegu) dhe nj tast
komandues cmdFEkziston, ather pr ngjarjen Click t tastit komandues, mund t
definojm procedurn e ngjarjes, e cila do t verofikoj a ekziston fajlli i dhn n
txtShtegu, n formn: C:\Folder\EmriiFajllit.xxx.
Private Sub cmdFEkziston_Click()
Set fs = CreateObject("Scripting.FileSystemObject")
'fs.fileExists ("C:\Temp\Pyetjet.txt")
Dim Fajlli As String
Fajlli = txtShtegu.Text
If fs.fileExists(Fajlli) = True Then
MsgBox "Po. Fajlli '" & Fajlli & "' ekziston"
Else
MsgBox "Jo. Fajlli '" & Fajlli & "' nuk ekziston"
End If
End Sub

Shikoni shembullin: FileSystemObject.vbp.

158

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

159

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Funksionet dhe procedurat e funksioneve


Visual Basic-u ka nj numr t madh t funksioneve t brendshme (Built-In
Functions) t cilat rrisin n mas t madhe aftsit e programit. Funksionet e
Visual Basic-ut kryejn llogaritje t ndryshme, si katrori i numrit, rrnja katrore,
numrimi i karaktereve t stringut, rritja ose zvoglimi i shkronjave etj. Funksioneve
u shoqrohen nj ose m shum vlera (parametra) t cilat njihen si Hyrje ose vlera
hyrse (Input) dhe vetm nj Dalje - vler dalse (Output). Thuhet se funksioni
kthen vlern dalse. Funksionet kan vlera hyrse dhe dalse, numerike ose string.

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

Pr llogaritjen e vlerave t ktyre funksioneve, n form insertojm kontrollat si n


Fig. 3.1 dhe shkruajm kodin prkats.
Private Sub cmdRezultati_Click()
If Val(txtX.Text) < 0 Then
txtY1.Text = "Nuk bn"
Else
txtY1.Text = Str(Sqr(txtX.Text))
End If
txtY2.Text = Str(Int(txtX.Text))
txtY3.Text = Str(Round(txtX.Text))
End Sub
Private Sub txtX_GotFocus()
txtX.Text = ""
End Sub

Fig. 3.1 Funksionet numerike


160

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

String funksionet
Disa prej funksioneve t zakonshme pr manipulim me variablat e tipit string jan:
Funksioni

Prshkrimi

Chr(Int)

kthen karakterin ASCII t


vlers numerike
kthen gjatsin e stringut
kthen n karaktere prej
pozites i t stringut
kthen n karakteret e majta
t stringut
kthen n karakteret e
djathta t stringut
prsrit n her karakterin

Len(Str)
Mid(Str,i,n)
Left(Str,n)
Right(Str,n)
String(n, Str)
StrReverse(Str)
Trim(Str)
LTrim(Str)
RTrim(Str)

kthen tekstin e shkruar


mbrapsht
kthen stringun pa zbrastira
para ose prapa
kthen stringun pa zbrastira
majtas (para)
kthen stringun pa zbrastira
djathtas (prapa)

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

T rndsishme jan edhe funksionet vijuese:


InStr(n, Str1, Str2,Krahasimi)

Replace(Teksti, Str1, Str2)


Str.SelLength
Str.SelStart

Str.SelText

Kthen numrin q tregon paraqitjen e Str2 n Str1, prej


pozits n. Krahasimi mund t jet: 0 Binar, ose 1
Tekstual.
n dhe Krahasimi jan opcional.
P.sh. InStr(Prishtina, tina), kthen 4
Bn zvendsimin e Str1 me Str2, n stringun Teksti.
Kthen ose cakton numrin e karaktereve t selektuara
Kthen ose cakton pikn fillestare t tekstit t selektuar;
tregon pozitn e insertimit t kursorit nse nuk ka tekst t
zgjedhur
Kthen ose cakton stringun q prmban tekstin e
selektuar momentalisht dhe prbhet prej zero-stringut (
) nse ska karaktere t zgjedhura

Shembull:
Pr t demonstruar mnyrn e prdorimit t SelLength, SelStart dhe SelText,
insertojm n form kontrollat si n fig. 3.2.
161

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Kodi pr kt shembull:
Private Sub cmdLlogarit_Click()
Text2.Text = Text1.SelText
Text3.Text = Text1.SelLength
Text4.Text = Text1.SelStart
End Sub

Prmes labels lblInfo kemi dhn


udhzimet pr testim. N modin e
ekzekutimit, n fushn e par pr
tekst (Text1.text) shkruajm nj
tekst dhe selektojm nj pjes t tij.
Fig. 3.2 SelText, SelLength, SelStart
Ather prmes tastit komandues cmdLlogarit, llogariten ose gjenden: SelText
teksti i zgjedhur, paraqitet n Text2.text; SelLength gjatsia e tekstit t zgjedhur,
paraqitet n Text3.text dhe SelStart pozita fillestare e tekstit t zgjedhur, paraqitet
n Text4.text. (Shembulli: SelLengthTextStart.vbp)
Shembull:
Prmes funksionit InStr do t krkojm fjalt e caktuara n tekstin e dhn.
N form vendosim vetm nj tekst-boks (Text1) dhe nj tast komandues
(cmdKerko), si n Fig. 3.3b.
Prmes kodit vijues, me an t tastit
komandues aktivizojm InputBoxin (Fig. 3.3a), n t cilin shkruajm
fjaln q e krkojm n tekstin e
shkruar n tekst-boks.
Fig. 3.3a Teksti q krkohet
Nse fjala e krkuar gjindet, ajo selektohet (Fig. 3.3b). Nse nuk gjindet, jepet
porosia prmes MsgBox-it.
Private Sub Form_Load()
Text1.Text = "Prishtina sht kryeqyteti i Kosovs"
Text1.Text = Text1.Text & " dhe ka afro gjysm milioni banor"
End Sub

162

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Private Sub cmdKerko_Click()


Dim strKerko, strVendi
' Deklarimi i variablave.
' Kerko prej shfrytzuesit stringun per kerkim
strKerko = InputBox("Shtype tekstin q duhet gjetur:")
strVendi = InStr(Text1.Text, strKerko)
' Gjeje stringun n tekstin e dhn
Text1.SetFocus 'Kalo ne fushn Text1.text
If strVendi Then ' Nse sht gjetur
Text1.SelStart = strVendi - 1
' vendose fillimin e selektimit
Text1.SelLength = Len(strKerko)
' dhe gjatsine e selektimit
Else
MsgBox "Stringu i krkuar nuk u gjet."
' Nse nuk sht gjetur, lajmroje shfrytzuesin
End If
End Sub

Pra, strKerko sht stringu i shkruar


n InputBox (fig. 3.3a). Prmes
funksionit InStr, n stringun
Text1.text krkojm stringun
strKerko. Nse teksti i krkuar
gjendet n stringun e par, ather
caktohet pozita fillestare (SelStart)
dhe gjatsia SelLength e tij
selektohet (Fig. 3.3b). Nse teksti i
krkuar, nuk ndodhet n Text1.text,
ather n ekran do t paraqite
MsgBox-i me porosin prkatse.
Fig. 3.3b Teksti i gjetur
Prmes objektit Clipboard, Visual Basic-u na mundson manipulimin me tekst, si
bhet tek t gjitha programet pr editimin e tekstit, prmes menyve: EditCut/Copy/Paste. Prmes: Clipboard.SetText, teksti i zgjedhur vendoset n
Clipboard, kurse prmes Clipboard.GetText teksti thirret prej Clipboardit.
Shembullin prkats, do ta shohim m von, gjat shpjegimit t menyve.
Pr t par opcionet tjera t manipulimit dhe krkimit t tekstit, shikoni edhe
shembullin Gjetja.vbp.

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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

Prveq funksioneve t brendshme t Visual Basic-ut, shfrytzuesi mund t definoj


edhe funksioent e veta, sipas dshirs dhe sipas nevojs. Kto funksione t reja
quhen Procedura t funksioneve ose Funksione t definuara prej
shfrytzuesit (User-Defined Functions). Procedurat e funksioneve definohen
ngjashm me procedurat Sub dhe prdoren njsoj si funksionet e brendshme t
Visual Basic-ut. Edhe funksionet e shfrytzuesit mund t ken vetm nj dalje, e cila
mund t jet vler string ose numerike. Procedurat e funksioneve mund t prdoren
n shprehje t ndryshme, njsoj si funksionet e brendshme. Programet u referohen
funksioneve sikur ato t ishin variabla, konstante apo shprehje. Procedurat e
funksioneve definohen prmes bllokut t funksionit, n formn:
Private Function EmriFunksionit(var1 As Tipi1, var2 As Tipi2, ...) As TipiTDhnave
Urdhrat
EmriFunksionit=VleraKthyese
End Function

Variablat n rreshtin e par quhen parametra t funksionit dhe variablat brenda


bllokut t funksionit kan domen lokal. Emrat e funksioneve duhet t definohen
ashtu q t sjellin ndr mend rolin q kan dhe duhet t respektojn rregullat e
emrtimit t variablave. Tipi TipiTDhnave, q definon tipin e daljes, mund t
jet String, Integer, Single, etj. N rreshtin e parafundit, para rreshtit EndFunction
(fundi i funksionit), emrit t funksionit i ndahet rezultati (dalja) q duhet t jet i
tipit t definuar (TipiTDhnave). Pra funksioni thirret prmes emrit t tij, duke ia
prcjellur parametrat e nevojshm dhe e kthen rezultatin gjithashtu prmes emrit t
tij. Duhet pasur kujdes q kur t thirret funksioni duhet ti prcillen aq parametra
(vlera hyrse) sa i ka t definuara, si dhe me renditje dhe t tipit t njjt si n
definicion, prndryshe lajmrohet gabimi. Pr t mundsuar thirrjen e funksionit
prej cilsdo pjes t programit, ai duhet t definohet si Public.
Funksionet mundsojn krijimin e moduleve t programeve t cilat mund t
prdoren npr shum programe t tjera.

164

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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 form insertojm kontrollat si n fig. 3.4 dhe pr tastin komandues


cmdMilaneKm shkruajm kodin pr ngjarjen Click:
165

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Private Sub cmdMilaNeKm_Click()


txtKm.Text = MilaneKm(Val(txtM.Text))
End Sub

Fig. 3.4 Shembull funksioni

N modin e ekezekutimit, n tekstboksin txtM shkruajm vlern e


gjatsis n mila dhe kur t shtypim
tastin komandues, cmdMilaNeKm,
thirret funksioni MilaNeKm, i cili
ka parametrin (vlern hyrse)
GjatsiaM. Si shihet prej kodit, kur
t thirret funksioni, si vler hyrse i
prcillet vlera e tekst-boksit txtM.

(Si shihet, txtM.text prmes funksionit Val(txtM.text ) sht shndrruar n vler


numerike). (Shembulli: MneKm.vbp).
Pr shndrrimin e njsive, nga nj njsi n tjetrn, njsoj mund t definohen
funksionet prkatse, si pr rastin e shndrrimit t milave n kilometra. N tabeln
vijuese, jan dhn raportet mes disa njsive, pr t mundsuar definimin e
funksioneve prkatse.
Pr t shndrruar...
Km
Barrel
cm kub
Feet
Feet
Feet
Metra
inch
cm katror
Farenheit

N...
Mila
litra
litra
cm
metra
yard
yard
cm
Inch katror
Celsius

Duhet: x(shumzuar), / (pjestuar)


/1.069 (ose x 0.621504)
x 159
/1000
x 30.48
x 0.3048
x3
/09144
x 2.54
x 0.1550
(5/9) x (Temp 32)

Shndrrimi i anasjellt bhet duke ndryshuar operacionin (x n / dhe / n


x).
Shembull:
N form insertojm kontrollat si n fig. 3.5. Emrtojm kontrollat si:
txtEmriPlote, txtEmri, txtMbiemri, cmdEmri, cmdMbiemri.

166

Avni Rexhepi - Visual Basic

Fig. 3.5 Ndarja e emrit dhe mbiemrit

Funksionet dhe procedurat e funksioneve

Emrtojm kontrollat si:


txtEmriPlote, txtEmri, txtMbiemri,
cmdEmri, cmdMbiemri,
lblEmriPlote, lblEmri, lblMbiemri.
Prmes ktij shembulli dshirojm
q t ndajm emrin dhe mbiemrin
prej emrit t plot. Kur t
ekzekutohet programi n fushn
Emri dhe mbiemri shtypen emri dhe
mbiemri, kurse prmes tasteve
komandues nxirret emri dhe
mbiemri prej emrit t plot.

Pr t br ndarjen e emrit t plot n emr dhe mbiemr, do t prdorim


funksionet si n vijim:
Private Function Emri(EM As String) As String
Dim Hapsira As Integer
'Ndaje Emrin prej emrit te plot, duke gjetur hapsirn
Hapsira = InStr(EM, " ")
'gjeje pozitn e hapsirs
Emri = Left(EM, Hapsira - 1)
'pjesa e majte e emrit te plote
End Function
Private Function Mbiemri(EM As String) As String
Dim Hapsira, Pozita As Integer
'Ndaje Mbiemrin prej emrit te plot, duke gjetur hapsirn
Hapsira = InStr(EM, " ")
'gjeje pozitn e hapsirs
Pozita = Len(EM) - Hapsira
'pozita e fillimit te Mbiemrit ne EmriPlote
Mbiemri = Right(EM, Pozita)
'pjesa e djathte e emrit te plote
End Function
Private Sub cmdEmri_Click()
txtEmri.Text = Emri(txtEmriPlote)
End Sub
Private Sub cmdMbiemri_Click()
txtMbiemri.Text = Mbiemri(txtEmriPlote)
End Sub

Prmes funksioneve Emri dhe Mbiemri t cilat kan si parametr variabln EM (


shkurtesa pr Emri dhe Mbiemri, gjegjsisht emri i plot), prej fushs txtEmriPlote
ndajm emrin dhe mbiemrin. Pr t thirrur funksionin, ia prcjellim vlern hyrse,
e cila i prcillet funksionit n vend t parametrit t tij EM, e pastaj mirret vlera
dalse prej emrit t funksionit. (Shembulli: Emri dhe Mbiemri.vbp.)
167

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Shembull:
Do t definojm funksionin i cili gjen numrin m t madh, prej dy numrave t
dhn. Prgatisim formn si n fig. 3.6.

Fig. 3.6 Numri m i madh

Emrtojm kontrollat: lblNum1,


lblNum2, lblNumriMadh, txtNum1,
txtNum2, txtNumriMadh, cmdGjeje.
Tiparet prkatse Caption, i
rregullojm si n fig. Pr llogaritjen
e numrit m t madh, prej dy
numrave t dhn krijojm nj
funksion, t cilin pastaj e thrrasim
sa her t ket nevoj pr gjetjen e
numrit m t madh prej dy numrave
t dhn.

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

Private Sub cmdGjeje_Click()


Dim i%, j%, Rezultati%

Prapashtesa % - tipi integer

i% = CInt(txtNum1.Text) 'Merre vlern nga txtNum1 dhe konvertoje n Integer


j% = CInt(txtNum2.Text) 'Merre vlern nga txtNum2 dhe konvertoje n Integer
Rezultati% = NumriMadh(i%, j%)
cmdGjeje.Caption = "Numr m i madh sht"
txtNumriMadh.Text = CStr(Rezultati%) 'Konverto rezultatin n String
If txtNumriMadh.Text = i% Then
lblNumriMadh.Caption = "Numri 1 = "
Else
lblNumriMadh.Caption = "Numri 2 = "
End If
End Sub

Shembulli sht ruajtur me emrin: NumriMadh.vbp.


168

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

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.

Fig. 3.7 Llogaritja e Hipotenuzs


Kodi:
Private Function Hipotenuza(a As Single, b As Single) As Single
'Llogarite hipotenuzn e trekndshit knddrejt, c
'kur jipen katetet a dhe b
Hipotenuza = Sqr(a ^ 2 + b ^ 2)
End Function
Private Sub cmdLlogarite_Click()
Dim a As Single, b As Single
'Llogarite hipotenuzn e trekndshit knddrejt, c
a = Val(txta.Text)
b = Val(txtb.Text)
txtc.Text = Hipotenuza(a, b)
End Sub

169

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Shembull:
T llogaritet shprehja: S =

(a i + b)
i=m

Fig. 3.7 Llogaritja e shums

Krijojm formn me kontrollat si


n fig. 3.7. dhe i emrtojm: lblm,
lbln, lbla, lblb, txtm, txtn, txta, txtb,
cmdShuma, lblShuma, txtShuma.
Pr paraqitjen e formuls, kemi
prdorur nj kontroll Image. (Nga
Wordi sht kopjuar formula dhe
sht paraqitur n Image).
Pr llogaritjen e shprehjes krijojm
funksionin i cili pr vlerat hyrse t
dhna, m, n, a dhe b, llogarit
Shumn S.

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

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Dokumentimi i procedurave dhe funksioneve


Edhe pse funksionet e krijuara funksionojn mir, sht mir q t bhet
dokumentimi detal i funksioneve dhe procedurave, me qllim q t lehtsohet dhe
t sqarohet prdorimi i tyre pr prdoruesit e mvonshm t tyre. T gjitha
funksionet dhe procedurat (Sub) duhet t ken kreun (Header-hederin), q sht nj
seksion i kodit me komente q paraqitet n krye t bllokut t kodit. Hederi
zakonisht jep nj prshkrim t prmbledhur t funksionit ose procedurs: emrin,
shpjegimin e argumenteve dhe vlerave kthyese si dhe disa vrejtje pr at ka
shrben dhe ndonj instruksion t veant. Gjithashtu n heder shkruhet historiati
pr datn e krijimit dhe autort. Nse bhen ndryshime n kod, ather shtohen
shpjegimet dhe data e ndryshimit. Gjithashtu jepet edhe vrejtja pr t drejtat e
autorit: CopyRight .
Gjithashtu duhet komentuar t gjitha veprimet n procedura dhe funksione. Kjo
lehtson mirmbajtjen e programeve dhe lehtson rishqyrtimin e mvonshm t
kodit.
Pr shembull, funksionit pr llogaritjen e shums, do t ishte mir, ti shtohet
hederi si n vijim:
Private Function Shuma(m As Integer, n As Integer, a As Single, b As Single) As Single
' ********************************************************************************
'Sub/Function: Shuma
'Llogarite shumn e numrave prej vlers fillestare (kufiri i poshtm)
'deri te vlera prfundimtare (kufiri i eprm)
'Argumentet:
' m - kufiri i poshtm
' n - kufiri i eprm
' a - variabla e par e shprehjes nn shum (a*i+b)
' b - variabla e dyt e shprehjes nn shum (a*i+b)
'
'
'Kthen: Shumn prej m deri n n
'
'Vrejtje: Ky funksion sht prdorur si shembull
'pr demonstrimin e funksionit me shum argumente
'
'Programer: Avni Rexhepi
'
'Historiati: Krijuar m 4/12/2002
'
'Copyright 2002, Avni Rexhepi
' ********************************************************************************
...( Kodi i funksionit)
End Function

171

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Prcaktimi i piks hyrse t programit


Kur ekzekutohet, programi zakonisht fillon me paraqitjen e forms s par t
krijuar n kuadr t projektit. Kjo sht zgjidhje adekuate pr projektet q kan
vetm nj form. Mirpo nse programi ka m shum forma apo nuk ka asnj
form, ather duhet siguruar zgjidhje tjetr. Pr rastin e projektit me m shum
forma, mund t bhet paraqitja e formave t njpasnjshme, prmes procedurs s
ngjarjes Form_Load( ), duke insertuar procedurn brenda procedurs, si n vijim:
Private Sub Form_Load()
Load frmForma2
End Sub

Kjo do t funksiononte normalisht pr numr t kufizuar t formave por nuk sht


praktik e mir dhe nuk preferohet, sidomos nse duhet paraqitur nj numr t
madh formash. Pr projektet q nuk kan asnj form dhe si mnyr e zgjedhjes s
piks hyrse t programit, Visual Basic-u, siguron nj pik hyrse t programit q
nuk sht e bazuar n form. Kjo sht procedura Sub Main( ) (Prodedure
kryesore). Sub Main( ) sht nj procedur speciale e rezervuar prej Visual Basicut si procedur fillestare pr cilindo projekt. Pr t prcaktuar procedurn Sub
Main( ), duhet hapur dritaren Project Properties (Tiparet e projektit) (Fig. 3.8).
N faqen General ndodhen fushat:
Project Type (Tipi i projektit),
Startup Objekt (Objekti startues),
Project Name (Emri i projektit),
Help File Name (Fajlli pr ndihm)
etj. N fushn Startup Object duhet
zgjedhur prej lists s opcioneve,
formn e caktuar ose Sub Main( ).
Kur t zgjedhet procedura Sub
Main( ) si pik hyrse (objekt
startues), duhet definuar procedurn
Sub Main( ), n modulin e kodit t
projektit. Projekti mund t ket
vetm nj procedur Sub Main( ).
Fig. 3.8 Dritarja Project Properties
Sub Main( ) mund t insertohet prmes menys Tools-Add Procedure ose duke
shtypur n pjesn General Section t dritares s kodit procedurn Sub Main( ). Pasi
t krijohet Sub Main( ), duhet t plotsohet kodi pr t.
172

Avni Rexhepi - Visual Basic

Funksionet dhe procedurat e funksioneve

Pr shembull, pr t hapur t tri format e projektit, me rastin e startimit t tij,


krijojm procedurn Sub Main( ) si n vijim:
Sub Main( )
Hapi t gjitha format me rastin e startimit
frmForma1.Show
frmForma2.Show
frmForma3.Show
Raporto hapjen e formave
MsgBox Jan hapur t gjitha format e projektit
End Sub

Pastaj n dritaren Project Properties caktojm procedurn Sub Main( ) si objekt


startues dhe e ruajm projektin.

173

Avni Rexhepi - Visual Basic

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.

Fig. 3.9 Kontrollat ListBox

Gjat puns n Windows, kontrollat


ListBox paraqiten n shum forma
dhe dritare pr dialog. Kontrolla
ListBox i jep shfrytzuesit
mundsin e zgjedhjes s vlerave.
N vend se t shkruaj vlern n
Tekst-boks, shfrytzuesi zgjedh
vlern prej lists.

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

Avni Rexhepi - Visual Basic

Editori i menyve

Columns

Numri i kolonave.

ForeColor

Ngjyra e tekstit n ListBox.

Height

Lartsia e ListBox-it (n Twips).

IntegralHeight

Prcakton a mund t shihet pjesrisht elementi n list, nse


paraqitet n vijn ndarse t fundit t lists.
N listn rnse, prmban vlerat q mund t shtypen n list.
Vlerat shtypen nj nga nj dhe me Ctrl+Enter, kalohet n rreshtin e
ardhshm. Shumicn e rasteve preferohet inicializimi n modin e
ekzekutimit.
Gjendja e rregullave t zgjedhjes s elementeve nga kontrolla
ListBox. Nse vlera sht 0-None (0-asnj), q sht vlera
standarde, shfrytzuesi mund t zgjedh vetm nj element, duke
klikuar n t me maus, ose prmes tastiers me tastin SpaceBar
(Hapsira). Nse vlera sht 1-Simple (1-Thjesht), mund t
zgjedhen m shum elemente duke i klikuar me maus ose me
SpaceBar. Vlera 2-Extended (2-E zgjeruar), mundson zgjerimin e
zgjedhjes me Shift+Klik ose Shift+Shigjeta n tastier. Ctrl+Klik
zgjedh ose liron elementin n list.
Prcakton a do t sortohen automatikisht vlerat n list. Nse sht
False, (vlera standarde) elementet paraqiten me rradhn e dhn
gjat shtypjes s lists.
Prcakton stilin e kontrolls ListBox, n form standarde t lists
apo me kontrollat Check-box pran elementeve.

List

MultiSelect

Sorted
Style

N form, n shum raste mund t shtohet nj tast komandues q vepron n


bashkpunim me kontrolln ListBox. Kshtu, shfrytzuesi mund t zgjedh vlern
n list e pastaj t klikoj tastin komandues pr t informuar aplikacionin pr
vlern e zgjedhur.
Metodat (veprimet) pr kontrolln ListBox jan prshkruar n tabeln vijuese. Ato i
mundsojn shfrytzuesit inicializimin, shtimin dhe largimin e elementeve prej
lists.
Metoda (Method)

AddItem

Prshkrimi
Shton nj element n ListBox.

Clear

Largon t gjitha elementet.

List

Vargu i stringjeve q prmban elementet prbrenda kontrolls


ListBox.
Numri total i elementeve.

ListCount
RemoveItem

Largon nj element prej ListBox-it.

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

Avni Rexhepi - Visual Basic

Editori i menyve

P.sh., urdhri vijues shton nj element n ListBox:


lstVendet.AddItem Prishtina

Shpeshher ListBox-i inicializohet n procedurn e ngjarjes Form_Load( ), ashtu


q kur t paraqitet forma n ekran inicializohet kontrolla. Kodi vijues, vendos disa
emra qytetesh n kontrolln ListBox.
lstQyteti.AddItem "Prishtin"
lstQyteti.AddItem "Mitrovic"
lstQyteti.AddItem "Prizren"
lstQyteti.AddItem "Pej"

Secilit element n ListBox i bashkangjitet indeksi, q paraqet numrin q fillon prej


0 pr elementin e par, 1 pr t dytin e kshu me rradh. Prandaj, nse aplikohet
metoda RemoveItem, si n vijim, do t largohet elementi i tret:
lstQyteti.RemoveItem(2) w Elementi i 3-t ka indeksin 2

Kur largohet nj element, indekset e elementeve tjera pas elementit t larguar


azhurohen. Pr t pastruar trsisht listn, prdoret urdhri:
lstQyteti.Clear Largo t gjitha elementet

Vlerat e elementeve t lists q prmban vlera, mund t ju ndahen variablave


prmes metods List. Vlerat e elementeve t ListBox-it duhet t ruhen n variabla
String ose Variant, prveq nse nuk konvertohen n vlera numerike prmes Val( ).
Pr shembull, prmes urdhrave vijues, vlerat e lists u ndahen string variablave:
strVar1 = lstQyteti.List(0)
strVar2 = lstQyteti.List(3)

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

Avni Rexhepi - Visual Basic

Fig. 3.10 Kontrollat ListBox:


lstQytetet dhe lstVendi
Private Sub Form_Load()
lstQytetet.AddItem "Ferizaj"
lstQytetet.AddItem "Gjakova"
txtNumri.Text = Str(lstQytetet.ListCount)
End Sub
Private Sub lstQytetet_Click()
txtShtuar.Text = lstQytetet.Text
lstVendi.AddItem lstQytetet.Text
txtZgjedhja.Text = lstQytetet.ListIndex
End Sub

Editori i menyve

Kontrollat jan emrtuar si vijon:


ListBox-et - lstQytetet dhe lstVendi;
Tekst-Bokset: txtNumri,
txtZgjedhuja, txtShtuar, txtLargua;
tastet komanduese:, cmdLargo,
cmdPastro dhe labelat: lblQytetet,
lblNumri, lblZgjedhja, lblShtuar,
lblLarguar, lblVendi.
Pr ListBox-in lstQytetet, si shihet
n figur, n modin e dizajnimit, n
tiparin List, kemi shtypur emrat e
pes qyteteve. N modin e
dizajnimit, prmes ngjarjes
Form_Load( ), do t shtojm edhe
dy elemente n list. Pr t gjetur
dhe paraqitur n fushat prkatse
vlerat e prshkruara prmes
labelave, kemi kodin vijues:
'Shtimi i elementeve n list
'Numrimi i elementeve

'Paraqite elementin e shtuar


'Shtoje elementin n lstVendi
'Paraqite elementin e zgjedhur

Private Sub cmdLargo_Click()


lstVendi.SetFocus
'Kalo n lstVendi
If lstVendi.ListCount = 0 Then
'Nse nuk ka asnj element
MsgBox "Nuk ka asnj element n Lista 2", , "Gabim" 'Mesazhi i gabimit
Exit Sub
'Dalja prej procedure
End If
If lstVendi.SelCount = 0 Then
'Nse nuk sht zgjedhur asnj element
MsgBox "Nuk keni zgjedhur asnj element n Lista 2" _
, , "Gabim"
'Mesazhi i gabimit
Exit Sub
'Dalja prej procedure
End If
txtLarguar.Text = lstVendi.Text
'Paraqite elementin q largohet
lstVendi.RemoveItem lstVendi.ListIndex 'Largo elementin
End Sub

177

Avni Rexhepi - Visual Basic

Editori i menyve

Private Sub cmdPastro_Click()


lstVendi.Clear
txtShtuar.Text = ""
txtLarguar.Text = "T gjitha elementet"
End Sub

'Pastro listn
'Pastro teks-boksin
'Paraqite tekstin

(Shembulli sht ruajtur me emrin List1.vbp)

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

Dropdown-ComboBox (ComboBox-i Lsho Posht) - Me vlern standarde (Style


= 0 Dropdown Combo), ComboBox-i sht Drop-down (lsho-posht)
ComboBox. Shfrytzuesi mund t shtyp tekstin direkt n t, si n tekst-boks ose t
klikoj n shigjetn n skajin e djatht t ComboBox-it pr t hapur listn pr
zgjedhje. Zgjedhja e nj opcioni, e inserton at n pjesn pr tekst n krye t
178

Avni Rexhepi - Visual Basic

Editori i menyve

ComboBox-it. Lista mund t hapet edhe prmes ALT+ShigjetaPosht, n tastier,


kur kontrolla ka fokusin.
Simple Combo Box (ComboBox i thjesht) Pr tiparin Style = 1 Simple Combo
Box, paraqitet ComboBox-i i thjesht me rast lista shihet gjat tr kohs. Edhe
n kt rast, shfrytzuesi mund t zgjedhe vlern nga lista ose ta shtyp vet.
Pr tiparin Style = 2 Drop-down List Box (ListBox Lsho Posht), paraqitet
ComboBox-i me listn e elementeve, prej t cilave patjetr duhet zgjedhur njrin,
por nuk mund t shtypet teksti n t, si n dy rastet e para. Pr dallim nga kontrolla
ListBox, lista pr zgjedhje nuk sht e hapur, por hapet prmes shtypjes s shigjets
te posht n skajin e djatht.
Shtimi i elementeve n ComboBox bhet prmes metods AddItem, q ka sintaksn
vijuese:
box.AddItem item[, index]

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

ku, box dhe index jan argumente t njjta, si pr AddItem. Pr shembull, pr t


larguar elementin e par, shtypet urdhri:
Combo1.RemoveItem 0

Pr t larguar t gjitha elementet e lists n ComboBox, prdoret metoda Clear:


Combo1.Clear

Prmbajtja e elementit mirret prmes tiparit Text. Zakonisht mnyra m e leht pr


t marr vlern e elementit t zgjedhur momentalisth, sht t prdoret tiapri Text.
Tipari tekst i prgjigjet asaj q momentalisht ndodhet n pjesn e tekst-boksit t
179

Avni Rexhepi - Visual Basic

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

Tipari Text prmban vlern e zgjedhur aktuale t elementit n listn e


ComboBox1.
Pr t ju qasur elementeve t lists, prdoret tipari List. Tipari list ofron qasje n t
gjitha elementet e lists. Ky tipar prmban vargun n t cilin secili element n
list sht element i vargut. Secili element paraqitet n form stringu. Pr t ju
referuar nj elementi n list, prdoret sintaksa:
ComboBox1.List(index)

Indeksi paraqet pozitn e elementit (si pr kontrolln ListBox).


Pr t prcaktuar pozitn e elementit n ComboBox prdoret tipari Listindex. Tipari
NewIndex (Indeksi i ri) mundson prcjelljen e indeksit t elementit t fundit t
shtuar n list. Kjo mund t jet shum e dobishme, kur shtohen elementet n list
t sortuar. Numri i elementeve mirret prmes tiparit ListCount, si p.sh:
Text1.Text = "Kemi " & Combo1.ListCount & elemente n list"

Shembull:

Fig. 3.11 Kontrolla ComboBox

Insertojm n form kontrollat si n


fig 3.11. Kemi insetruar kontrolla t
tipit: ListBox, TextBox,
CommandButton, ComboBox,
Label dhe Frame.
N ann e djath, jan paraqitur t
tri stilet e kontrolls ComboBox. N
fushn pr tekst, shtypim tekstin, e
pastaj prmes tasteve komanduese e
shtojm n ListBox apo n
ComboBox-e.

Prmes tasteve komanduese t vendosura n korniz, n pjesn e poshtme t


forms, pastrojm prmbajtjen e kontrollave.
Kodi:
Option Explicit
Private Sub cmdShtoCbo_Click()
'Tasti q shton tekstin n t gjitha ComboBox-et

180

Avni Rexhepi - Visual Basic

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

(Shembulli sht ruajtur m emrin: ListBoxdheComboBox.vbp)

181

Avni Rexhepi - Visual Basic

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.

Fig. 3.12 Shiritat rrshqits


182

I emrtojm kontrollat me emrat:


imgDielli, hscrHorizontal,
vscrVertikal, txtH dhe txtV. Pr t
dy shiritat rrshqits, definojm
tiparet vijese: Min-0, Max-10,
LargeChange-2 dhe
SmallChange-1.
Prmes kodit, vlern momentale t
shiritit e paraqesim n tekst-bokset
prkatse. Ndryshimin e vlerave e
bjn ndryshimet e vlerave t
shiritave rrshqits.

Avni Rexhepi - Visual Basic

Editori i menyve

Me ndryshimin e pozits s shiritit rrshqits (Vlers s tiparit value), ndryshon


edhe pozita e kontrolls imgDielli, duke prcjellur ndryshimet e vlerave t shiritave
rrshqits n tiparet Top dhe Left t kontrolls imgDielli.
Kodi:
Private Sub hscrHorizontal_Change()
txtH.Text = Str(hscrHorizontal.Value)
imgDielli.Left = hscrHorizontal.Value * 350
End Sub
Private Sub vscrVertikal_Change()
txtV.Text = Str(vscrVertikal.Value)
imgDielli.Top = vscrVertikal.Value * 200
End Sub

Prmes procedurave Change prcillen ndryshimet, mirpo gjat zvarritjes s


treguesit t pozits prmes mausit, ato nuk vrehen. Tek pasi t lirohet tasti i
mausit, prcaktohet vlera e re. Pr t prcjellur ndryshimet edhe gjat zvarritjes,
duhet aplikuar procedurat e ngjarjeve Scroll pr t dy shirititat, si n vijim:
Private Sub hscrHorizontal_Scroll()
txtH.Text = Str(hscrHorizontal.Value)
imgDielli.Left = hscrHorizontal.Value * 350
End Sub
Private Sub vscrVertikal_Scroll()
txtV.Text = Str(vscrVertikal.Value)
imgDielli.Top = vscrVertikal.Value * 200
End Sub

(Shembulli: Shiritat1.vbp. Shikoni edhe shembullin Dielli.vbp)

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

Avni Rexhepi - Visual Basic

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

Fig. 3.13 Kontrolla Timer

(Shiko shembujt: Ora.vbp dhe


Alarmi.vbp)

Pr paraqitjen e kohs, mund t bhet formatizimi i vlers q paraqitet, prmes


funksionit Format. Ekzistojn tri formate t mundshme pr paraqitjen e kohs:
- Long Time (Koha e gjat) - paraqet kohn n formatin e gjat: hh:mm:ss,
ora:minutat:sekondat, ku ora paraqitet me vlerat prej 0 deri n 24,
- Medium Time (Koha e mesme) - paraqet kon n formatin e mesm: hh:mm
AM/PM, ku ora paraqitet me vlerat prej 0 deri n 12 si dhe i bashkangjitet
prapashtesa AM ose PM. (AM Ante Meridiem - Para dreke, PM - Post Meridiem
Pas dreke),
- Short Time (Koha e shkurt) - paraqet kohn n formatin e shkurt: hh:mm,
ora:minutat, ku ora paraqitet me vlerat prej 0 deri n 24.
Vlera q paraqitet formatizohet prmes urdhrit format, si p.sh.,
Label1.Caption = Format( Time, Short Time)

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

Avni Rexhepi - Visual Basic

Editori i menyve

vijon: lblKoha, lblSekondat, cmdFillo, cmdNdal dhe tmrOra. Pr kontrolln


tmrOra rregullojm tiparin Interval = 100, pr t matur t dhjetat e sekonds.
Prmes kontrolls cmdFillo, fillojm
matjen e intervalit t ri, duke kthyer
vlern e kontrolls lblKoha n zero.
Prmes kontrolls cmdNdal, ndalim
matjen e kohs, duke ndrprer
kontrolln Timer, prmes ndryshimit
t tiparit t saj Enabled n False.
Ndryshimet e vlers s kohs s
kaluar i prcjellim n kontrolln
lblKoha, prmes procedurs s
ngjarjes tmrOra_Timer( ).
Kodi:
Fig. 3.14 - Kohmatsi
Private Sub cmdFillo_Click()
lblKoha.Caption = "0" ' Rifillo matjen
tmrOra.Enabled = True
End Sub
Private Sub cmdNdal_Click()
tmrOra.Enabled = False
End Sub
Private Sub tmrOra_Timer()
lblKoha.Caption = Str(Val(lblKoha.Caption) + 0.1)
End Sub

(Shembulli: Kohmatsi.vbp. T shikohet edhe projekti: Loja e memories.vbp).

185

Avni Rexhepi - Visual Basic

Editori i menyve

Kontrollat DriveListBox, DirListBox dhe FileListBox


Pr t mundsuar shfletimin e njsive t disqeve, folderve dhe fajllave t sistemit,
Visual Basic-u ka kontrollat e brendshme DriveListBox, DirListBox dhe
FileListBox.
DriveListBox paraqet dhe lejon shfrytzuesin t zgjedh njsin e diskut.
DirListBox paraqet dhe lejon shftytzuesin t zgjedh foldert dhe
shtigjet.
FileListBox paraqet dhe lejon shfrytzuesin t zgjedh prej lists s
fajllave.
N form insertojm kontrollat dhe i vendosim si n fig. 3.15. N dritaren e kodit
insertojm kodin vijues:
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

' Cakto shtegun e folderit

Private Sub Dir1_Change()


File1.Path = Dir1.Path
End Sub

' Cakto shtegun e fajllit.

Njsia pr zgjedhjen e njsis


funksionon si kontrollat e tipit
ComboBox, kurse kontrollat
DirListBox dhe FileListBox sikur
kontrollat e tipit ListBox. Si shihet
prej kodit, pr t prcjell
ndryshimet e njsis, prmes
procedurs s ngjarjes
Drive1_Change prcaktojm
shtegun (Path) pr kontrolln
Fig. 3.15 Kontrollat: DriveListBox,
DirListBox. Ngjashm, ndryshimet
DirListBox dhe FileListBox
e DirListBox, i prcjellin n
kontrolln FileListBox.
Procedura e ngjarjes Dir1_Change i prcjell ndryshimet n kontrolln File1, t
tipit FileListBox. N kt mny arrihet sinkronizimi i t tri kontrollave, pr
paraqitjen e njsive, follderve dhe fajllave.
Shumica e tipareve, metodave dhe ngjarjeve t kontrolls ListBox vlejn edhe pr
tri kontrollat e msiprme. Pr shembull, pr kontrolln FileListBox-File1,
186

Avni Rexhepi - Visual Basic

Editori i menyve

File1.ListCount paraqet numrin e fajllave, kurse File1.List(n) sht emri i fajllit t


n-t (numrimi fillon prej zeros). Elementi i selektuar n seciln prej njsive
identifikohet prmes tipareve: Drive, Path dhe FileName. Pr shembull, njsia e
zgjedhur sht dhn prmes stringut Drive1.Drive.
Pr kontrolln FileListBox, sht shum i rndsishm tipari Pattern (mostra), i cili
prcakton tipin e fajllave t cilt do t paraqiten n kontroll. Vlera standarde
sht: *.*, q do t thot paraqiten t gjith fajllat e t gjitha llojeve (* - shenja
xhoker, q zvendson do string). Pr t paraqitur vetm fajllat tekstual, t tipit
*.txt, mjafton t prcaktohet tipari Pattern - *.txt.

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 ...

Kshtu, nse dshirojm t hapim fajllin Pyetjet.txt, i cili ndodhet n folderin e


njjt ku ndodhet edhe aplikacioni q e hap fajllin, ather mund ti qasemi
prmes urdhrit App.Path, si n vijim:
Open App.Path & "\Pyetjet.txt" For Input As #1
...urdhrat tjer
Close #1

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

Avni Rexhepi - Visual Basic

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,

ku XXX sht: Open, Save, Font, Color ose Print.


N tabeln vijuese tregohen metodat e kontrolls CommonDialog dhe dialogjet
prkatse.
Metoda
ShowOpen
ShowSave
ShowColor
ShowFont
ShowPrinter

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)

Avni Rexhepi - Visual Basic

Editori i menyve

Kontrolla CommonDialog automatikisht ofron ndihmn n kontekst pr interfejsin


e dritares pr dialog, duke klikuar s pari tastin pr ndihm Whats This n
titullin e dritares dhe pastaj elementin e dritares pr t cilin krkohen ndihma.
Nuk ka mundsi t prcaktohet pozita e dshiruar e dritares pr dialog.

Fig. 3.16a Dialogu Open


Prmes dialogut Open, zgjedhet fajlli q do t hapet n kuadr t projektit.

Fig. 3.16b Dialogu Save As


Prmes dialogut Save As, zgjedhet emri i fajllit me t cilin ai do t ruhet n disk ose
ndonj njsi tjetr, n folderin e zgjedhur n kuadr t dialogut.
189

Avni Rexhepi - Visual Basic

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.

Fig. 3.16c Dialogu Font

Fig. 3.16c Dialogu Color

Fig. 3.16e Dialogu Print


190

Avni Rexhepi - Visual Basic

Editori i menyve

Prmes dialogut Print, zgjedhet shtypsi n t cilin do t shtypet prmes programit


si dhe opcionet pr shtypje si: tr fajlli apo pjesa e zgjedhur e tij, numri i kopjeve,
etj.
N tiparet e dritares pr dialog ndikon tipari Flags (Flamujt), i cili duhet t
prcaktohet para se t thirret metoda Show pr paraqitje t dritares pr dialog. Pr
qllimet e prdorimit, do t prdorim urdhrin: dlgEmri.Flags=3. Konstantat pr
dritaret pr dialog i gjeni n shtojcn n fund t librit.
Pasi t bhet zgjedhja e opcioneve t dshiruara prej dritares pr dialog dhe t
shtypet tasti OK, vlerat e zgjedhjeve t bra vendosen n tiparet e ndryshme si:
FileName, Color, FontName, FontBold, FontSize, Copies, etj. Pr shembull,
prmes kodit vijues, pas zgjedhjeve t bra n dritaren pr dialog Font (emrtojm
kontrolln me emrin: dlgFont), do t bhen ndryshimet n tekstin e shkruar n
tekst-boksin me emrin txtTeksti.
Private Sub cmdFonti_Click()
dlgFont.Flags = 3
dlgFont.ShoFont
txtTeksti.FontName = dlgFont.FontName
txtTeksti.FontSize = dlgFont.FontSize
txtTeksti.FontBold = dlgFont.FontBold
txtTeksti.FontItalic = dlgFont.FontItalic
End Sub

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

Urdhri prcakton prshkrimin prmes iftit: Prshkrimi-Tipi t prshkrimit


tekstual t tipit t fajllave, pr fushat: Files of Type dhe Save as Type, si dhe
stringun q prdor shenjat xhoker pr filtrimin e tipit t fajllave. P.sh:
dlgHapja.Filter = Tekstet| *.txt| Vizatimet| *.bmp| T gjitha| *.*

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

ather, si opcion standard do t paraqitet ifti i par i elementeve t filtrit, ashtu q


kur t hapet dritarja Open, fusha Files of Type do t paraqes vetm fajllat tekstual,
t tipit *.txt dhe n dritare do t shihen vetm fajllat q kan prapashtesn TXT.

191

Avni Rexhepi - Visual Basic

Editori i menyve

Shembull:
Insertojm n form kontrollat si n fig. 3.17.

Fig. 3.7 Kontrolla CommonDialog


Kodi:
Private Sub cmdFonti_Click()
dlgFont.Flags = 3
dlgFont.ShowFont
lblPr.FontName = dlgFont.FontName
lblPr.FontSize = dlgFont.FontSize
lblPr.FontBold = dlgFont.FontBold
lblPr.FontItalic = dlgFont.FontItalic
End Sub
Private Sub cmdFajlli_Click()
dlgFile.Flags = 3
dlgFile.ShowOpen
dlgFile.FilterIndex = 0
picFoto.Picture = LoadPicture(dlgFile.FileName)
End Sub
Private Sub cmdngjyra_Click()
dlgNgjyra.ShowColor
shpDrejtK.BackColor = dlgNgjyra.Color

192

Kontrollat i emrtojm si vijon:


lblPr, picFoto, shpDrejtK,
cmdFonti, dlgFont, cmdFajlli,
dlgFile, cmdNgjyra dhe dlgNgjyra.
Prmes tastit komandues Fonti
(cmdFonti) hapim dialogun pr
zgjedhjen e fontit, pr tekstin e
shkruar n labeln, lblPr. Prmes
tastit komandues Fajlli (cmdFajlli)
hapim dialogun dlgFile, pr
zgjedhjen e fajllit i cili do t
paraqitet n kontrolln picFoto
(PicrueBox). Pr paraqitje t fotove,
kemi aplikuar filtrin pr tipet: *.jpg
(standarde) dhe *.bmp.
Prmes tastit Ngjyra (cmdNgjyra),
hapet dialogu dlgNgjyra, prmes s
cilit zgjedhet ngjyra e mbushjes pr
drejtkndshin shpDrejtK.

Avni Rexhepi - Visual Basic

Editori i menyve

'Form1.BackColor = dlgNgjyra.Color 'Pr ngjyrn e prapavis s forms


End Sub

Edhe n shembujt tjer n vijim, vazhdimisht do t prdoren dritaret pr dialog.


(Shembulli: Dialogu1.vbp).
Pr ruajtjen e fajllit, t shikohen shembujt, Ruajtja e fajllit.vbp dhe
EditoriKomplet.vbp).

193

Avni Rexhepi - Visual Basic

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).

Fig 3.22 Kontrollat e t dhnave

T tri kontrollat kan edhe pamjen e


njjt grupi i katr tasteve t cilat
mundsojn lvizjen npr bashksin e
t dhnave (Recordset): n fillim, n
fund, para (i ardhshmi) dhe prapa (i
prparshmi). (fig. 3.22)

Pr t krijuar nj aplikacion t thjesht pr baza t t dhnave prmes kontrolls


Data, duhet t insertojm n form kontrolln Data. Nse nuk ia prcaktojm
emrin, ajo paraqitet me emrin Data1. N dritaren e tipareve (Properties)
prcaktojm tiparet vijuese t saj: Connect (Lidhja, Lidhu) n tipin e dshiruar t
194

Avni Rexhepi - Visual Basic

Editori i menyve

bazs s t dhnave t ciln dshirojm ta prdorim. (p.sh., Access, sepse do t


lidhemi n bazn e t dhnave Fakulteti.mdb t krijuar prmes Access-it). Pr
tiparin Database Name (Emri i bazs s t dhnave) zgjedhim emrin e fajllit (ose
folderit ku ndodhet baza) n t ciln dshirojm t lidhemi. N Record Source
(Burimi i rekordeve) zgjedhim emrin e tabels n bazn e t dhnave, t cils
dshirojm ti qasemi. N kt fush, t tipit ComboBox, paraqitet lista e tabelave
t bazs n t ciln jemi lidhur.
Pastaj n form insertojm nj kontroll t tipit TextBox dhe pr t prcaktojm
tiparet vijuese: DataSource n Data1 (emrin e kontrolls Data), Data Field (Fusha
e t dhnave, kolona e tabels) n emrin e fushs t ciln dshirojm ta shikojm
ose ndryshojm. N kt fush paraqitet lista e fushave t tabels s zgjedhur. Pr
fushat tjera, prsri insertojm tekst-bokse t reja dhe pr secilin prcaktojm
tiparet si pr tekst-boksin e par. Pastaj ekzekutojm aplikacionin.
Tiparet q kan t bjn me t dhna (Data Related), t kontrolls Data, mund t
prcaktohen edhe n modin e ekzekutimit. Tiparet q prcaktohen (n renditje
logjike) jan:
RecordsetType (Tipir i bashksis s rekordeve-tabela viruale) prcakton nse
bashksia e rekordeve sht tabel, dynaset (bashksi dinamike) ose snapshot
(fotografi, pamje e qastit). Zgjedhja e ktij tipari ka ndikim n tiparet q jan n
dispozicion. Pr shembull, rekordsetet i tipit snapshot jan m t kufizuara se ato
dynaset. (Recordset - quhet tabela virtuale e cila krijohet si tabel e prkohshme,
me t dhnat e zgjedhura nga tabelat reale, prmes pyetsit, filtrimit, etj.)
Default Type (Tipi standard, i nnkuptuar) prcakton se a prdoret hapsira
punuese e tipit Jet apo ODBCDirect.
DefaultCursorType ( Tipi standard i kursorit) prcakton lokacionin e kursorit
(sht i vlefshm vetm pr rastet e prdorimit t ODBCDirect).
Exclusive (Ekskluzive) Prcakton nse t dhnat jan pr prdorim n ambient
pr nj apo m shumm shfrytzues. (Single-user dhe Multi-user environment). Ka
t bj me mundsin e qasjes s njkohshme n t dhna n bazat e shfrytzuara
prej m shum shfrytzuesve..
Options (Opcionet) prcakton karakteristikat e rekordsetit. Pr shembull, n
ambient multi-user, mund t caktohet tipari Options q nuk nuk lejon ndryshimet e
bra prej t tjerve.
BOFAction, EOFAction (Veprimet BOF dhe EOF) Kto dy tipare prcaktojn
se ka do t ndodh kur kontrolla ndodhet n fillim ose n fund t kursorit
(gjegjsisht n rekordin e par ose t fundit). Zgjedhja mundson qndrimin n
fillim ose n fund, kalimin n rekordin e par ose t fundit ose shtimin e rekordit t
ri (vetm pr rastin n fund).

195

Avni Rexhepi - Visual Basic

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.

Fig. 3.23 Kontrolla Data

Pastaj insertojm tekst-bokset:


txtNrIndx, txtEmri dhe txtMbiemri
dhe labelat: lblBaza, lblNrIndx,
lblEmri, lblMbiemri. Labelat i kan
tiparet Caption ashtu si shihet n
figur. Pr tekst-bokse prcaktojm
tiparet: DataSource (datStudentet,
njsoj pr t tri kontrollat) dhe Data
Field (Numri i Indeksit, Emri,
Mbiemri). Pastaj, kalojm n
dritaren e kodit dhe shkruajm
kodin vijues:

Private Sub Form_Load()


lblBaza.Caption = "Lidhja n bazn: " & datStudentet.DatabaseName
End Sub
Private Sub txtNrIndx_Change()
' datStudentet.Caption = txtNrIndx.Text
datStudentet.Caption = txtNrIndx.Text & " " & txtEmri.Text & " " & txtMbiemri.Text
End Sub

Pra, kur t paraqitet forma (ngjarja Form_Load) n labeln lblBaza, paraqitet


shtegu i plot i bazs s t dhnave n t ciln jemi lidhur. Ndrsa pr t paraqitur
n kontrolln datStudentet t dhnat aktuale, mund t caktojm tiparin Caption t
saj, duke larguar apostrofet para komenteve (t cilat jan urdhra por momentalisht
jan shndrruar n komente). Urdhri i par do t paraqiste vetm numrin e
indeksit kurse i dyti edhe emrin dhe mbiemrin. (Shembulli: Data1.vbp).

196

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

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.

OLE kontejneri n nj moment mund t prmbaj vetm nj objekt. Objektet e


lidhura ose t insertuara krijihen n disa mnyra:
- Prmes dialogut Insert Object ose Paste Special (gjat kohs s ekzekutimit ose
gjat kohs s dizajnimit).
- Duke prcaktuar tiparin Class n dritaren e tipareve, klikohet tasti i djatht n
kontrolln OLE container dhe zgjedhet komanda prkatse (vetm n modin e
dizajnimit).
- Duke prdorur metodn prkatse pr kontrolln OLE container.
Kur zhvendoset kontrolla OLE container n form, prmes metods ObjectMove,
vlerat e tipareve Height dhe Width t objektit mund t ndryshojn pak, pas
zhvendosjes. Kjo ndodh pr arsye se parametrat e metods ObjectMove jan vlera
t pixel-ave t konvertuara n njsin aktuale t forms (tipari ScaleMode).
Konvertimi prej pixel-ave n njsi tjetr dhe anasjelltas nuk rezulton gjithmon me
vlera identike.
Emrat e klasave (Class Names) paraqiten n listn q sht n dispozicion pr
aplikacionin, duke selektuar tiparin Class n dritaren e tipareve (Properties). Kjo
varet edhe prej programeve tjera t instaluara n sistem. Pr dallim prej ksaj liste,
n listn e objekteve q paraqitet n dritaren Insert Object, pr do klas paraqitet
emri m i prshtatshm dhe m i kuptueshm pr shfrytzuesit (userfriendly name)
q sht m i gjat, m prshkrues dhe m i leht pr tu kuptuar.

Lidhja me bazn e t dhnave


Kontrolla OLE container mund t lidhet pr t dhnat n Microsoft Jet Dabatase
ose Microsoft Access Database. Kjo mund t bhet p.sh., nse parqitet nevoja pr
t pasur nj tabel me t dhnat e t punsuarve dhe fotografit e tyre. Nse
fotografit jan ruajtur si objekte ato mund t lidhen pr kontrolln OLE dhe t
paraqiten n form kur i qasemi rekordeve n tabel prmes kontroll Data. Pr t
lidhur nj prej ktyre bazave t t dhnave, prcaktohet burimi i t dhnave (Data
Source), Database Name (Emri i bazs) dhe Recordset pr kontrolln Data. Pastaj
pr kontrolln OLE container prcaktohet tipari Data Field (Fusha e t dhnave)
198

Avni Rexhepi - Visual Basic

Editori i menyve

pr burimin e t dhnave. Kur paraqitet objekti prej bazs s t dhnve, kontrolla


OLE mundson aktivizimin, editimin dhe azhurimin e objektit. Si edhe me
kontrollat tjera t lidhura, objekti i azhuruar automatikisht kthehet prapa n bazn e
t dhnave kur ndryshohet pozita e rekordit.

Krijimi i objekteve n kohn e ekzekutimit


Pr t krijuar objekt t lidhur ose t insertuar n kohn e ekzekutimit, prdoren
metodat dhe tiparet n kodin e programit. Kontrolla OLE container ka disa tipare
dhe metoda t cilat mund t prdoren pr t manipuluar me objektet e lidhura dhe
t insertuara (Linked and embedded objects).
Duke prdorur tiparin Object t kontrolls OLE container, mund t prdoren
gjithashtu edhe metodat dhe tiparet e objektit t lidhur ose insertuar. Tipari Object
sht tipar i kohs s ekzekutimit dhe vetm pr lexim (run-time, read-only) i cili
mban referencat n kontrolln OLE container. Ky tipar prdoret pr detyrat e
automatizimit me kontrolln OLE, duke prfshir ktu edhe manipulimin
programatik t tipareve dhe metodave q i prkrah objekti. P.sh.:
strEmriObjektit = oleObjekti1.Object.Name

Pr t prdorur kt tipar, kontrolla OLE duhet t prmbaj nj objekt t


programueshm, q sht ndonj nj prej komponenteve ActiveX.
Objektit t lidhur prej fajllit n kohn e ekzekutimit krijohet prmes metods
CreateLink (KrijoLidhjen). Kjo metod ka argumentin SourceDoc (Dokumenti
burimor) i cili sht fajlli prej t cilit krijohet objekti dhe argumentin opcional
SourceItem, i cili specifikon t dhnat q mund t lidhen prej fajllit burimor. Pr
shembull:
oleObjekti1.CreateLink "C:\Temp\Test.xls"

krijon objekt t lidhur, n kohn e ekzekutimit.


Nse prdoret CreateLink pr t krijuar objekt t lidhur, nuk ka nevoj t
prcaktohen tiparet Class, SourceDoc dhe SourceItem n dritaren Properties.
Pr t krijuar objekt t insertuar prej fajllit, n kohn e ekzekutimit, mund t
prdoret metoda CreateEmbed. Kjo medot, ka dy argumente: sourcedoc dhe Class
(i cili sht opcional nse SourceDoc sht prcaktuar). Sourcedoc prcakton
shabllonin pr objektin dhe class prcakton tipin e objektit. Kur prdoret
CreateEmbed, nuk ka nevoj t prcaktohen tiparet SourceDoc dhe Class. P.sh.:
oleObjekti1.CreateEmbed "Llogarijta.xls"

krijon nj objekt t insertuar duke prdorur fajllin ekzistues si shabllon pr


objektin.
Kur krijohet objekti i zbrazt, sht mir t aktivizohet komponenta ActiveX e cila
do t siguroj t dhnat pr objektin. Kjo mund t bhet prmes metods DoVerb.
199

Avni Rexhepi - Visual Basic

Editori i menyve

Kjo lejon q shfrytzuesi t insertoj t dhnat n aplikacion n kohen e


ekzekutimit. Shfrytzuesi mund t paraqes pastaj t dhnat e reja t insertuara n
kontrolln OLE container duke zgjedhur komandn Update t komponents
ActiveX (e cila duhet t paraqitet n menyn File t komponentes).
Pr t krijuar objekt t zbrazt prdoret metoda CreateEmbed, pa specifikuar
dokumentin burimor. Pr shembull:
oleObjekti1.CreateEmbed "","Excel.Sheet"

inserton shabllonin pr nj faqe t Microsoft Excel-it, n kontrolln OLE. Metoda


DoVerb standarde pr Microsoft Exel sht Edit. Pr shembull:
oleObjekti1.CreateEmbed "", "Excel.Sheet"
oleObjekti1.DoVerb Edit ' Activizoje

krijon nj objekt t insertuar t zbrazt dhe pastaj aktivizon aplikacionin q e ka


krijuar, duke prdorur metodn DoVerb.
Kjo sht e dobishme kur krijohen aplikacione t varuara prej dokumenteve q
shfrytzojn informata prej aplikacioneve t ndryshme.
(Shembujt: Test.vbp, ClipArtet.vbp, Baza e te dhenave.vbp).
Shembull:
Krijoni nj dokument n Microsoft Word dhe ruajeni me emrin: Teksti.doc. Pastaj
kaloni n Visual Basic, dhe insertoni nj OLE kontroll ne form. Zgjedhni Create
Form File, me Browse zgjedhni dokumentin e krijuar dhe pastaj klikoni CheckBox-in Link dhe n fund OK. Dokumenti Teksti.doc do t paraqitet n OLE
kontroll. Ekzekutoni programin dhe klikoni dy her dokumentin Teksti.doc. N
kt rast thirret komplet programi Microsoft Word. Bni ndryshime n tekst dhe
pastaj ruajeni fajllin (File-Save) dhe mbylleni Word-in (File-Exit). Dokumenti i
modifikuar, shihet n Visual Basic. Prfundoni programin dhe paraqiteni prsri
formn, n modin e dizajnimit. N form, akoma do t shihet, versioni i vjetr i
dokumentit. Programi e ruan kt pamje, pr ta paraqitur gjat kohs s
ekzekutimit, n rast se nuk e gjen versinoni e fundit. Kur t ekzekutoni programin
prsri, akoma shihet dokumenti origjinal. Kur t klikoni dy her kontrolln OLE
n ekran, do t paraqitet dokumenti i azhuruar. Pr t azhuruar pamjen
automatikisht herave t ardhshme, klikoni dy her formn dhe n procedurn e
ngjarjes Form_Load, shkruani kodin: ole1.Action = 6 . Kjo do t bj, q herave
tjera, pamja n OLE kontroll t azhurohet automatikisht, kur t hapet forma n
modin e ekzekutimit. (Shembulli: Prishtina.vbp).

200

Avni Rexhepi - Visual Basic

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

Dritarja e fshehur dhe fokusi kalon n dritaren e


fshehur.
Dritarja merr fokusin dhe hapet n gjendjen dhe
pozitn e saj origjinale.
Dritarja paraqitet si ikon dhe ka fokusin.
Dritarja maksimale dhe ka fokusin.
Dritarja hapet n pozitn dhe madhsin e saj t
fundit.
Dritarja paraqitet si ikon. Dritarja aktualisht aktive,
mbetet aktive.

P.sh., dy taste komanduese me kodet si n vijim, startojn Wordin dhe Excelin:


Private Sub Command1_Click()
Dim IDAplikacioni, VleraKthyese
' Ekzekuto programin
IDAplikacioni = Shell("C:\Program Files\Microsoft Office\Office\Winword.exe", 1)
End Sub
Private Sub Command2_Click()
Dim VleraKthyese
VleraKthyese = Shell("C:\Program Files\Microsoft Office\Office\EXCEL.EXE",
vbMaximizedFocus) 'Argumenti 3 ose vbMaximizedFocus, dritarja maksimale, e merr
fokusin
AppActivate VleraKthyese 'Ekzekuto programin.
End Sub

201

Avni Rexhepi - Visual Basic

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.

Fig. 4.1 Editori i menyve

Menyt mundsojn organizim m


t mir t komandave t ndryshme,
grupimin e komandve t
ndrlidhura, eleminimin e numrit e
madh t tasteve komanduese n
forma dhe krijimin e programeve
m atraktive.
N dritaren e editorit t menyve
paraqiten opcionet t cilat duhet
definuar, pr krijimin e menyve n
program. N pjesn e poshtme t
dritares ndodhet fusha (ListBox) ku
bhet paraqitja e lists s menyve t
definuara e cila njherit mundson
zgjedhjen e menyve t definuara
pr t br ndryshime t nevojshme
n to, nse paraqitet nevoja.

Fushat dhe opcionet n dritaren Menu Editor jan kto:


- Caption (Titulli, teksti i shkruar) mundson definimin e menus ose emrit t
komands e cila do t paraqitet n rreshtin e menus ose n meny. Nse duhet t
krijohet viza ndarse, shtypet vetm nj viz (minus, hyphen (-)) n fushn
Caption. Pr t mundsuar qasjen n meny prmes tastiers, duhet insertuar
shenjn & (Ampersand) para shkronjs prkatse. Gjat kohs s ekzekutimit,
ajo shkronj paraqitet e nnvizuar (& nuk shihet) dhe shfrytzuesi mund ti qaset
menys duke e shtypur ALT dhe shkronjn e nnvizuar.
- Name (Emri) lejon definimin e emrit pr kontrolln menu. Emri i kontrolls
sht nj identifikator q prdoret vetm pr t ju qasur elementit t menys n
kodin e programit dhe nuk paraqitet n meny. Duhet t definohet patjetr.
- Index (Indeksi) mundson ndarjen e vlers numerike q prcakton pozitn n
kuadr t vargut t kontrollave. Kjo pozit nuk sht e lidhur me pozitn n ekran.
202

Avni Rexhepi - Visual Basic

Editori i menyve

- Shortcut (Shkurtesa) lejon zgjedhjen e shkurtess pr seciln komand


- HelpContextID (ID pr ndihm) lejon prcaktimin e vlers numerike unike pr
ID t kontekstit pr ndihm. Kjo vler prdoret pr t gjetur pikn prkatse t
Help fajllit.
- NegotiatePosition (Negocimi i pozits) lejon zgjedhjen e pozits s menys dhe
prcakton a do t paraqitet dhe si do t paraqitet menya n formn bartse.
- Checked (e zgjedhur) lejon paraqitjen e shenjs s zgjedhjes n skajin e majt t
menys. Prdoret pr t treguar opcionin e kyqur ose t kyqur.
- Enabled (e mundsuar) lejon zgjedhjen se a do t prgjigjet menya n ngjarje
apo jo, me rast do t paraqitet e zbehur.
- Visible (e dukshme) lejon paraqitjen e menys n form.
- WindowList (Lista e dritares) prcakton nse menya prmban list pr format
fmij (MDI child) n aplikacionet MDI.
Shigjeta djathtas bn zhvendosjen e menys nj nivel m posht, si
nnmeny, seciln her q t shtypet. Mund t krijohen deri n katr nnnivele t
nnmenyve.
Shigjeta majtas bn zhvendosjen pr nj nivel m lart.
Shigjeta lart bn zhvendosjen e menys, nj pozit m lart brenda nivelit
t njjt t menys.
Shigjeta posht bn zhvendosjen e menys, nj pozit m posht brenda
nivelit t njjt t menys.
- Menu List (Lista e menys) List Box-i q paraqet listn e elementeve hierarkike
t menys (Pjesa e poshtme e dritares s Editorit t menyve). Nnmenyt jan t
zhvendosura m djathtas pr t treguar pozitn n hierarki ose nivelin.
- Next (i ardhshmi, tjetri) zhvendos zgjedhjen n rreshtin e ardhshm.
- Insert (Inserto) inserton nj rresht n listn e menyve, mbi rreshtin e zgjedhur
momentalisht.
- Delete (fshije) fshin rreshtin e zgjedhur momentalisht.
- OK mbyll editorin e menys dhe aplikon ndryshimet e bra. Menyja sht n
dispozicion n modin e dizajnimit dhe zgjedhja e menyve n modin e dizajnimit
hap dritaren e kodit, pr ngjarjen Click t asaj menye. N modin e ekzekutimit,
menya e zgjedhur bn ekzekutimin e kodit t definuar pr t n modin e dizajnimit.
- Cancel (pezullo, anulo) mbyll editorin e menyve dhe pezullon t gjitha
ndryshimet e bra.
Pr shembull, duke definuar prmes editorit t menyve, elementet si n fig. 3.18a,
n modin e dizajnimit menya duket si n fig. 3.18b dhe n modin e ekzekutimit kur
hapet prmes tastiers, si n fig. 3.18c.

203

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Editori i menyve

shkruar kodin pr menyn, hapet menya dhe klikohet n menyn pr t ciln


dshirojm t definojm urdhrat. N kt rast hapet dritarja e kodit pr menyn e
zgjedhur. P.sh., nse zgjedhet menya Open, ather do t hapet dritareja e kodit dhe
do t prgatitet struktura pr ngjarjen Click pr t:
Private Sub mnuOpen_Click()
End Sub

Brenda procedurs definojm urdhrat q do t ekzekutohen me rastin e zgjedhjes


s menys. Pr shembull, nse n form kemi insertuar edhe kontrolln pr dialog
dlgOpen, ather pr t hapur dialogun Open, shkruajm kodin vijues:
Private Sub mnuOpen_Click()
Dim strOpen As String
dlgOpen.ShowOpen
strOpen = dlgOpen.FileName
Merr emrin e fjallit prej dialogut Open
' Prdore metodn LoadFile pr t hapur fajllin.
rtfData.LoadFile strOpen
End Sub

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

Avni Rexhepi - Visual Basic

Editori i menyve

End Sub
Private Sub mnu18_Click()
txtTeksti.FontSize = 18
End Sub
Private Sub mnu20_Click()
txtTeksti.FontSize = 20

End Sub

Fig. 3.19a Menya e programit

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

Avni Rexhepi - Visual Basic

Fig. 3.20 Editori i tekstit

Editori i menyve

Pastaj prmes editorit t menyve,


definojm menyt:
- File me nnmenyt: Ngjyrat dhe
Dalja. Menya Ngjyrat, gjithashtu
ka nnenyt: Zi ne Bardh dhe
Bardh ne Zi. Pr menyn Zi n
Bardh aktivizojm opcionin
Checked (E zgjedhurm, a
aktivizuar) ashtu q fillimisht t
jet e zgjedhur.
-Edit me mnmenyt: Undo, Cut,
Copy, Paste dhe Select All.
Pastaj kalojm n dritaren e kodit
dhe shkruajm kodin pr projektin
Editori i tekstit.

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

Avni Rexhepi - Visual Basic

Editori i menyve

Private Sub mnuBardhNeZi_Click()


txtFaqja.BackColor = vbBlack
txtFaqja.ForeColor = vbhite
mnuZiNeBardh.Checked = False
mnuBardhNeZi.Checked = True
End Sub
Private Sub mnuCut_Click()
Dim strLeft As String 'Variabla q mban tekstin majtas prej kursorit
Dim strRight As String 'Varibala q mban tekstin djathtas prej kursorit
Dim strFull As String 'Tr teksti
intGFCursorPos = txtFaqja.SelStart 'Merre pozitn e kursorit n tekt
strFull = txtFaqja.Text
'Merre tr tekstin nga tekst-boksi
strLeft = Left(strFull, intGFCursorPos) 'Prcakto tekstin n t majt t kursorit
'Prcakto tekstin n t dhatht t kursorit, duke prjashtuar tekstin e zgjedhur
strRight = Right(strFull, Len(strFull) - (intGFCursorPos + txtFaqja.SelLength))
Clipboard.SetText (txtFaqja.SelText)
strGFUndoBuffer = txtFaqja.Text

'Drgo tekstin e zgjedhur n clipboard


'Drgo tekstin ekzistues n buferin pr Undo

'"Cut"-Preje tekstin e zgjedhur dhe krijo stringun e ri me tekstin e mbetur


txtFaqja.Text = strLeft & strRight
txtFaqja.SelStart = intGFCursorPos 'Vendose kursorin n pikn e prerjes
End Sub
Private Sub mnuDalja_Click()
Dim strMsg As String
strMsg = "A jeni t sigurt se dshironi t ndrpreni programin?"
If MsgBox(strMsg, vbYesNo + vbQuestion, _
"Dalja prej Editorit t tekstit") = vbYes Then
End
End If
End Sub
Private Sub mnuPaste_Click()
Dim strTemp As String 'Teksti prej Clipboard=it
Dim strLeft As String 'Variabla q mban tekstin majtas prej kursorit
Dim strRight As String 'Variabla q mban tekstin djathtas prej kursorit
Dim strFull As String 'Krejt teksti

strTemp = Clipboard.GetText(vbCFText) 'Merre tekstin prej Clipboard-it

208

Avni Rexhepi - Visual Basic

Editori i menyve

intGFCursorPos = txtFaqja.SelStart
strFull = txtFaqja.Text

'Gjeje pozitn e kursorit n tekst

'Merre tr tekstin nga tekst-boksi

strLeft = Left(strFull, intGFCursorPos) 'Prcakto tekstin n t majt t kursorit


'Prcakto tekstin n t dhatht t kursorit, duke prjashtuar tekstin e zgjedhur
strRight = Right(strFull, Len(strFull) - (intGFCursorPos + txtFaqja.SelLength))
strGFUndoBuffer = txtFaqja.Text

'Drgo tekstin ekzistues n buferin pr Undo

'"Paste" tekstin e zgjedhur n tekstin n tekst-boks


txtFaqja.Text = strLeft & strTemp & strRight
intGFCursorPos = Len(strLeft & strTemp) 'Vendose kursorin n pozitn pr Paste
txtFaqja.SelStart = intGFCursorPos
End Sub
Private Sub mnuSelectAll_Click()
txtFaqja.SelStart = 0
txtFaqja.SelLength = Len(txtFaqja.Text)
End Sub
Private Sub mnuUndo_Click()
txtFaqja.Text = strGFUndoBuffer
'Vendose kursorin n pozitn pr prerje "Cut"
txtFaqja.SelStart = intGFCursorPos
End Sub
Private Sub mnuCopy_Click()
Clipboard.SetText txtFaqja.SelText
End Sub

209

Avni Rexhepi - Visual Basic

Gabimet

Komponentet kontrollat shtes


Prve kontrollave t brendshme, npr projekte prdoren edhe kontrollat shtes t
cilat ndodhen n kuadr t komponenteve. Ato nuk paraqiten n fillim n shiritin e
veglave (Toolbox), por duhet t shtohen duke hapur dritaren Components (menya:
Project Components (CTRL+T), ose klikohet me t djathtn n Toolbox dhe n
menyn e kontekstit zgjedhet Components) dhe duke zgjedhur komponentn
prkatse, e cila mund t prmbaj n vehte disa kontrolla.

Kontrolla Rich TextBox


Kontroll m e prsosur pr krijimin e programeve pr editim t tekstit
sht kontrolla RichTextBox (Textbox i pasur), e cila ndodhet n grupin e
komponenteve shtes.
Pr t mudnsuar prdorimin e kontrolls RichTextbox, duhet shtuar komponenten:
Microsoft Rich Textbox Control 6.0. (Zgjedhni n meny: Project-Components ose
shtypni tastin e djatht n ToolBox, zgjedhni Components, dhe pastaj n dritaren
Components zgjedhni Microsoft Rich Textbox Control 6.0).
Kontrolla RichTextbox prkrah t gjitha komandat e zakonshme t editorve t
teksteve, pr lvizjen npr tekst, editimin e tekstit (Cut, Copy, Paste), selektimin e
pjess s tekstit, zgjedhjen e fontit, madhsis dhe ngjyrave t tij, pr pjes t
caktuara t tekstit, insertimin e fotografive n tekst, etj. Nse n modin e
ekzekutimit, brenda koontrolls zvarritet ndonj objekt, ai do t inesrtohet n
kontroll. Pr ruajtje, prkrahet formati *.rtf (Rich Text Format), q sht tekst i
formatizuar me format t pasur (Rich), q sht standard i tekstit i cili mund t
shkmbehet ndrmjet t gjitha programeve t cilat prkrahin formatizimin e tekstit:
fontin, kalimin n rresht t ri, rreshtimin, paragrafin etj., ashtu q t mund t barten
tekstet e formatizuara prej nj programi n tjetrin. P.sh., tekstet e shkruara prmes
Microsoft Word-it, pr ti bartur n programe tjera ose n versione m t hershme,
pr t qen t sigurt se do t mund t hapen, mund ti ruani si tekste t tipit *.rtf.
Prndryshe, editori i brendshn sistemit operativ Windows, WordPad sht
kontroll e tipit RichTextbox dhe tekstet e shkruara me t si format t par t
ruajtjes preferojn tipin e fajllit: *.rtf.
Shembull:
N form insertojm kontrolln RichTextbox dhe prmes editorit t menyve
krijojm menyn File t programit me komandat e zakonshme pr do program:
New, Open..., Save, Save As..., Print dhe Exit. Gjithashtu insertojm kontrollat pr
dialog (CommonDialog): dlgOpen, dlgSave dhe dlgPrint, pr dritaret pr dialog pr
hapjen, ruajtjen dhe shtypjen e fajllit (Fig. 3.21).
210

Avni Rexhepi - Visual Basic

Fig. 3.21 Kontrolla Rich TextBox.

Gabimet

Pr zgjedhjen e ngjyrs, fontit dhe


madhsis s tekstit kemi insteruar
tri kontrolla ComboBox
(cboFontColor, cboFontName dhe
cboFontSize). Kto kontrolla jan
insertuar n kontrolln bartse t
tyre t tipit ToolBar (Shirit i
veglave), e cila sht nj prej
elementeve t kontrolls shtes
Microsoft Windows Common
Controls 6.0. (Kontrolla Toolbar do
t shpjegohet n detaje m von).
Pr funksionimin e programit,
shkruajm kodin vijues:

(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

Avni Rexhepi - Visual Basic

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

'Kthe fokusin n kontrolln RichTextbox

Private Sub mnuExit_Click()


Dim strMsg As String

'Menya pr dalje nga programi

strMsg = "A jeni t sigurt se dshironi t ndrpreni programin?"


If MsgBox(strMsg, vbYesNo + vbQuestion, _
"Dalja prej Editorit t tekstit") = vbYes Then
End
End If
End Sub

212

Avni Rexhepi - Visual Basic

Gabimet

Private Sub mnuPrint_Click()


' Kontrolla CommonDialog ka emrin "dlgPrint."
dlgPrint.Flags = cdlPDReturnDC + cdlPDNoPageNums
If rtfTeksti.SelLength = 0 Then 'Nse nuk sht selektuar nj pjes e tekstit
dlgPrint.Flags = dlgPrint.Flags + cdlPDAllPages 'Shtypi t gjitha faqet
Else
dlgPrint.Flags = dlgPrint.Flags + cdlPDSelection 'Shtype pjesen e zgjedhur
End If
dlgPrint.ShowPrinter
rtfTeksti.SelPrint dlgPrint.hDC 'Shtyp ne printerin e zgjedhur ne dialog
'hDC (handle Device Context - pajisja e zgjedhur ne kontekst)
End Sub
Private Sub rtfTeksti_SelChange()
' SelFontSize kthen madhsin e fontit, ose Null nse sht i przier
If Not IsNull(rtfTeksti.SelFontSize) Then
cboFontSize.Text = rtfTeksti.SelFontSize
End If
' Trego emrin e fontit n cboFontName
If Not IsNull(rtfTeksti.SelFontName) Then
cboFontName.Text = rtfTeksti.SelFontName
End If
' Trego ngjyrn e tekstit n cmdFontColor.
' Prdori kontstantat e brendshme pr t prcaktuar ngjyrn
' e tekstit.
Select Case rtfTeksti.SelColor
Case vbBlack
cboFontColor.ListIndex = 0
Case vbBlue
cboFontColor.ListIndex = 1
Case vbRed
cboFontColor.ListIndex = 2
Case vbGreen
cboFontColor.ListIndex = 3
End Select
End Sub
Private Sub mnuNew_Click()
'A dshironi t filloni fajllin e ri?
Dim Pergjegja As Integer
Pergjegja = MsgBox("A jeni t sigurt se dshironi t filloni fajll t ri?", vbYesNo +
vbQuestion, "Fajlli i ri")
If Pergjegja = vbYes Then rtfTeksti.Text = ""
End Sub
Private Sub mnuOpen_Click()
' Kontrolla RichTextBox ka emrin "rtfTeksti."
' Dialogu CommonDialog sht emrtuar "dlgOpen"
' Deklaro variabln String pr emrin e fajllit

213

Avni Rexhepi - Visual Basic

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

Si shihet prej kodit, pjess s selektuar t tekstit n kontrolln RichTextbox i


adresohemi ose i qasemi prmes tipareve dhe metodave: SelLength (Gjatsia e
teksit t selektuar), SelFontName, SelFontSize, SelColor, SelPrint, etj.
Kodi i menyve t ktij shembulli, mund t prdoret pr programe tjera, duke
modifikuar tipin e fajllave prmes tiparit Filter t kontrollave pr dialog.

214

Avni Rexhepi - Visual Basic

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

(Kalendari) q sht komponente e veant - Microsoft


Calendar Control 8.0, kurse n kuadr t komponents
Microsoft Windows Common Controls-2 6.0 gjinden edhe
kontrollat MonthView (pamja e muajit) dhe DTPicker
(vjelsi, nxjerrsi i datave).

Vlerat e kalendarit (tipari Calendar.Value) mund ti ndahen ndonj kontrolle tjetr


ose t paraqiten n labela apo tekst-bokse. Pr shembull, insertojm n form
kontrolln Calendar (Calendar1) dhe ia japim madhsin e dshiruar.

Fig. 4.6a- Tiparet e kalendarit

Nse e klikojm me tastin e djatht


dhe prej menys s kontekstit
zgjedhim Properties, n ekran do t
paraqitet dritarja Property Pages
(Faqet e tipareve) n t ciln
prcaktohet pamja e kalendarit (fig.
4.6a). Prcaktojm: ditn e par t
javs (First Day), gjatsin e dits,
gjatsin e muajit, efektet e
qelulave t datave dhe n kornizn
Show, cilat elemente t kalendarit
do t shihen.

Mund t paraqiten: titulli i muajit/vitit, zgjedhsi i muajit/vitit, dita e javs, rrjeta


horizontale dhe rrjeta vertikale. Prmes faqeve Font dhe Color, mund t
ndryshojm fontin dhe ngjyrat e kalendarit. Pas ndryshimeve t bra, me OK
aprovojm ndryshimet dhe mbyllim dritaren.
Pr paraqitjen e dats dhe dits s zgjedhur n kalendar, insertojm kontrollat
lblData dhe txtDita (fig. 4.6b). Pr t lvizur npr data, prveq mundsis s
prdorimit t elementeve t vet kalendarit, mund t insertojm edhe taste
komanduese prmes t cilave lvizim npr muaj dhe vite. Kshtu n form kemi
insertuar tastet komanduese cmdMP dhe cmdMA pr t kaluar n muajin e
prparshm dhe muajin e ardhshm, respektivisht, si dhe kontrollat cmdVP dhe
cmdVA, pr t kaluar n vitin e prparshm dhe vitin e ardhshm. Tiparet caption t
kontrollave prkatsi i kemi prcaktuar si: < dhe >. Labelat prkatse (lblMuaji
dhe lblViti) pran tasteve komanduese sqarojn prdorimin e kontrollave.
215

Avni Rexhepi - Visual Basic

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

Data e sotme, mirret prej sistemit


'Paraqite n label daten e sotme

Private Sub Calendar1_AfterUpdate()


'Pas azhurimit, ndryshimit n kalendar
txtDita.Text = Calendar1.Day
'Paraqite ne teks-boks ditn (Day - dita)
txtDita = Format(Calendar1.Value, "dddd")
lblData.Caption = Calendar1.Value
'Paraqite ne teks-boks datn (Value - vlera)
End Sub
Private Sub Calendar1_Click()
'Klikimi n kalendar
lblData.Caption = Calendar1.Value
txtDita.Text = Calendar1.Day
txtDita = Format(Calendar1.Value, "dddd")
End Sub
Private Sub cmdMP_Click()
Calendar1.PreviousMonth
'Muaji i prparshm
End Sub
Private Sub cmdMA_Click()
Calendar1.NextMonth
End Sub

'Muaji i ardhshm

Private Sub cmdVP_Click()


Calendar1.PreviousYear
End Sub

'Viti i prparshm

216

Avni Rexhepi - Visual Basic


Private Sub cmdVA_Click()
Calendar1.NextYear
End Sub

Gabimet

'Viti i ardhshm

Kontrollat MonthView dhe DTPicker


Pr t paraqitur dhe manipuluar datat n form m t prshtatshme prdoret
kontrolla MonthView, kurse pr t mos zn hapsir t madh n form prdoret
kontrolla DTPicker. Kontrolla DTPicker sht shum e prshtatshme pr zgjedhjen
dhe paraqitjen e datave n forma t ndryshme. Pr ti prdorur kto dy kontrolla,
duhet shtuar komponentn Microsoft Windows Common Controls 2 - 6.0. Pr
shembull, insertojm n form kontrollat si n fig. 4.7.

Fig. 4.7 MonthViw dhe DTPicker

Data aktuale e sistemit, sht e


rrethuar me ngjyr t kuqe, kurse
data e zgjedhur n kalendar,
paraqitet me prapavij ngjyr hiri.
Paraqitja e dats aktuale, mund t
eleminohet n modin e dizajnimit,
prmes tiparit ShowToday False
(Paraqite datn e sotme). Kontrolla
DTPicker sht ComboBox, e kur
hapet duket njsoj si MonthView,
me rast zgjedhet data e cila
paraqitet n kontroll.

Prmes kodit vijues, do t paraqesim datn n fushn txtData dhe ditn n


kontrolln lblData, kurse ndryshimet e vlerave n kontrolln MonthView ose
DTPicker, prcillen edhe n kontrolln tjetr. Kodi:
Private Sub Form_Load()
lblData.Caption = DTPicker1.Value
txtData.Text = DTPicker1.Value
End Sub
Private Sub DTPicker1_Change()
MonthView1.Value = DTPicker1.Value
lblData.Caption = Format(DTPicker1.Value, "dddd") 'Formati pr paraqitje t dits
'txtData.Text = Format(DTPicker1.Value, "dddd")
End Sub
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
DTPicker1.Value = MonthView1.Value
lblData.Caption = Format(DTPicker1.Value, "dddd")

217

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

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).

Fig. 4.8 Kontrolla ImageList

N kornizn Current Image


(Fotografia momentale) n fushn
Index (indeksi) paraqitet numri i
cili i ndahet fotos si indeks. Mund
t definohen edhe vlerat pr fushat
Key (els) dhe Tag (Etiket, shenj
pr prcjellje). N skajin e djatht,
posht, n fushn Image Count
(Numri i fotografive), paraqitet
numri i fotografive t insertuara n
kontroll. Prmes faqes Color
mund t bhet ndryshimi i
ngjyrave.

N folderin Microsoft Visual Studio, ku sht instaluar paketi n shtegun: Microsoft


Visual Studio\Common\Graphics\Bitmaps ndodhen foldert t cilt prmbajn
219

Avni Rexhepi - Visual Basic

Gabimet

fajlla t ndryshm t cilt mund t prdoren pr insertimin e fotografive n


kontrolln ImageList. Aty ndodhen edhe foldert: Icons, OffCtlBr dhe TlBr_W95,
n t cilt ndodhen fotografit e ikonave t shiritave t veglave t programeve
standarde t Microsoft Office-it dhe t Windows-it.

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

Avni Rexhepi - Visual Basic

Gabimet

Pages (Faqet e tipareve - fig. 4.10). N fushn ImageList t saj, zgjedhim


kontrolln ImageList t ciln e kemi krijuar paraprakisht.
Pr ti bashkangjitur kontrolln
ImageList, kontrolls ImageCombo,
n modin e ekzekutirmit, me rastin
e paraqitjes s forms (procedura e
ngjarjes Form_Load), caktojm
tiparin ImageList t kontrolls, si
n vijim:
ImageCombo1.ImageList=ImageList1

Fig. 4.10 Property Pages per ImageCombo

Pr tia ndar nj elementi t


kontrolls ImageCombo,
fotografin prkatse nga
ImageList, ia shoqrojm numrin
rendor t saj tiparit Index ose Key t
elementit prkats n
ImageCombo.

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

Avni Rexhepi - Visual Basic

Gabimet

prkatse ImageBox, ua bashkangjesim kontrollat ImageList, prmes definimit t


fushs ImageList, n dritaren Property Pages (Faqet e tipareve - Fig. 4.10).

Fig. 4.11b Figurat ne kontrollat ImageList


Pr tua shoqruar elementeve t kontrollave ImageCombo, elementet nga
kontrollat ImageList, n dritaren e kodit, pr ngjarjen Form_Load( ), shkruajm
kodin vijues:
Private Sub Form_Load()
Mbushja e kontrolls prmes metods Add-Shto
ImageCombo1.ComboItems.Add(1, "Bold", "Bold") = "Bold"
ImageCombo1.ComboItems.Add(2, "Italic", "Italic") = "Italic"
'ImageCombo1.Indentation = 2 ' Nse duhet br zhvendosje djathtas
ImageCombo1.ComboItems.Add(3, "Underlined", "Underlined") = "Underlined"
'Ndarja e fotografive permes emrit tiparit Key
ImageCombo1.ComboItems("Bold").Image = 1
ImageCombo1.ComboItems("Italic").Image = 2
ImageCombo1.ComboItems("Underlined").Image = 3
ImageCombo2.ComboItems.Add(1, "E zez", "E zez") = "E zez"
ImageCombo2.ComboItems.Add(2, "E kuqe", "E kuqe") = "E kuqe"
ImageCombo2.ComboItems.Add(3, "E kaltr", "E kaltr") = "E kaltr"
ImageCombo2.ComboItems.Add(4, "E gjelbr", "E gjelbr") = "E gjelbr"
ImageCombo2.ComboItems.Add(5, "Vjollce", "Vjollce") = "Vjollce"
ImageCombo2.ComboItems(1).Image = 1
'Ndarja e fotografive permes indeksit
ImageCombo2.ComboItems(2).Image = 2
ImageCombo2.ComboItems(3).Image = 3
ImageCombo2.ComboItems(4).Image = 4
ImageCombo2.ComboItems(5).Image = 5
End Sub

Pra, metoda Add, ka sintaksn:


ImageCombo1.ComboItems.Add([Index],[Key],[Text],[Image],[SelImage],[Indentation]) as
ComboItem

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

Avni Rexhepi - Visual Basic


Private Sub ImageCombo1_Click()
Select Case ImageCombo1.Text
Case "Bold"
rtfTeksti.SelBold = True
Case "Italic"
rtfTeksti.SelItalic = True
Case "Underlined"
rtfTeksti.SelUnderline = True
End Select

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

Ngjyra e tekstit e zez


Ngjyra e tekstit e kuqe
Ngjyra e tekstit e kaltr
Ngjyra e tekstit e e gjelbr
Ngjyra e tekstit e vjollce

rtfTeksti.SetFocus
End Sub

N fig. 4.11c, kemi paraqitur si do t dukej forma n modin e ekzekutimit:


Teksti i shkruar n kontrolln
rtfTeksti, sht shkruar n rreshta t
veant dhe sht br formatizimi
i tekstit prmes secilit prej
opcioneve nga kontrollat
ComboItem. Shihet, se kur hapet
kontrolla ComboItem, pr secilin
opcion sht paraqitur edhe figura
prkatse.
(Shembulli: ImageCombo.vbp).
Fig. 4.11c ImageBox n modin e
ekzekutimit

223

Avni Rexhepi - Visual Basic

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.

Fig. 4.12a Property Pages -Faqja General

Fig. 4.12b Property Pages - Faqja Tabs

N modin e dizajnimit, mund t


shtohen ose largohen Tab-at,
prmes dritares Property Pages
(Faqet e tipareve - Fig. 4.12b), e
cila hapet duke klikuar tastin e
djatht n kontrolln TabStrip dhe
duke zgjedhur Properties. Me
Insert Tab shtohen, kurse me
Remove Tab, largohen faqet (Tabat). E njjta gj mund t arrihet n
modin e ekzekutimit prmes
metodave prkatse. Edhe vet
dritarja Property Pages prmban
kontrolln TabStrip, me faqet e saj.
Tipari Tabs i kontrolls TabStrip
sht koleksion i objekteve Tab.
Secili objekt Tab, ka tiparet e
shoqruara me gjendjen e saj
momentale dhe pamjen e saj. Pr
shembull, kontrolls TabStrip mund
ti shoqrohet nj kontroll
ImageList (Fig. 4.12a) dhe t
prdoren imazhet n tabet
individuale. Gjithashtu secilit Tab
object mund ti shoqrohet
ToolTipText, q do t paraqitet si
tekst udhzues, kur mbahet kursori
mbi kontroll.

Tipari Style (Stili) prcakton pamjen e faqeve t kontrolls TabStrip.


Pr t prcaktuar madhsin e kontrolls TabStrip, bhet zvarritja e pikave
zgjedhse n skajet e kontrolls ose duke prcaktuar tiparet Top, Left, Height dhe
224

Avni Rexhepi - Visual Basic

Gabimet

Width. Bazuar n madhsin e kontrolls n modin e ekzekutimit, Visual Basic-u


automatikisht prcakton madhsin dhe pozitn e zons s brendshme dhe kthen
tiparet e koordinatave t klientit: ClientLeft, ClientTop, ClientRight dhe
ClientWidth. Tipari MultiRow prcakton a do t ket kontrolla m shum se nj
rresht t Tab-eve kurse tipari TabWidthStyle prcakton pamjen e secilit rresht. Nse
TabWidthStyle definohet si tabFixed, ather mund t prdoren tiparet
TabFixedHeight dhe TabFixedWidth pr t caktuar lartsin dhe gjersin e njjt
pr t gjitha faqet (Tab) t kontrolls TabStrip.
Kontrolla TabStrip nuk sht barts (kontejner), prandaj pr t mbajtur faqet dhe
objektet aktuale, duhet t prdoret kontrolla Frame ose ndonj barts tjetr i cili i
prshtatet madhsis s zons s brendshme t prbashkt pr t gjitha objektet
Tab n kontroll. Preferohet prdorimi i kontrolls Frame, me tiparin BorderStyle None, si barts, n vend t kontrolls PictureBox, sepse kontrolla Frame bn m
pak ngarkes (ka OverHead Kod t kreut t kontrolls - m t vogl) dhe punon
m shpejt.
Nse prdoret vargu i kontrollave pr bartsin, do objekti Tab, mund ti
shoqrohet elementi prkats n varg.
Kur bhet grupimi i kontrollave n kontejner, duhet t prdoret strategjia show/hide
(paraqite/fshehe) pr t paraqitur kontrolln Frame n pamje t par (n front), n
vend t metods ZOrder, e cila gjithashtu kontrollon paraqitjen n front ose n
prapavi. Prndryshe, kontrollat t cilat i prgjigjen kombinimit t tasteve
ALT+Tasti, akoma do ti prgjigjen komandave prej tasiers, edhe nse bartsi nuk
sht kontrolla n pamje t par (n front).
Edhe grupet e kontrollave OptionButton duhet t ndahen duke i vendosur npr
kontejnert e vet, prndryshe do t sillen si nj grup i madh i OptionButtons.
Shembull:
Insertojm n form kontrollat:
TabStrip, ImageLis, dhe TextBox.
Krijojm katr faqe t kontrolls
TabStrip, e pastaj insertojm
kontrolln Frame dhe krijojm
vargun e kontrollave Frame(1),
Frame(2), Frame(3) dhe Frame(4).
N seciln prej tyre insertojm nga
nj kontroll Label, me tiparin
prkats Caption. Duhet pasur
kujdes gjat krijimit t kontrollave
Frame, q t mos insertohen njra
n tjetrn, por t jen t pavarura.
Fig. 4.12c Kontrolla TabStrip
225

Avni Rexhepi - Visual Basic

Gabimet

(Provoni t zvarritni kontrolln e par Frame1(1) dhe nse njkohsisht


zhvendosen edhe kontrollat tjera Frame1(i), ather ato jan insertuar brenda
kontrolls paraprake. Testin e njjt e bni edhe pr kontrollat vijuese).
N kontrolln ImageList, insertojm katr figurat si n Fig. 4.12c dhe ia
bashkangjesim faqeve prkatse t kontrolls TabStrip.
Kjo arrihet duke prcaktuar tiparin Image (Fig. 4.12b), n faqen Tabs t dritares
Property Pages. Vlera pr Image, do t jet vlera prkatse e figurs n kontrolln
ImageList. Pastaj shkruajm kodin vijues:
Private Sub Tabstrip1_Click()
Dim i As Integer
For i = 1 To 4
'ose For i = 1 To Frame1.Count
If TabStrip1.SelectedItem.Index = i Then
Frame1.Item(i).Visible = True
Text1.Text = "Faqja: " & Frame1.Item(i).Index
Else
Frame1.Item(i).Visible = False
End If
Next i
End Sub

N modin e ekzekutimit, duke klikuar n faqen prkatse, paraqitet kontrolla


Frame me numr prkats t indeksit dhe prmbajtja e saj.
(Shembulli: TabStrip1.vbp). (T shikohet edhe shembulli TabStrip2.vbp, lidhur me
t cilin jipen m von).

226

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Gabimet

elementeve nga kontrolla ImageList1. S pari konfigurojm kontrolln ImageList1


prmes procedurave t prshkruara m par, pr kontrolln ImageList.
Pastaj, klikojm me tastin e djatht
shiritin e veglave (kontrolln tlbT)
dhe n menyn e kontekstit
zgjedhim Properties, pr t hapur
dritaren Property Pages (Fig.
4.12b). Dritarja ka tri faqe:
General, Buttons (tastet) dhe
Picture (Figura). N faqen e par
General, ndodhen fushat q kan t
bjn me konfigurimin e tipareve t
kontrolls Toolbar, si forma e
mausit, lista e fotografive t
Fig. 4.12a Shiriti i veglave - Toolbar
ikonave (ImageList), lista e
fotografive pr ikonat joaktive,
madhsia e tasteve komanduese, pamja e tyre, stili etj.

Fig. 4.12b Tiparet e shiritit t veglave

N listn e fushs ImageList


paraqiten emrat e kontrollave
ImageList, t insertuara n form.
Kemi edhe listat DisabledImageList
(pr tastet e deaktivizuara) dhe
HotImageList (pr tastet e
nxehta) me opcionet e ndryshme
pr rastet e mundshme t gjendjes
s tasteve. N faqen Buttons (fig.
4.12c) paraqitet lista e tipareve t
tasteve komanduese n Toolbar.
Insertimi dhe largimi i tasteve bhet
prmes tasteve komanduese Insert
Button dhe Remove Button. N
fushn Index paraqitet indeksi
(nurmri rendor) i tastit komandues.

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

Avni Rexhepi - Visual Basic

Gabimet

1 - tbrCheck (tast pr zgjedhje, me dy gjendje t mundshme, si tastet Bold, Italic,


etj), e kshu me rradh.
N fushn ToolTipText, shtypet
teksti q do t paraqitet kur t
mbahet kursori mbi tast. N fushn
Image (Fotografia) definohet numri
i fotografis n kontrolln
ImageList, e cila do t paraqitet n
ikon (tast komandues).
Prmes kornizs, ButtonMenus,
mundsohet krijimi i tasteve
komanduese me meny pr zgjedhje.
N fund, me OK konfirmojm
konfigurimin dhe mbyllet dritarja.
Insertojm figurat ashtu q forma t
duket si n fig. 4.12a.
Fig. 4.12c Tiparet e tasteve komanduese
Pasi t kryhet dizajnimi, kalojm n dritaren e kodit dhe shkruajm kodin vijues
pr ngjarjen ButtonClick:
Private Sub tlbT_ButtonClick(ByVal Button As MSComctlLib.Button)
' Pr t prcaktuar cili tast sht shtypur, prdoret vlera e tiparit Key
Select Case Button.Key
Case "New"
rtfTeksti.Text = ""
Case "Open"
'CommonDialog1.ShowOpen
'Ktu do t vinte kodi pr dialogun Open
MsgBox "Ktu duhet vendosur kodin, pr hapjen e fajllit", , "Kodi pr Open"
Case "Bold" ' Tasti Bold
If Button.Value = vbChecked Then
'Tasti sht i shtypur (Checked)
rtfTeksti.SelBold = True
Else
'Tasti i deaktivizuar(Unchecked)
rtfTeksti.SelBold = False
End If
Case "Italic" ' Tasti Italic
If Button.Value = vbChecked Then
rtfTeksti.SelItalic = True
Else
rtfTeksti.SelItalic = False
End If

' Tasti i deaktivizuar

Case "Underlined"
If Button.Value = vbChecked Then

229

Avni Rexhepi - Visual Basic

Gabimet

rtfTeksti.SelUnderline = True
Else
rtfTeksti.SelUnderline = False
End If
' Mund t vendosen m shum taste dhe m shum opcione
End Select
End Sub

Tani aplikacioni sht i gatshm pr prdorim. (Shembulli: Toolbar1.vbp).


Pr t par si bhet konfigurimi i shiritit t veglave n modin e dizajnimit, prmes
kodit dhe pr t par opcionet e prdorimit t DisabledImageList (tastet e
deaktuvizuara, t cilat nuk mund t prdoren momentalisht) dhe HotImageList,
shikoni shembujt: Toolbar2.vbp dhe Toolbar3.vbp.
Objekti Button mund t paraqes vetm nj foto pr secilin tast (Button). Gjat
kohs s ekzekutimit, s pari prcaktohet si do t duket tasti: normal, hot apo
disabled dhe pastaj prdoret fotografia nga lista prkatse: ImageList,
DisabledImageList apo HotImageList duke prdorur tiparin e njjt Image si
els (Key). sht me rndsi q t kuptohet se fotot e ndrlidhura n seciln list
duhet t jen t emrtuara n prputhje me njra tjetrn ashtu q kontrolla Toolbar
t paraqes figurat korrekte. Pr shembull, nse tasti i caktuar prdor t tri llojet e
fotografive, ather secila prej tyre duhet t definohet n listn gjegjse t fotove
(ImageList) dhe t ket ose tiparin Index ose at Key t njjt, n t tri kontrollat.

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

Avni Rexhepi - Visual Basic

Gabimet

Kontrolla StatusBar zakonisht paraqet informatat lidhur me objektin q ka fokusin


n form, komponentet e objektit ose informatat kontekstuale lidhur me
operacionet e ndryshme.
Prmes dritares pr dialog, Property Pages (Fig. 4.13a) q hapet prej menys s
kontekstit pr kontrolln StatusBar, konfigurojm panelet e StatusBar-it.

Fig. 4.13a Property Pages pr kontrolln


StatusBar

Indeksi tregon numrin rendor t


panelit. Text paraqet tekstin q do
t shihet n panel, kurse
ToolTipText tekstin q paraqitet kur
mbahet kursori mbi panel. Key dhe
Tag jan tipare identifikuese.
Minimum Width paraqet gjersin
minimale pr panel. Actual Width
gjersin aktuale. Prmes fushs
Alignment (rreshtimi) prcaktohet
rreshtimi i tekstit n panel, kurse
fusha Style (stili) prcakton stilin e
panelit. P.sh., pr rastin si n figur,
stili 5 sbrTime paraqet kohn e
sistemit.

Prmes fushs Bevel, prcaktohet si do t duket paneli n StatusBar, pr tu dalluar


prej t tjerve. Me kt tipar zakonisht manipulohet prmes kodit, ashtu q pr
panelin aktual, t ndryshohet vlera momentale e tiparit Bevel pr ta dalluar prej
paneleve joaktuale. Gjithashtu kemi edhe fushn AutoSize, e cila mundson
ndryshimim atutomatik t gjersis s paneleve, pr rastin kur ndryshohet gjersia
e forms.
Pr t krijuar panele gjat kohs s ekzekutimit prdoret urdhri Set dhe metoda
Add. S pari deklarohet variabla pr tipin e Panel-it dhe pastaj i ndahet panelit t
krijuar prmes metods Add, si n vijim:
'Kontrolla StatusBar sht emrtuar sbrShembull
Dim pnlX As Panel
Set pnlX = sbrShembull.Panels.Add()

Kur t krijohet objekti Panel dhe t prcaktohet variabla pr t ju referuar objektit


t ri, mund t prcaktohn tiparet e ndryshme pr Panel:
pnlX.Text = Drive1.Drive Paraqitet emri i njsis
pnlX.Picture = LoadPicture("Dielli.bmp")
Insertohet figura n Panel
pnlX.Key = "Disku"
Prcaktimi i elsit

231

Avni Rexhepi - Visual Basic

Gabimet

Pr t mundsuar reagimin n klik pr Panelin e caktuar, duhet prcaktuar tiparin


Key pr t. Pasi q ky tipar ka vler unike, mund t prdoret pr identifikim t
panelit t caktuar.
Pr t prcaktuar panelin e klikuar, prdoret urdhri Select Case.
Shembull:
Insertojm n form dy kontrolla t tipit TextBox, dy Label dhe nj StatusBar (Fig.
4.13b). Prmes dritares Property Pages, insertojm katr panele dhe i
konfigurojm q t duken si n figur.

Fig. 4.13b Kontrolla StatusBar

Pr panelin e tret dhe t katrt


zgjedhim stilin sbrTime dhe
sbrDate dhe insertojm nga nj
foto. Prmes kodit, do ti lidhim
panelin e par dhe t dyt me
kontrollat n form ashtu q do ti
ndryshojm tiparet e tyre gjat
kohs s ekzekutimi. Kodi:

Private Sub Text1_Change()


'Paraqiti ndryshimet edhe n StatusBar
StatusBar1.Panels(1) = "Emri: " & Text1.Text
End Sub
Private Sub Text1_GotFocus()
'Kur kontrolla ka fokusin:
StatusBar1.Panels(1) = "Emri: " & Text1.Text
StatusBar1.Panels(1).Bevel = sbrRaised 'Ngrite panelin aktiv - 1
StatusBar1.Panels(2).Bevel = sbrInset 'Ktheje gjendjen e mparshme
End Sub
Private Sub Text2_Change()
StatusBar1.Panels(2) = "Mbiemri: " & Text2.Text
End Sub
Private Sub Text2_GotFocus()
StatusBar1.Panels(2) = "Mbiemri: " & Text2.Text
StatusBar1.Panels(1).Bevel = sbrInset 'Ktheje gjendjen e mparshme
StatusBar1.Panels(2).Bevel = sbrRaised 'Ngrite panelin aktiv - 2
End Sub

(Shembulli, StatusBar1.vbp)

232

Avni Rexhepi - Visual Basic

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.

Fig. 4.14a Tiparet e kontrolls TreeView

Jan n dispozicion disa stile t


cilat ndryshojn pamjen e
kontrolls. Objektet Node (nyjet)
mund t paraqiten n nj stil prej
tet kombinimeve t mundshme t
tekstit, bitmap-ave, vijave dhe
shenjave plus/minus.
Kontrolla TreeView prdor
kontrolln ImageList, t prcaktuar
prmes tiparit ImageList, pr t
ruajtur ikonat dhe bitmap-at e
paraqitura n objektet Node.
Kontrolla TreeView mund t
prdor vetm nj ImageList n
koh.

233

Avni Rexhepi - Visual Basic

Gabimet

Kjo do t thot, se secili element n TreeView do t ket nj figur me madhsi t


barabart kur stili i saj sht zgjedhur si stil q paraqet fotografit.
Shembull:
Le t krjijojm prmes kodit, nj struktur q do t paraqitet n form, prmes
kontrolls TreeView.
Insertojm n form nj kontroll
TreeView dhe nj tast komandues
(Fig. 4.14b). Prmes dritares s
tipareve, Property Pages
prcaktojm stilin e kontrolls
TreeView (tipari Style) si:
tvwTreelinesPlusMinusText.
Pastaj kalojm n dritaren e kodit,
dhe pr ngjarjen Form_Load( ),
shkruajm kodin prmes t cilit do
t krijojm objektet Node (nyjet),
duke prdorur metodn Add (Shto)
dhe parametrat e saj.
Fig. 4.14b Kontrolla TreeView
Private Sub Form_Load()
Dim nyjaX As Node
Set nyjaX = TreeView1.Nodes.Add(, , "r", "Rrnja")
Set nyjaX = TreeView1.Nodes.Add("r", tvwChild, "c1", "Fmija 1")
Set nyjaX = TreeView1.Nodes.Add("r", tvwChild, "c2", "Fmija 2")
Set nyjaX = TreeView1.Nodes.Add("r", tvwChild, "c3", "Fmija 3")
Set nyjaX = TreeView1.Nodes.Add("c3", tvwChild, "c4", "Fmija 4")
Set nyjaX = TreeView1.Nodes.Add("c3", tvwChild, "c5", "Fmija 5")
Set nyjaX = TreeView1.Nodes.Add("c5", tvwChild, "c6", "Fmija 6")
Set nyjaX = TreeView1.Nodes.Add("c5", tvwChild, "c7", "Fmija 7")
nyjaX.EnsureVisible
TreeView1.BorderStyle = vbFixedSingle
End Sub

Pastaj, pr tastin komandues shkruajm kodin pr ngjarjen Click, ashtu q kur t


zgjedhet nyja n form dhe klikohet tasti komandues, n ekran t paraqiten
informatat pr nyjen e zgjedhur dhe raportin e saj me nyjet tjera.
Private Sub Command1_Click()
Dim nyjaX As Node
' Ndaja variabln elementit t zgjedhur

234

Avni Rexhepi - Visual Basic

Gabimet

Set nyjaX = TreeView1.SelectedItem


Dim strTiparet As String
' Thirri tiparet e nyjes
strTiparet = "Text-i: " & nyjaX.Text & vbLf
strTiparet = strTiparet & "Tipari Key: " & nyjaX.Key & vbLf
'Nyja rrnj nuk ka prind
On Error Resume Next ' N rast gabimi, vazhdo me urdherin vijues.
strTiparet = strTiparet & "Prindi: " & nyjaX.Parent.Text & vbLf
strTiparet = strTiparet & "Vllau/Motra i/e par: " & _
nyjaX.FirstSibling.Text & vbLf
strTiparet = strTiparet & "Vllau/Motra i/e fundit: " & _
nyjaX.LastSibling.Text & vbLf
strTiparet = strTiparet & "N vijim: " & nyjaX.Next.Text & vbLf
MsgBox strTiparet, , "Informatat"
End Sub

N modin e ekzekutimit, forma do t duket si n fig. 4.14c.

Fig. 4.14c TreeView n modin e


ekzekutimit

Nse zgjedhet nyja Fmija3 dhe


shtypet tasti Info, n ekran do t
paraqiten informatat si n figur.
(Shembulli: TreeView1.vbp)

235

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Fig. 4.15a- Kontrolla ListView

Gabimet

Prmes kodit, do ti shtojm


elementet e lists dhe t kontrolls
TreeView, si dhe do t ju ndajm
ikonat nga kontrolla ImageList.
Pr kontrolln ListVieww, do t
prcaktojm pamjen Report.
Gjithashtu, pr elementet (nyjet) e
kontrolls TreeView do t
shkruajm kodin pr ngjarjen
NodeClick( ).

Duke klikuar n nyjen e pems, do t ndryshohet ngjyra e elementit prkats n


listn ListView1. Kodi:
Private Sub Form_Load()
Dim Kolona As ColumnHeader
Dim Elementi As ListItem
Dim i As Integer
For i = 1 To 4
Set Kolona = ListView1.ColumnHeaders.Add()
Kolona.Text = "Kolona-" & i
Next i
' Shto 8 elemente me ikona t njjta n listn ListView1
For i = 1 To 8
Set Elementi = ListView1.ListItems.Add()
Elementi.SmallIcon = 1
Elementi.Text = "Elementi: " & i
Elementi.SubItems(1) = "Nn-elementi 1"
Elementi.SubItems(2) = "Nn-elementi 2"
Elementi.SubItems(3) = "Nn-elementi 3"
Next i
Dim NyjaX As Node 'Definojme nyjet e kontrolles TreeView1
Set NyjaX = TreeView1.Nodes.Add(, , "R", "Rrnja", 1)
NyjaX.Expanded = True
Set NyjaX = TreeView1.Nodes.Add(, , "P", "Prindi", 1)
NyjaX.Expanded = True
Set NyjaX = TreeView1.Nodes.Add("R", tvwChild, , "Fmija 1", 2)
Set NyjaX = TreeView1.Nodes.Add("R", tvwChild, , "Fmija 2", 2)
Set NyjaX = TreeView1.Nodes.Add("R", tvwChild, , "Fmija 3", 2)
Set NyjaX = TreeView1.Nodes.Add("P", tvwChild, , "Fmija 4", 3)
Set NyjaX = TreeView1.Nodes.Add("P", tvwChild, , "Fmija 5", 3)
Set NyjaX = TreeView1.Nodes.Add("P", tvwChild, , "Fmija 6", 3)
End Sub

237

Avni Rexhepi - Visual Basic

Gabimet

Private Sub TreeView1_NodeClick(ByVal Node As Node)


Form1.Caption = "Index-i=" & Node.Index & " Text-i: " & Node.Text
ListView1.ListItems(Node.Index).Ghosted = True
ListView1.ListItems(Node.Index).ForeColor = vbRed
End Sub

N modin e ekzekutimit, forma do t duket si n fig. 4.15b.

Fig. 4.15b ListView n modin e ekzekutimit


Shembull:
Insertojm n form nj kontroll ListView dhe prmes kodit vijues, n t do t
paraqesim t dhnat nga tabela Studentet (baza e t dhnave Fakulteti.mdb).
Private Sub Form_Load()
' Shto titujt e kolonave (ColumnHeaders). Gjersia e kolonave sht
' sa gjersia e kontrolls e pjestuar me numrin e kolonave
ListView1.ColumnHeaders.Add , , "Emri", ListView1.Width / 3
ListView1.ColumnHeaders.Add , , "Mbiemri", ListView1.Width / 3, lvwColumnLeft
ListView1.ColumnHeaders. _
Add , , "Datlindja", ListView1.Width / 3, lvwColumnCenter
' Cakto tiparin View n Report.
ListView1.View = lvReport
' Deklaro objekt variablat pr objektet Data Access (qasja n Database)
Dim Db As Database, Rs As Recordset
' Cakto tiparin Database n bazn Fakulteti.MDB
' Nse ndodhet n shteg tjetr, ndryshoni shtegun
Set Db = DBEngine.Workspaces(0).OpenDatabase _
("C:\Shtegu\Fakulteti2.mdb")
' Cakto tiparin recordset n tabeln "Studentet".

238

Avni Rexhepi - Visual Basic

Gabimet

Set Rs = Db.OpenRecordset("Studentet", dbOpenDynaset)


' Deklaro variabln pr t shtuar objektet ListItem.
Dim itmX As ListItem
' Deri sa nuk arrin te rekordi i fundit shto elemenetin ListItem.
' Prdore fushn Emri pr tekstin e objekteve ListItem.
' Prdore fushn Mbiemri pr SubItem(1) t objektit ListItem.
' Prdore fushn "Datelindja" pr objektin SubItem(2) t ListItem
While Not Rs.EOF
Set itmX = ListView1.ListItems.Add(, , CStr(Rs!Emri))
' Nse fusha Mbiemri nuk sht "null", ather cakto
' SubItem 1 n t.
If Not IsNull(Rs!Mbiemri) Then
itmX.SubItems(1) = CStr(Rs!Mbiemri)
End If

' Emri.

' Nse fusha e dats s lindjes nuk sht Null,


' cakto SubItem 2 n t.
If Not IsNull(Rs![Datelindja]) Then
itmX.SubItems(2) = Rs![Datelindja]
End If
Rs.MoveNext ' Kalo n rekordin tjetr
Wend
End Sub

Me rastin e ekzekutimit, do t fitohet pamja si n fig. 4.16. (Shembulli:


ListView1.vbp)

Fig. 4.16 Kontrolla ListView

N kt shembull, jan prdorur


disa objekte dhe urdhra pr qasje
n baza t t dhnave, t cilat do t
shpjegohen n pjesn pr
menaxhimin e bazave t t dhnave
me Visual Basic.
Kontrolla ListView mundson q t
bhet sortimi i t dhnave n baz
t kolons, titulli i s cils klikohet.
Gjithashtu ka mundsi, q prmes
klikut t dyfisht t bhet ndryshimi
i sortimit nga rritja n zbritje dhe
anasjelltas.

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

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Fig. 4.17 Kontrolla ProgressBar

Gabimet

Do t prdorim nj varg numrash,


kufijt e t cilit do t jen vlerat
kufitare pr prcaktimin e tipareve
Min dhe Max t kontrolls
ProgressBar. Pr prcaktimin e
vlerave kufitare do t prdorim
funksionet Lbound(X), q merr
vlern e poshtme (minimale) t
X-it, dhe Ubound(X) q merre
vlern e eprme (maksimale) t Xit, ku X zakonisht sht varg.

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

'Rreshtimi ne fund t dritares


'Ne fillim nuk shihet

'LBound - Kufiri i poshtem


'UBound - Kufiri i eperm
'Parqitet ProgressBari - shihet

'Cakto vleren e Progress barit n Min.


ProgressBar1.Value = ProgressBar1.Min
'Unaz prgjat vargut
For Numratori = LBound(Vargu) To UBound(Vargu)
ProgressBar1.Value = Numratori
Next Numratori
'ProgressBar1.Visible = False
ProgressBar1.Value = ProgressBar1.Min
End Sub

'Fshehet perseri - nuk shihet

(Shembulli: ProgressBar.vbp)

241

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

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.

Fig. 4.19 Kontrolla Slider

N modin e dizajnimit hapim


dritaren Property Pages dhe n
faqen General prcaktojm tiparet:
Min-0, Max-100, SmallChnage-1,
LargeChange-5, kurse n faqen
Appearance prcaktojm tiparin
TickFrequency-5. Vlerat tjera, nuk i
ndryshojm.
Pastaj kalojm n dritaren e kodit
dhe shkruajm kodin vijues, prmes
s cilit paraqesim vlerat n
kontrolln lblVlera.
243

Avni Rexhepi - Visual Basic

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

N modin e ekzekutimit, dritarja do t duket si n Fig. 4.19. (Shembulli:


Slider1.vbp). N folderin e shembujve Slider, shikoni edhe shembujt, pr rastin me
selektim (Slider SelText.vbp) dhe pr pamje t ndryshme t kursorit.

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.

Fig. 4.20a Kontrolla MSChart


244

Avni Rexhepi - Visual Basic

Fig. 4.20b Tiparet e grafikut

Gabimet

Nse e klikojm kontrolln Chart


me tastin e djatht dhe zgjedhim
Properties, do t hapet dritarja e
tipareve si n Fig. 4.20b, prmes s
cils mund t prcaktohet tipi i
grafikut (faqja Chart), boshtet
(Axis), rrjeta (Axis Grid), serit
(Series), ngjyra (Series Color),
fonti (Font), teksti (Text), prapavia
(BackDrop), etj. Si opcion (Chart
Options) n faqen Chart kemi edhe
paraqitjen e legjends s grafikut
(Show legend).

Prndryshe edhe n dritaren e tipareve, mund t prcaktohet tipi i grafikut, duke


prcaktuar tiparin Chart Type, ose stilin dhe ngjyrn e mbushjes s grafikut,
prmes tiparit RandomFill. Kto tipare gjithashtu mund t ndryshohen n modin e
ekzekutimit prmes kodit prkats.
Pr t par mundsit e prdorimit t kontrolls Chart, shikoni shembujt n
folderin MSChart.

Kontrolla Masked Edit Control


Kontrolla Masked Edit Control, prdoret pr t kufizuar dhnien e vlerave
hyrse duke specifikuar mostrn e dhnies s vlerave hyrse prmes masks
hyrse, si dhe pr formatizimin e vlerave dalse.
Prmes ksaj kontrolle, shfrytzuesit i sygjerohet se si duhet t jepen vlerat, far
tipi i t dhnave duhet t jepet apo si do t duken vlerat dalse. N praktik,
kontrolla e ngjashme prdoret n Microsoft Access, e njohur si Input Mask (Maska
hyrse) pr t dhnat e tipit Text.
Fajlli q e prmnban kontrolln sht MSMASK32.OCX.
Kontrolla Masked Edit zakonisht sillet si TextBox standard, me opcionet e
zgjeruara pr maskat hyrse dhe pr vlera dalse t formatizuara. Nse nuk
prdoret maska hyrse, pra nuk definohet tipari Mask i kontrolls, kontrolla sillet si
TextBox standard, prveq aftsive t saj pr DDE (Dynamic Data Exchange).
Kontrolla prdoret pr t krkuar dhnien e dats, kohs, numrit, valuts, ndonj
shablloni t t dhnave si numr telefoni ose numr sigurimi, pr t paraqitur t
dhnat dalse n nj form t caktuar, etj.
Tiparet kryesore t saj jan:
- Mask q prcakton tipin e informatave q jepet si vler hyrse n
kontroll. Prdor karakteret pr definimin e vlerave hyrse.
245

Avni Rexhepi - Visual Basic

Gabimet

Text prmban tekstin e dhn n kontroll (bashk me shenjat udhzuese,


literalet).

Ngjarjet kryesore jan:


- Change (Ndryshimi) ngjarja e cila thirret kur ndryshojn t dhnat n
kontroll, dhe
- Validation Error (Gabimi i validitetit, vlefshmris) ngjarja q thirret kur
vlera e dhn prej shfrytzuesit nuk prshtatet me maskn hyrse.
Gjatsia maksimale e masks hyrse sht 64 karaktere. Shenjat q prdoren pr
definimin e masks hyrse, n tiparin Mask t kontrolls jan:
Shenja
#
.

,
:
/
\
&
>
<
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.

Duhet pasur kujdes gjat definimit t masks, q t prdoren shenjat t cilat


definojn vlerat opcionale dhe vlerat e domosdoshme. P.sh., pr definimin e
masks pr numra t telefonit, prefiksi mund t definohet si opcional, kurse numri i
telefonit si i domosdoshm: (999) ###-###. Kur definohet maska, ather pranohen
vetm karakteret e lejuara dhe kshtu evitohet dhnia e vlerave t gabuara pr
fushat e caktuara.

246

Avni Rexhepi - Visual Basic

Gabimet

Shembull:
Insertojm n form tri kontrolla t tipit Masked Edit dhe tri kontrolla t tipit
Label, si n Fig 4.21.

Fig. 4.21a Maska hyrse modi i


dizajnimit

Fig. 4.21b Maska hyrse modi i


ekzekutimit

Prckatojm tiparin Mask t


kontrollave prkatse, si n fig.
4.21a. Pra treguesi i pozits # dhe
literali /, pr dat. Ngjashm pr
koh, pozita # dhe shenja ndarse
:, si dh pr numra t telefonit,
pozita # dhe shenjat e kllapave
dhe viza ndarse prkatse. Ruajm
dhe ekzekutojm projektin.

N modin e ekzekutimit, maskat


duken si n fig. 4.21b. Kshtu,
prmes masks shfrytzuesi
udhzohet se far vlera duhet t
shtyp, por njherit atij i kufizohet
mundsia e dhnies s vlerave t
gabuara, pasi q p.sh., nuk lejohet
shtypja e shkronjave kur krkohet
vler numerkike, nuk lejohen
karaktere t teprta, etj.

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

Avni Rexhepi - Visual Basic

Gabimet

Kontrolla MultiMedia prdore nj bashksi t komandave t nivelit t lart, t


pavarura prej pajisjes, t njohura si MCI Commands, t cilat kontrollojn
MultiMedia pajisjet e ndryshme. Shumica e ktyre komandave i korrespondojn
tasteve n kontrolln MultiMedia. Pr shembull komanda Play (Ekzekuto, luaj) i
prgjigjet tastit Play.
Pajisjet q i prkrah kontrolla MultiMedia dhe stringu i nevojshm, q duhet
definuar pr tiparin DeviceType, pr prdorimin e pajisjes jan si vijon:
Tipi i pajisjes
CD audio

Stringu
CDAudio

Tipi i fajllit

Prshkrimi
CD audio player

Digital Audio Tape

DAT

Digital audio tape player

Digital video

DigitalVideo

Digital video n dritare (jo GDI)

Other

Other

Pajisje MCI e padefinuar

Overlay

Overlay

Pajisje Overlay

Scanner

Scanner

Skener

Sequencer

Sequencer

Vcr

VCR

AVI
Videodisc
ave audio

.mid

Musical Instrument Digital Interface


(MIDI) sequencer
Video recorder ose Video player

AVIVideo
Videodisc

.avi

Audio Visual Interleaved video.


Videodisc player

Waveaudio

.wav

Pajisje Wav pr ekzekutim t


fajllave t tipit .wav (fajllat me forma
valore t digjitalizuara).

Kontrolla MultiMedia n esenc sht nj interfejs i Visual Basic-ut pr kt


bashksi t komandave. Komandat si Play dhe Close kan ekuivalentet e tyre n
strukturn e komandave t Win32 API. N tabeln vijuese jan treguar MCI
komandat q prdoren prej kontrolls MultiMedia dhe Win32 ekuivalentet e tyre.
Komanda
Open
Close
Play
Pause
Stop
Back
Step

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

Avni Rexhepi - Visual Basic


Prev

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

Kur t vendoset CD-ja n njsi, do t ndryshoj edhe statusi i tasteve prkatse n


kontroll.
Pr t kyqur pajisjen MCI kur t mbullet forma, pr ngjarjen Form_Unload,
shkruajm kodin vijues:
Private Sub Form_Unload (Cancel As Integer)
MMControl1.Command = "Close"
End Sub

Shikoni edhe shembullin pr ekzekutimin e fajllave .wav, q ndodhet n folderin


MultiMedia (Vrejtje: caktoni shtegun prkats pr folderin Media, t sistemit
operativ n kompjuterin tuaj).

249

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Gabimet

Gjetja dhe evitimi i gabimeve t kohs s ekzekutimit


Gabimet e kohos s ekzekutimit (Run-time errors) jan t kapshme. Pra, Visual
Basic-u mund ti detektoj ato dhe pastaj i mundson shfrytzuesit q t ndrmarr
hapa t nevojshm pr evitimin e tyre. Nse gabimi ndodh, por programi nuk e
z n kurth at, ather programi do t ndrprehet ose do t prfundoj me
rezultate t paparashikueshme. Pr znien e gabimeve t kohs s ekzekutimit
prdoret urdhri On Error, n formn:
On Error GoTo LablaeGabimit

Pra, n kto raste, zakonisht prdoret urdhri i padshiruar GoTo. Kurdo q t


ndodh ndonj gabim gjat kohs s ekzekutimit, kontrolla e programit kalon n
rreshtin e etiketuar me labln (etiketn) LabelaeGabimit. N pjesn e programit, t
treguar me labeln LabelaeGabimit, shkruhen urdhrat t cilt trajtojn gabimet.
Skema e prgjithshme e procedurs e cila bn edhe trajtimin e gabimeve do t
dukej si n vijim:
Sub ShembullimeGabime()
.
. [Deklarimi i variablave, ...]
.
On Error GoTo TrajtoGabimet
Kalo n pjesn e trajtimit t gabimeve
.
.{Kodi i procedurs]
.
Exit Sub
Dalja prej procedurs, n rast se nuk paraqiten gabime
TrajtoGabimet:
.
.[Kodi i trajtimit t gabimeve]
.
End Sub

Pra, menjher pas deklarimit t variablave dhe definimit t konstanteve,


ekzekutohet urdhri me t cilin mundsohet trajtimi i gabimeve. Pra n kt rast
kalohet n pjesn e programit q merret me trajtimin e gabimeve, nse paraqitet
ndonj gabim gjat ekzekutimit t urdhrave t procedurs prkatse. Kodi pr
trajtimin e gabimeve vendoset n fund t procedurs, pas labels TrajtoGabimet.
Kjo sht pjesa e kodit e cila ekzekutohet nse sht hasur ndonj gabim n
procedur. Duhet pasur kujdes, q t dilet prej procedurs (Exit Sub) para se t
arrihet tek TrajtoGabimet, pr t evituar ekzekutimin e paqllimt t kodit pr
trajtim t gabimeve edhe pa u paraqitur asnj gabim.
Nse n ndonj moment dshironi t kyqni znien e gabimeve, duhet dhn
urdhrin: On Error GoTo 0.
251

Avni Rexhepi - Visual Basic

Gabimet

Kur paraqiten gabimet, dshirojm t dijm far gabimi ka ndodhur dhe si ta


prmirsojm at, gj q bhet n pjesn e kodit pr trajtimin e gabimeve. Pr t
identifikuar gabimet e mundshme, Visual Basic-u ka t definuar objektinfunksionin Err, i cili prmban tiparin Number (Err.Number), q paraqet numrin
identifikues q i shoqrohet secilit gabim. Funksioni Error( ), e merr numrin e
gabimit si argument t vetin dhe e kthen stringun (tekstin) shpjegues pr gabimin e
ndodhur. Pr numrat e gabimeve, shikoni Help-in dhe shtojcn n fund t librit.
Kur detektohet gabimi dhe kryhet ndonj veprim i definuar pr rastet e gabimit,
kontrolla duhet ti kthehet prsri programit. Kontrolla i kthehet programit prmes
urdhrit Resume (Rifillo). Ekzistojn tri opcione t urdhrit Resume:
- Resume lejon q t provohet edhe njher veprimi i cili shkaktoi
gabimin. Kjo do t thot, se kontrolla i kthehet programit n rreshtin ku ka
ndodhur gabimi. Kjo mund t jet e rrezikshme, sepse nse gabimi nuk
sht prmirsuar (prmes kodit, ose prej shfrytzuesit), ather do t
prsritet gabimi, me rast programi hyn n unaz t pafund.
- Resume Next kontrolla i kthehet programit n rreshtin q ndodhet pas
rreshtit ku ka ndodhur gabimi.
- Resume Labela Kontrolla i kthehet programit n rreshtin e treguar me
labln Labela.
Duhet pasur kujdes me urdhrin Resume, sepse kur ekzekutohet pjesa pr trajtimin
e gabimit, nse fundi i procedurs haset para urdhrit Resume, prsri paraqitet nj
gabim. Ngjashm, nse Resume haset jasht pjes s kodit pr trajtim t gabimit,
ndodh nj gabim.

Procedura e prgjithshme pr trajtimin e gabimeve


Procedura pr trajtimin e gabimeve varet prej aplikacionit dhe qllimit t
prdorimit t tij. Duhet pasur njohuri pr llojin e gabimeve t mundshme n
program, ashtu q t mund t krijohen procedurat e nevojshme pr trajtimin
adekuat t tyre. Pr shembull, nse paraqitet pjestimi me zero, a t anashkalohet
veprimi apo t ndryshohet vlera e pjestuesit.
Forma e prgjithshme e kodit pr trajtimin e gabimeve, i cili mund t prdoret n
do procedur pr t detektuar gabimin, pr ta lajmruar shfrytzuesin se cili gabim
ka ndodhur dhe pr ta pyetur pr hapin e ardhshm: Abort (Ndrpreje), Retry
(Riprovo) ose Ignore (Injoroje) gabimin e paraqitur, duket si n vijim:
TrajtoGabimin:
Labela
Select Case MsgBox( Error(Err.Number), vbCritical+vbAbortRetryIgnore, _
Error Number: +Str(Err.Number))
Case vbAbort
Resume Dalja
Nse zgjedhet Abort, kalo tek Labela Dalja

252

Avni Rexhepi - Visual Basic


Case vbRetry
Resume
Case vbIgnore
Resume Next
End Select
Dalja: Labela Dalja
Exit Sub

Gabimet

Nse shtypet Retry, tento prsri, prsrite


Pr Next, vazhdo me urdhrin e ardhshm

Kjo pjes e programit (Nnprogram, Rutin) ekzekutohet vetm nse ndodh


ndonj gabim. Nse ndodh ndonj gabim, paraqitet dritarja e mesazhit (MsgBox),
e cila prdor shpjegimin e gabimit t siguruar prej Visual Basic-ut
(Error(Err.Number) si mesazh, dhe paraqet shenjn e gabimeve kritike n program
me tastet: Abort, Retry, Ignore, si dhe e prdor si titull t dritares numrin e gabimit
(Err.Number).
Ky MsgBox kthen prgjigjen q tregon se cili tast sht shtypur prej shfrytzuesit.
Nse zgjedhet Abort, thjesht dilet prej procedurs, gj q bhet duke kaluar tek
Labela Dalja, e cila ka urdhrin pr dalje prej procedurs (Exit Sub). Pra, siq
shihet, do trajtim gabimi prfundon me ndonj prej opcioneve Resume, si u tregua
m hert.
Nse zgjedhet Retry, urdhri q ka shkaktuar gabimin provohet prsri. Duhet
pasur kujdes, q pr kt rast t ndrmirret ndonj veprim adekuat pr t
prmirsuar gabimin, prndryshe ai prsritet.
Nse zgjedhet Ignore, programi vazhdon me ekzekutimin e urdhrit vijues, pas atij
q ka shkaktuar gabimin.
Pr t testuar pjesn e programit pr trajtim t gabimeve, mund t prdoret urdhri i
Visual Basic-ut i destinuar pr kt qllim, i cili simulon paraqitjen e gabimit t
kohs s ekzekutimit. Objekti Err i Visual Basic-ut ka metodn Raise (shkakto,
krijo) Err.Raise, e cila prdor numrin pr t gjeneruar gabimin me at numr:
Err.Raise Number. N tabeln vijuese sht paraqitur lista e gabimeve t
mundshme, m t shpeshta:
Numri i gabimit
Error Number
6
9
11
13
16
20
52
53
55
61
70
92

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

Avni Rexhepi - Visual Basic

Gabimet

Ky funksion mund t prdoret pr t testuar n trsi ndonj kod pr trajtim t


gabimeve. Pasi t kryhet testimi, largohen urdhrat Raise, pr gjenerim t
gabimeve.
Pr t pastruar ndonj gabim t ndodhur, prdoret metoda Clear: Err.Clear.
N shtojcn n fund t librit, shikoni listn e plot t numrave t gabimeve dhe
mesazheve prkatse t gabimeve.
Shembull:
Insertojm n form kontrollat si n fig. 5.1, Label1, Label2, Label3, Text1, Text2,
Text3, dhe cmdPjesto.

Fig. 5.1 Trajtimi i gabimeve

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.

Kodi pr kt shembull duket si n vijim:


Private Sub cmdPjesto_Click()
Dim Pjestuesi, IPjestueshmi As Integer
Dim Rezultati As Double
On Error GoTo TrajtoGabimin 'Nse paraqitet Gabim, kalo tek TrajtoGabmin
IPjestueshmi = CInt(Text1.Text)
Pjestuesi = CInt(Text2.Text)
Rezultati = IPjestueshmi / Pjestuesi
Text3.Text = Str(Rezultati)
Exit Sub 'Nse nuk paraqitet Gabim, dalja prej programit
'**************************************************************************
'Kodi i prgjithshem per trajtimin e gabimeve
TrajtoGabimin:
'Labela
Select Case MsgBox(Error(Err.Number), vbCritical + vbAbortRetryIgnore, _
"Error Number: " + Str(Err.Number))
'Zgjedhe prgjigjen

254

Avni Rexhepi - Visual Basic

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

Fig. 5.2 Shiriti i veglave Debug

Kto dritare mund t hapen prmes


menys: View ose mund t
zgjedhen prej shiritit t veglave pr
Debug-im, i cili paraqitet prmes
menys: View-Toolbars-Debug
(Fig. 5.2).

Procesi i debug-imit prmes dritareve pr debug-im bhet n modin e ndrprerjes


(break mode) i cili aktivizohet duke i vendosur pikat e ndrprerjeve (BreakPoint),
duke shtypur Ctrl+Break n tastier ose programi kalon vet n modin e ndrprerjes
nse has n ndonj gabim t padetektuar ose n urdhrin Stop. (Breakpoints
pikat e ndrprerjes t cilat vendosen me qllim n pozita t caktuara n kod, pr t
ekzekutuar programin hap pas hapi, deri te pika e ndrprerjes pr t prcjellur me
kujdes ndryshimet e vlerave t variablave).
255

Avni Rexhepi - Visual Basic

Gabimet

N modin e nrprerjes (Break mode), veglat dhe dritaret pr debug-im prdoren pr


prcaktimin e vlerave t variablave, vendosjen e pikave t ndrprerjes, kontrollimin
manual t programit, prgjimin e variablave dhe shprehjeve, prcaktimin e
procedurave t thirrura, ndryshimin e variablave dhe tipareve, etj.
Shembull:
Pr t demonstruar debug-imin e nj programi, do t marrim shembullin vijues, i
cili shrben vetm pr qllim t demonstrimit t debug-imit. N form insertojm
nj tast komandues (Fig. 5.3a) i cili do t ekzekutoj kodin.

Fig. 5.3a Shembull Debug-imi


Private Sub Command1_Click()
Dim X As Integer, Y As Integer
Debug.Print " X", "Y=X^3"
Debug.Print "--------------------"
X=0
Do
Y = Kubi(X)
Debug.Print X, Y
X=X+1
Loop While X <= 10
Debug.Print "--------------------"
End Sub

Programi do t prdor funksionin


Kubi (Kubi(X)), i cili vlern q i
jipet (X) e ngrit n kub (n fuqin
e tret) dhe ia kthen procedurs q
e ka thirr funksionin. Procedura
kryesore prdor unazn Do Loop
While, pr llogaritjen e kubeve t
numrave prej 0 deri n 10, si n
vijim:

Shtyp n dritaren direkte


Vlera fillestare
Hyrja n Unaz
Thirrja e funksionit Kubi

Vlera perfundimtare Dalja prej unaze

Function Kubi(X As Integer) As Integer


Kubi = CInt(X ^ 3)
End Function

Dritarja Immediate shrben pr t par se far vlerash t variablave po


fitohen gjat ekzekutimit t programit. Ndonjher vetm duke par
rezultatet e shtypura mund t detektohet ndonj gabim i rastit.
Pr t par se ka shtypet n dritaren direkte, pas urdhrit pr thirrjen e funksionit
insertojm urdhrin: Debug.Print X;Y, dhe ekzekutojm programin. N dritaren
direkte (Immediate) do t shtypen vlerat e X dhe Y, prej t cilave mund t shihet a
256

Avni Rexhepi - Visual Basic

Gabimet

po fitohen rezultatet adekuate pr do vler t X-it. N kt rast do t shtypen t


gjitha vlerat, pr do hap t unazs prej 0 deri n 10.
Pr t vendosur ndonj pik t ndrprerjes (Breakpoint), pozicionojm
kursorin n rreshtin e caktuar t kodit dhe n shiritin e veglave Debug,
shtypim tastin Toggle Breakpoints (F9), i cili vendos/largon pikn e
ndrprerjes n program.
Kur t vendoset pika e ndrprerjes, programi ekzekutohet vetm deri n at pik
dhe ndalet. Pastaj pr t vazhduar ekzekutimin, duhet shtypur prsri tastin pr
ekzekutim (Run/Continue, F5).

Fig. 5.3b Vendosja e piks s ndrprerjes

Fig. 5.3c Ndalja n pikn e ndrprerjes

P.sh., vendosim pikn e ndrprerjes


n rreshtin: X=X+1; me rast n
rreshtin prkats vendoset ngjyra e
prapavis, si n fig. 5.3b. Kur t
ekzekutohet programi, ai do t
ndalet n rreshtin ku sht vendosur
pika e ndrprerjes (Breakpoint), me
rast ajo pjesrisht ngjyroset me
ngjyt t verdh dhe n fillim t
rreshtit, n skajin e majt t dritares
vendoset shigjeta e verdh, si n
(fig. 5.3c).

Nse n program nuk sht dhn urdhri Debug.Print, n dritaren direkte nuk
shtypen fare vlerat.

Fig. 5.3d Shtypja n dritaren Immediate

Pr shtypjen e vlerave n dritaren


direkte, kur t ndalet ekzekutimi i
programit n pikn e ndrprerjes,
n dritaren Immediate shtypim
urdhrin: Print x,y dhe Enter, ose
? x,y dhe Enter.
N dritare do t shtypen vlerat
momentale t variablave x dhe y
(Fig. 5.3d).

Mund t shqyrtohen edhe pikat tjera t ndrprerjes, mund t vazhdohet me


ekzekutimin pr t par vlerat e hapit t ardhshm, etj. Pr t pastruar pikn e
ndrprerjes zgjedhet n menyn Debug zgjedhet Clear All Breakpoints ose
Ctrl+Shift+F9. Pikat e veanta vendosen/largohen me F9 ose me tastin Breakpoint
n shiritin Debug.
257

Avni Rexhepi - Visual Basic

Gabimet

Variablat e programit mund t shihen edhe n dritaren Locals Window, n t


ciln paraqiten vlerat e variablave brenda rangut t procedurs aktuale.
Kur ekzekutimi i programit kalon n ndonj procedur ose funksion tjetr, dritarja
tregon vetm variablat n at procedur.

Fig. 5.3e Dritaret Immediate dhe Locals


Nse prsrisim shembullin paraprak dhe hapim dritaren Locals, variablat X dhe Y
do t shihen edhe n dritaren Locals (Fig. 5.3e). Kemi paraqitur gjendjen e X dhe Y
pr hapin e tret t ekzekutimit.
Pr t par gjendjen e shprehjeve ose variablave, mund t prdoret edhe
dritarja Watch, dhe tastet Add Watch dhe Quick Watch.
Pr t prgjuar nj variabl t caktuar, n modin e ndrprerjes, selektohet ose
vendoset kursori tek shprehja ose variabla e caktuar (p.sh., X) dhe klikohet tasti
Quick Watch.

Fig. 5.3f Dritarja Watch

Kur ezkekutohet programi, n


dritaren Watch shihet vlera e
variabls s zgjedhur. Nse
zgjedhet edhe Y, ather do t
shihen vlerat e t dy variablave dhe
detalet tjera pr to, si n (Fig. 5.3e),
pr hapin e tret pr variablat X dhe
Y.

Nse n dritaren Watch, shtypim tastin e djatht dhe n menyn e kontekstit


zgjedhim Edit Watch, hapet dritarja e cila mundson definimin e kushteve t
ndrprerjes, pr shprehjet e caktuara dhe opcionet si: Watch Expression (vshtro
shprehjen), Break When Value is True (ndrprej kur sht vlera e sakt), Break
when value changes (ndrpreje kur ndryshon vlera), etj.
Nse zgjedhet tasti Call Stack (Thirre Stack-un), do t paraqitet dritarja n
t ciln tregohen procedurat aktive.
Kjo bhet duke vendosur pikn e ndrprerjes dhe duke ekzekutuar programin. Kur
t ndrprehet programi, n pikn e ndrprerjes dhe shtypet Call Stack, do t shihet
258

Avni Rexhepi - Visual Basic

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.

Ekzekutimi hap pas hapi (Single Stepping)


Gjat modit t ndrprerjes, programi mund t ekzekutohet nga nj rresht
(hap pas hapi), duke shtypur F8, duke zgjedhur opcionin Step Into n
menyn Debug ose duke klikuar tastin Step Into n shiritin Debug.
Kjo procedur njihet si single stepping (ecja nga nj hap). Kjo mundson
prcjelljen e ndryshimit t variablave (n dritaren Locals) ose t forms, nga nj
hap n koh.
Mund t ekzekutohen disa urdhra prnjher duke zgjedhur n mnyn Debug
opcionin Run To Cursor (Ekzekuto deri tek kursori), ashtu q vendoset kursori n
ndonj urdhr t programit dhe me kt urdhr ekzekutohen urdhrat deri tek
urdhri ku sht pozicionuar kursori.
P.sh, nse vendosim pikn e ndrprerjes n rreshtin me urdhrin Do (Fillimi i
unazs) dhe ekzekutojm programin, programi do t ndalet tek urdhri Do. Ather
prmes Step Into ekzekutohen me rradh urdhrat e programit. N ndonj moment,
vendosni kursorin n urdhrin Loop While dhe provoni: Run to Cursor (Ctrl+F8).

Ekzekutimi i procedurs (Step Over)


Gjat ekzekutimit nga nj rresht, mund t arrihet n ndonj procedur t
ciln nuk dshirojm ta testojm, ather prmes tastit Step Over, menys
Debug-StepOver ose Shift+F8, mund ta kalojm tr procedurn n nj hap,
q njihet si Procedure stepping (ecja me nga nj procedur).
Pr shembull, n rastin e kaluar, kur arrin kursori n rreshtin q e thirr funksionin
Kubi, shtypet Step Over.

259

Avni Rexhepi - Visual Basic

Gabimet

Dalja prej funksiont (Step Out)


Gjat kalimit t programit hap pas hapi, nse dshironi t ekzekutoni n
trsi funksionin ku ndodheni, n shiritin Debug zgjedhet Step Out (Dalja),
ose n menyn Debug-Step Out (Ctrl+Shift+F8).
Kjo mund t provohet me shembullin e kaluar.

Mnyrat e detektimit t gabimit


Pr t fituar rutin n detektimin e gabimeve logjike prmes pajisjeve pr Debugim, duhet praktikuar shum mnyrat e detektimit t gabimeve. Shpesh her mund t
ndodhe q vetm nj ose dy rreshta t kodit, shkaktojn gabime. Preferohet q t
fillohet me vendosjen e urdhrit Debug.Print n pozita t ndryshme, pr t
identifikuar pjesn ku ka ndodhur gabimi. Kjo mund t bhet edhe me prcjelljen e
disa hapave n dritaret Immediate dhe Locals.
Mnyra m e mir pr gjetjen e pozits s gabimit, sht strategjia Praj dhe
sundo, e cila nnkupton vendosjen e piks s ndrprerjes n nj pozit t caktuar
kah mesi i aplikacionit. Pas ekzekutimit, nse paraqitet gabimi, do t thot se
problemi ndodhet n pjesn e eprme t programit, prndryshe ai ndodhet n
pjesn e poshtme (pas piks s ndprerjes). Pastaj vazhdohet me ndarjen e
mtejshme, deri sa t ngushtohet hapsira e mundshme e urdhrave t
aplikacionit, ku mund t ndodhet gabimi.
Pr t minimizuar paraqitjen e gabimeve, preferohet dizajnimi i kujdesshm i
aplikacionit, ashtu q t mos humbet shum koh m von gjat krkimit t
gabimeve t mundshme.

260

Avni Rexhepi - Visual Basic

Gabimet

261

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

PUNA ME BAZAT E T DHNAVE


Ndryshimet m t mdha n Visual Basic, prej versionit 6.0 e tutje, jan br n
aspektin e puns me bazat e t dhnave (qasja n bazat e t dhnave dhe
menaxhimi (udhheqja) e bazave t t dhnave). Prej versionit VB 6.0 jan shtuar
pajisjet e reja t bazuara n teknologjin ActiveX Data Object (ADO), e cila ka
br zvendsimin e pajisjeve DAO (Data Access Object) dhe RDO (Remote Data
Objects) t cilat jan ruajtur akoma edhe n versionin e ri, pr t pasur
kompatibilitet (pajtueshmri) me versionet e vjetra t Visual Basic-ut. Prdorimi i
ktyre pajisjeve bashk me veglat e tipit data aware (t vetdijshme pr t
dhnat), mundson qasjen n baza t t dhnave dhe menaxhimin e tyre.
Menaxhimi i bazave t t dhnave bhet prmes DBMS (Database Management
System), t cilt prdoren pr krijimin dhe mirmbajtjen e bazave t t dhnave, si
jan: Microsoft Access, FoxPro, dBase, FileMaker, etj.
Edhe Visual Basic-u mund t prdoret pr krijimin e DBMS-s, me rast Visual
Basic-u prdor makinn (engine) e njjt si Microsoft Accessi, e cila njihet si
Jet Engine (Microsoft Jet 3.51/4.0 OLE DB Provider ofruesi i OLE DB).
Info:
Data Provider (Ofruesi i t dhnave lexohet: Provajder) mundson qasjen n ndonj tip t
caktuar t t dhnave. Ekzistojn Provider-t pr ODBC, Misrosoft SQL, Index Server etj.
Provider-t dijn se si t gjejn t dhnat n ndonj burim t caktuar t t dhnave dhe si
t jen n dispozicion n ambient t qasjes universale t t dhnave (Universal Data
Access), e cila sht nj strategji e Microsoft-it pr t mundsuar qasjen n t gjitha llojet e
informatave, pa marr parasysh vendondodhjen e tyre (lokale apo n largesi).
Provider-i i siguron t dhnat pr konsumuesit e t dhnave (Data Consumers), t cilt i
konsumojn t dhnat e llojeve t ndryshme prej burimeve t ndryshme. Konsumues t t
dhnave jan zakonisht aplikacionet t cilat funksionojn si klient klasik (programet e
Visual Basic-ut, aplikacionet e Microsoft Office-it, etj) ose si Web klient (Internet Explorer,
Netscape, etj). Kto aplikacione i prdorin t dhnat pr editim ose pr paraqitje.
Komponentet shrbyese (Service Components) jan ngjitsi i cili i lidh Provider-t dhe
konsumuesit. Kto komponente mundsojn shndrrimin e t dhnave prej nj lloji n
tjetrin, me rast nuk kan nevoj t krkojn ndihm prej asnjrit skaj t lidhjes. Programet
pr realizimin e pyetsve, jan shembuj t komponenteve shrbyese.

OLE DB sht sistem (interfejs i programeve, i nivelit t ult) i projektuar pr t


mundsuar qasje n burime t ndryshme t t dhnave. OLE DB prkrah bazat
262

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

relacionale dhe jorelacionale t t dhnave, duke prfshire drgimin dhe pranimin e


porosive, sistemin e t dhnave, burimet jostandarde t t dhnave, etj. OLE DB
ofron bashksin e ndrmjetsve (interfejsave) t COM (Component Object Model
- modelit t objekteve t komponenteve) q prdoret pr fshehjen e detajeve t
implementimit t cilat nevojiten pr krijimin e shrbimeve pr qasje n t dhna.
Ekziston nj numr i konsiderueshm i OLE DB interfejsave, t cilt mund t
prdoren pr qasje n baza t t dhnave. Programet e krijuara n Visual Basic nuk
prdorin direkt OLE DB-n, por pr komunikim me nivelin e OLE DB prdoret
objekti ADO. ADO ofron nj bashksi t objekteve t programueshme, q n fakt
jan t dhna q i siguron OLE DB Provider-i, i zgjedhur.
Menaxhimi dhe qasja n baza t t dhnave sht nj lmi shume e gjr dhe
shpjegimi detal i veglave dhe prdorimi i tyre do t krkonte shum koh dhe
hapsir, kshtu q n kt tekst do t shqyrtohen vetm shkurtimisht, me shpres
se n ndonj rast tjetr do t shpjegohet n veanti dhe n detaje vetm puna me
bazat e t dhnave n Visual Basic.

Modeli i objektit ADO


ADO prbhet prej shtat objekteve, prej t cilave tri jan t pavarura dhe katr
jan objekte t varura prej objekteve tjera. Objektet e pavarura mund t ekzistojn
edhe t vetmuara, kurse ato t varura duhet t jen t lidhura me ndonj objekt t
pavarur. Objektet jan:
Connection (Lidhja) paraqet nj sesion me burimin e zgjedhur t t dhnave. Kjo
lidhje sht e ngjashme me lidhjen direkte q e vendos kontrolla Data me bazn e
t dhnave. Objekti Connection mund t prdoret bashkarisht n tr aplikacionin.
Command (komanda) jep urdhrin pr definimin e t dhnave ose urdhrim pr
veprim me t dhnat. Pasi ADO prkrah definimin e t dhnave dhe punn me to,
prmes modelit ADO mund t krijohen bazat e t dhnave gjat puns s
aplikacionit (n modin e ekzekutimit). Duhet t jipet urdhri adekuat, p.sh.,
CREATE TABLE dhe do t krijohet tabel e re n bazn e t dhnave.
Recordset (bashksia e t dhnave) paraqet bashksin e rekordeve (tabeln
virtuele t krijuar), q e kthen komanda e dhn n bazn e t dhnave. Mund t
zgjedhet lloji i kursorit (tipari q vendos se ku dhe si pozicionohet kursori n
bazn e t dhnave, si manipulohet me t dhnat, etj), mnyra e filtrimit, mnyra e
sortimit, si dhe leximi i definicioneve t fushave t veanta t objektit Recordset.
Field (Fusha) sht objekt i varur i cili ekziston si pjes e objektit Recordset.
Mund t shikohet koleksioni Fileds pr t lexuar t dhnat pr ndonj fush t
veant t objektit Recordset, p.sh., pr t par se e far lloji sht e dhna dhe t
zgjedhet kontrolla adekuate pr paraqitjen e saj n fush.
Parameter (Parametri) sht pjes e objektit Command dhe mundson futjen e
vlers n pyets (query). Me prdorimin e objektit Parameter s bashku me
263

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

objektin Command, mund t shfrytzohen prparsit e pyetsve t gatshm t cilt i


ka baza e t dhnave. Me kt n mas t madhe rritet shpejtsia dhe efikasiteti i
puns, sepse DBMS veq ka br optimalizimin e urdhrit SQL.
Property (tipari) objektet Connection, Command, Filed dhe Recordset prbajn
koleksionet e objektit Property. Tiparet mundsojn leximin dhe dhnien e t
dhnave t rndsishme pr ndonj objekt t caktuar. Pr shembull, do objekt ka
tiparin Name (emri).
Error (Gabimi) sht i varur prej objektit Connection. Kur paraqitet gabimi gjat
qasjes n t dhna, ai ruhet n koleksionin Errors (gabimet), i cili sht pjes e
objektit Connection. Kt koleksion mund t krkoni pr t prcaktuar se a ka
ndodhur ndonj gabim gjat qasjes n t dhna. Kjo sht e prshtatshme kur
kryhen njkohsisht disa operacione, e nuk dshirohet ndrprerja n mes t
prpunimit.

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

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

LockType tregon llojin e mbylljes s rekordeve n baz gjat editimit


(vlera standarde e bn bazn si baz vetm pr lexim (read-only)
Recordset bashksia e rekordeve e definuar prej tipareve
ConnectionString dhe RecordSource t kontrolls (vetm n kohn e
ekzekutimit)
RecordSource prcakton tabeln (ose tabeln virtuale) n t ciln sht
lidhur kontrolla

Pr seciln tabel ose tabel virtuale nevojitet nj kontroll ADO. Kontrolla n nj


moment i qaset nj rreshti (rekordi) n tabel, i cili njihet si rekordi momental ose
rekordi aktual (current record).

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.

Pr t krijuar fajllin UDL, hapeni programin Windows Explorer, zgjedheni folderin


n t cilin dshironi t vendosni fajllin pr lidhje n t dhna (Data Link File) dhe
265

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

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

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

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).

Fig. 5.4b Vendosja e lidhjes

Fig. 5.4c Rezultati i testimit t


lidhjes.

Tani fajlli UDL sht krijuar dhe mund t prdoret pr t ju ndar tiparit
ConnectionString (stringu i lidhjes) t kondrolls ADO.

267

Avni Rexhepi - Visual Basic

Fig. 5.5 Property Pages

Puna me bazat e t dhnave

Pra, zgjedhim kontrolln ADO


(Adodc1) dhe n dritaren
Properties, pr t caktuar tiparin
ConnectionString t saj, klikojm
tastin me tri pika q paraqitet n
skajin e djatht t fushs. N ekran
do t paraqitet dritarja Property
Pages (Fig. 5.5) n t ciln
zgjedhim opcionin e par Use
Data Link File dhe prmes tastit
Browse zgjedhim fajllin e krijuar
UDL (ose e shtypim prmes
tastiers shtegun e plot).

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

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

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

Kushti1 paraqet stringun q definon kushtin ngjashm si me kushtet e tipit q


prdoret n bllokun If tek kushtet, duke prdorur operatort standard <. >, + dhe
pr stringje, operatorin Like (sikur), i cili prdor shenjat xhoker (* - q
zvendson fardo shkronje ose emri dhe ? q zvendson vetm nj shkronj, nj
pozit), pr t br krahasimin me ndonj mostr t caktuar. P.sh.:
...WHERE Vendlindja Like P*

269

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

do t bnte zgjedhjen e rekordeve t cilat n fushn vendlindja kan vlerat q


fillojn me P (p.sh.: Prishtina, Peja, Prizreni, etj). Mostra P* duhet t vendoset
brenda apostrofeve (jo brenda thonjzave).
3. Lidhja e dy tabelave, prmes fushs elsi i jashtm (Foreign Key) dhe
paraqitja e t dhnave si nn 1 dhe nn 2.
SELECT * FROM Tabela1 INNER JOIN Tabela2 ON
elsiijashtmTabela1=elsiprimarTabela2 WHERE Kushti1

do tabel ka t definuar nj fush identifikuese unike q njihet si elsi primar


(Primary Key). N bazat relacionale t t dhnave, tabelat lidhen prmes fushave
q prdoren pr vendosjen e lidhjes. N tabeln kryesore pr lidhje zgjedhet elsi
primar kurse n tabeln e dyt fusha q prmban vlerat e fushs q sht els
primar n tabeln e par dhe q n tabeln e dyt quhet els i jashtm (Foreing
Key).
4. Paraqitja e vetm disa fushave t caktuara prej tabelave baz ose tabelave
t lidhura.
SELECT Fusha1, Fusha2, ..., FushaN FROM Tabela1 WHERE Kushti1

Prmes urdhrave t ktill SQL n esenc krijohet nj tabel e re virtuele prej


tabels ose tabelave ekzistuese. Kjo tabel viruale nuk ekziston me t vrtet
fizikisht, por pr qllime praktike Visual Basic-u sillet thuajse ajo vrtet ekziston
dhe n terminologjin e Visual Basic-ut kjo tabel virtuele quhet Recordset. Kshtu
pr urdhrat e SQL thuhet se krijojn Recordset-e. N terminologjin e bazave
relacionale t t dhnave tabela virtuele quhet View (Pamje). Urdhrat SQL
mund t prdoren edhe n kod, me shkruarjen e urdhrave t forms:
Adodc1.RecordSource = SELECT ... FROM...

e cila do t ndryshonte rradhitjen dhe llojet e rekordeve t prezentuara prej bazs s


t dhnave. Urdhri i till, duhet t pasohet me urdhrin:
Adodc1.Refresh

pr t freskuar (azhuruar) informatat e prpunuara prmes kontrolls Adodc1.

Kontrollat q lidhen n t dhna


Shum prej kontrollave t Visual Basic-ut mund t prdoren si t lidhura ose Dataaware tools (pajisje t vetdijshme pr t dhna). Kjo do t thot se disa tipare t
kontrollave mund t lidhen me ndonj fush t caktuar t bazs s t dhnave. Pr
270

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

t prdorur kontrollat e lidhura, n form duhet t ekzisoj nj ose m shum


kontrolla pr lidhje n t dhna (kontroll ADO ose Data).
Kontrollat q lidhen n t dhna jan: Label, TextBox, CheckBox, ComboBox,
ListBox, PictureBox dhe ImageBox.
Ekzistojn edhe disa kontrolla data-aware si: DataCombo, DataList dhe
DataGrid.
Tiparet q definohen pr kontrollat e lidhura jan:
- DataChanged (E dhwna ndryshoi) tregon a ka ndryshuar vlera e paraqitur n
kontrolln e lidhur
- DataField (Fusha e tw dhwnave) prcakton emrin e fushs n tabeln e
zgjedhur (treguar, shenjuar) prmes kontrolls gjegjse (ADO, Data).
- DataSource (Burimi i tw dhwnave) Prcakton kontrolln e t dhnave (ADO,
Data) n t ciln sht lidhur kontrolla.
N modin e ekzekutimit, kur ndryshohet vlera n kontroll dhe kur shfrytzuesi e
kalon fokusin n ndonj kontroll tjetr, n bazn e t dhnave do t bhet
azhurimi automatik i vlers (duke supozuar se tipari LockType lejon ndryshimet).
Pr prdorim m t leht t kontrollave t lidhura, preferohet q t zbatohet
procedura vijuese gjat vendosjes s kontrollava n form:
1. Vendose kontrolln e lidhur n formn ku sht vendosur kontrolla e t
dhnave n t ciln ajo do t lidhet.
2. Cakto tiparin DataSource. Kliko shigjetn n skajin e djatht t tiparit, pr
t paraqitur listn e kontrollave t t dhnave n form. Zgjedhe njrn.
3. Cakto tiparin DataField. Kliko shigjetn n skajin e djatht t tiparit pr t
listuar fushat e bashkangjitura me rekordet e zgjedhura nga kontrolla e t
dhnave. Zgjedhe fushn e dshiruar.
4. Cakto tiparet tjera, sipas nevojs.
Shembull:

Fi. 5.7a Lidhja me tabeln Studentet, baza

Insertojm n form (frmStudentet)


kontrollat si n (Fig. 5.7a):
lblNrInx, lblEmri, lblMbiemri,
txtNrIndx, txtEmri, txtMbiemri dhe
adoStudentet (kontroll ADO).
Krijojm fajllin pr lidhje n t
dhna - Data Link File
Fakulteti.udl pr bazn e t
dhnave Fakulteti.mdb (sipas
procedurs s treguar pr krijimin e
fajllit Biblio.udl) dhe pastaj e
caktojm tiparin ConnectionString
271

Avni Rexhepi - Visual Basic

Fakulteti.mdb

Puna me bazat e t dhnave

t kontrolls adoStudentet n fajllin


e krijuar Fakulteti.udl.

Pastaj, pr kontrolln adoStudentet prcaktojm tiparin RecordSource:


Select * FROM Studentet

N kt mnyr zgjedhen t gjitha fushat nga tabela Studentet.

Fig. 5.7b Prcaktimi i tipareve


DataSource dhe DataField

Pastaj pr kontrollat e tipit TextBox i


prcaktojm tiparet DataSource,
DataField dhe Locked (Fig. 5.7b).
Tiparet i prcaktojm duke i zgjedhur
vlerat nga lista, jo duke i shtypur
prmes tastiers. Kshtu, pr t tri
fushat (txtNrIndx, txtEmri dhe
txtMbiemri), pr DataSource zgjedhet
adoStudentet, kurse pr tiparin
DataField zgjedhim fushn prkatse:
Numri i Indeksit, Emri dhe Mbiemri.
Pr t mos lejuar ndryshimin e vlerave
n bazn e t dhnve definohet tipari
Locked = TRUE. Pastaj ekzekutojm
programin dhe prmes tasteve n
kontrolln ADO lvizim npr rekordet
e tabels Studentt.

Pasi n tiparin RecordSource t kontrolls adoStudentet nuk kemi prcaktuar


rradhitjen, ajo sht si n bazn Fakulteti.mdb. Nse dshirojm t bjm rradhitjen
sipas alfabetit, n baz t emrave ose mbiemrave, ather pr tiparin RecordSource,
urdhri SQL do t duhej t ishte si vijon:
Select * FROM Studentet. ORDER BY Emri

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

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

Lvizja npr rekorde (navigimi) dhe krkimi


Prveq lvizjes (navigimit) npr rekode prmes tasteve n kontrolln ADO,
lvizja mund t bhet edhe prmes kodit t Visual Basic-ut. N shum raste
kontrolla ADO ka tiparin Visible=False, ashtu q t mos shihet fare n ekran dhe t
gjitha manipulimet bhen prmes kodit. Prmes kodit, mund t bhet edhe krkimi
i rekordeve n baz t vlerave n ndonj fush.
Pr lvizjen npr rekorde ekzistojn katr metoda themelore, t cilat i prsrisin
aftsit e katr tasteve t kontrolls ADO:
MoveFirst
MoveLast
MoveNext
MovePrevious

Kalo n rekordin e par


Kalo n rekordin e fundit
Kalo n rekordin e ardhshm
Kalo n rekordin e prparshm

Kshtu, p.sh., pr rastin e shembullit t kaluar, pr t kaluar n rekordin e par do


t prdorej urdhri:
adoStudentet.Recordset.MoveFirst

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]

Kushti (Criteria) sht nj shprehje tekstuale (string) (e ngjashme me klauzuln


WHERE n SQL) q prshkruan kushtin t cilin duhet ta plotsoj rekordi i
krkuar. Pr shembull, pr t gjetur studentin (ose studentt) emrat e t cilve
fillojn me shkronjn M, do t japim urdhrin vijues:
adoStudentet.Recordset.Find Emri Like M*

Duhet pasur kujdes m shenjat e apostrofeve rreth shkronjs s krkuar, t cilat


prdoren pr t mbyllur stringun pr kriter n argumentin e kriterit. N pozitn e
Like (ngjashm, sikur), mund t prdoren edhe operatort logjik: =, <, >, <=, dhe
273

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

>=. Nse nuk prcaktohet kahja e krkimit (adSearchForward ose


asSearchBackward), nnkuptohet krkimi prej fillimit kah fundi. Nse urdhri
Find nuk e gjen ndonj rekord q e plotson kushtin e dhn, ather varsisht
prej kahjes s krkimit tipari gjegjs EOF ose BOF bhet TRUE.
Nganjher gjat krkimit prdoret edhe tipari Bookmark (shenja, treguesi i
pozites) q mundson ruajtjen dhe shenjimin e pozits s rekordit momental, ashtu
q m von t mund t ktheheni n at pozit prsri. Kjo do t prdoret n njrin
prej shembujve.
Shembull:

Fig. 5.8 Lvizja npr rekorde

Shembullit t kaluar, ia shtojm nj


katror si prapavi t fushave dhe
katr taste komanduese: cmdIPari,
cmdIPerparshmi, cmdIArdhshmi
dhe cmdIFundit , me tiparet
Caption si shihet n fig. 5.8.
Kontrolln ADO do ta fshehim pr
modin e ekzekutimit (duke
vendosur tiparin Visible=False),
sepse lvizjen npr rekorde do ta
bjm prmes tasteve komanduese,
t cilat udhhiqen prmes kodit
vijues:

Private Sub cmdIPari_Click()


'Kalo n rekordin e par
adoStudentet.Recordset.MoveFirst
End Sub
Private Sub cmdIPerparshmi_Click()
'Testo a sht arritur n fillim t fajllit, rekrordi i par
If adoStudentet.Recordset.BOF Then
MsgBox ("Ky ishte rekordi i par")
adoStudentet.Recordset.MoveFirst
End If
adoStudentet.Recordset.MovePrevious
End Sub
Private Sub cmdIArdhshmi_Click()
'Testo a sht arritur n fund t fajllit, rekordi i fundit
If adoStudentet.Recordset.EOF Then
MsgBox ("Ky ishte rekordi i fundit")
adoStudentet.Recordset.MoveLast
End If
adoStudentet.Recordset.MoveNext
End Sub

274

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

Private Sub cmdIFundit_Click()


'Kalo n rekordin e fundit
adoStudentet.Recordset.MoveLast
End Sub

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

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

Private Sub Form_Load()


Dim i As Integer
'Cakto madhsin e tasteve t shkronjave
cmdShkronja(0).Width = (frmStudentet.ScaleWidth - 2 * cmdShkronja(0).Left) / 26
For i = 1 To 25
Load cmdShkronja(i) ' Krijo elementet e reja t vargut t kontrollave
'Vendose shkronjen perkatese ne afersi te asaj paraprake
cmdShkronja(i).Left = cmdShkronja(i - 1).Left + cmdShkronja(0).Width
'Vendose shkronjen perkatese ne tast te shkronjes
cmdShkronja(i).Caption = Chr(vbKeyA + i) 'vbKeyA (kodi ASCII pr shkronjen A - vlera
65)
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 = adoStudentet.Recordset.Bookmark
'Kalo ne fillim te tabeles per te filluar kerkimin nga fillimi
adoStudentet.Recordset.MoveFirst
'Kalo tek emri qe fillon me ate shkronje nese ekziston
'Nese s'ka kthehu n pozitn e shenjuar me Bookmark1
adoStudentet.Recordset.Find "Emri >= '" & cmdShkronja(Index).Caption & "'" ', 0,
adSearchForward
If cmdShkronja(Index).Caption <> Left(UCase(txtEmri.Text), 1) Then
MsgBox "S'ka emr me shkronj t till", vbInformation, "Rekordi nuk u gjet"
'Kthehu n pozitn e shenjuar me Bookmark1
adoStudentet.Recordset.Bookmark = BookMark1
End If
txtEmri.SetFocus
End Sub
Private Sub cmdGjeje_Click()
Dim Kushti As String
Kushti = txtGjeje.Text
adoStudentet.Recordset.MoveFirst
adoStudentet.Recordset.Find "Emri >= '" & Kushti & "'"
If UCase(Kushti) <> UCase(txtEmri.Text) Then
MsgBox "S'ka emr t till. Emri m i afrt vijues me """ & Kushti & _
""" sht: " & txtEmri.Text, vbInformation, "Rekordi nuk u gjet"
txtGjeje.Text = ""
End If
'Nse sht arritur n fund, kthehu n fillim
If adoStudentet.Recordset.EOF = True Then
adoStudentet.Recordset.MoveFirst
End If
End Sub

Shembujt ndodhen n folderin e shembujve ADO.


276

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

Menaxhimi i bazave t t dhnave


Prmes pajisjeve pr qasje n t dhna dhe kontrollave t prdorura deri tani,
shqyrtuam vetm qasjen n bazat e t dhnave, mirpo, Visual Basic-u ka edhe
aftsi t manipulimit t rekordeve t bazs prmes kodit. Prmes urdhrave dhe
metodave prkatse, mund t bhet prcaktimi i vlerave t fushave t caktuara,
shtimi i rekordeve, fshirja e rekordeve, lvizja npr rekorde, etj., gj q ofron
mundsin e krijimit t nj sistemi t kompletuar pr menaxhimin e bazave t t
dhnave (DBMS).
Visual Basic-u, prmban edhe programin e veant Visual Data Manager ( i cili
ndodhet n pajisjet shtes t programit, menya Add-Ins) i cili paraqet nj sistem t
kompletuar q mundson krijimin dhe menaxhimin e bazave t t dhnave. Visual
Data Manager mund t krijoj baza t t dhnave kompatibile me Microsoft Jet
Database Engine (ose Microsoft Access).
Megjith faktin se Visual Data Manager, ofron t gjitha mundsit pr krijimin dhe
menaxhimin e bazave t t dhnave, prap se prap deri n nj mas sht paksa i
pavolitshm pr prdorim.
Pr t krijuar nj DBMS prmes Visual Basic-ut, duhet t definohen disa metoda t
shoqruara me tiparin Recordset t kontrolls s t dhnave (ADO):
-

AddNew (Shto t ri) - me t ciln shtohet nj rekord i ri n tabel. T gjitha


fushat bhen Null dhe rekordi bhet rekord aktual.
Delete (Fshije) bn fshirjen e rekordit aktual. Kjo metod duhet t
prcillet menjhere me nj prej metodave Move sepse rekordi aktual m
nuk sht valid, pasi q fshihet.
Update (Azhuro) ruan gjendjen aktuale t t gjitha kontrollave t lidhura,
pasi t bhen ndryshime n ndonjrn prej tyre.

Pr t edituar nj rekord vetm duhet t paraqitet dhe t bhen ndryshimet e


krkuara. Tipari LockType (tipi i mbylljes) duhet t caktohet si adLockPessimistic
(mbyll rekordin deri sa t jet duke u edituar). Pastaj kur t largoheni prej
rekordit, kur lvizet prmes tasteve pr navigim ose n ndonj mnyr tjetr,
Visual Basic-u do t bj azhurimin automatik t rekordit. Prndryshe, mund t
thirret edhe metoda Update (duhet t prdoret LockType=adLockOptimistic), dhe
pr kontrolln adoStudentt, sintaksa e urdhrit do t ishte:
adoStudentet.Recordset.Update.

Pr t shtuar nj rekord t ri, thirret metoda AddNew:


adoStudentet.Recordset.AddNew
277

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

Ky urdhr, do t zbraz t gjitha kontrollat e lidhura dhe do t lvize(kaloj) n


fund t bazs. N kt rast shtohen vlerat e reja n fushat prkatse. Kur bhet
largimi prej ktij rekordi, automatikisht bhen ndryshimet n bazn e t dhnave.
Mnyr tjetr pr t br azhurimin e bazs sht q t prdoret metoda Update.
Pasi q t shtohet rekordi n bazn e t dhnave, duhet t thirret tipari Refresh
(rifresko) i kontrolls pr t siguruar sortimin e nevojshm, t caktuar prmes
urdhrit SQL t tiparit RecordSource, pr rekordin e ri:
adoStudentet.Refresh

Pr t fshir rekordin prej bazs s t dhnave, duhet br rekord aktual rekordin q


do t fshihet dhe pastaj t prdoret metoda Delete (fshije). Sintaksa:
adoStudentet.Recordset.Delete

Kur t ekzekutohet Delete, duhet t bhet largimi (lvizja, zhvendosja) prej


rekordit aktual, sepse ai sdo t ekzistoj m dhe do t lajmrohet gabimi, nse nuk
bhet zhvendosja prej tij. Kjo sht posaqrisht problematike kur fshihet rekordi i
fundit (testohet tipari EOF). Nse EOF sht True, duhet t bhet kalimi n fillim
t bazs (MoveFirst). Pastaj duhet vrtetuar q aty ka rekord valid (testohet tipari
BOF) pr t kaluar n t.
Shembull:
Prmes Visual Data Manager-it, do t krijojm nj baz t thjesht t t dhnave
duke marr si shembull krijimin e nj adresari pr numra t telefonave.
N menyne Add-Ins zgjedhim Visual Data Manger.... (nse paraqitet pyetja pr
shtimin e System.MDA n fajllin .INI, prgjigjuni me NO).

Fig. 5.10a Prdorimi i Visual Data


Manager-it

N ekran do t paraqitet dritarja e


programit, me titull VisData. N
menyn File zgjedhim: menyn
New - opcionin Microsoft Accessnnopcionin Version 7.0 MDB (Fig.
5.10a). Pastaj do t hapet dritarja
Select Microsoft Access Database
to Create (e ngjashme me dritaren
Save), e cila krkon q t caktohet
emri i bazs q do t krijohet dhe
folderi ku do t ruhet.

Caktojme emrin Adresari.mdb dhe shtypim Save.


N dritare t programit, do t krijohen dritaret Database Window (dritarja e bazs)
dhe SQL Statement (urdhri SQL). N dritaren Database Window, klikojm me
tastin e djatht dhe n menyn e kontekstit zgjedhim New Table (Tabele e re). N
278

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

ekran do t paraqitet dritarja Table Structure (Struktura e tabels) prmes s cils


bhet dizajnimi i tabels (Fig. 5.10b). S pari, n fushn Table Name (Emri i
tabels) shnojm emrin e tabels. Pastaj, prmes tastit Add Field (Shto fush)
hapim dritaren Add Field (Fig. 5.10c), n t ciln prcaktojm tiparet e fushs si
Name (emri), Type (tipi i t dhnave), Size (madhsi), Required (krkohet, a sht e
domosdoshme), Validation Rule (rregullat e validitetit), etj (ngjashm si dizajni i
tabels n Access).

Fig. 5.10b Table Structure - dizajnim i strukturs s tabels


Pr fushat tekstuale madhsia, tregon gjatsin e fushs, numrin e karaktereve.
P.sh., pr fushn Emri, madhsia 20 do t thot, se mund t jepen emrat me gjatsi
deri n 20 karaktere. Pr fushn Nr, kemi zgjedhur tipin Long dhe kemi aktivizuar
fushen AutoIncrField (Vetnumrim automatik) e cila bn q fusha Nr i ti merr
vlerat automatikisht, duke i rritur vlerat me rradh. Duhet pasur kujdes, se vlerat
nuk mund t prsriten, kshtu q nse fshihet rekordi me numr 4, ather rekordi
me numr 4 m nuk ekziston, por as nuk mund t krijohet rishtas, dhe renditja
bhet 1,2,3, 5, ....
279

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

Pasi t definohen t gjitha fushat, n dritaren Table Structure, shtypet tasti Build
the Table (Krijo tabeln).

Fig. 5.10c Add Field shtimi dhe


dizajnimi i fushave t tabels

N dritare, n fushn Field List


(Lista e fushave), do t paraqiten
emrat e fushave t krijuara, kurse
n ann e djatht tiparet prkatse.
Nse ndonj fush duhet t
indeksohet, ather prmes tastit
Add Index, mund t definohet fusha
e cila do t indeksohet dhe tiparet
Primary (Primar), Unique (Unik
nuk lejon vlera t njjta n at
fush) dhe Ignore Nulls (Injoro
vlerat Null).

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.

Fig. 5.10d Struktura e tabels


Kur shtypet tasti Add (shto) pastrohet prmbajtja e fushave dhe mund t bhet
regjistrimi i rekordit t ri duke plotsuar fushat prkatse. Gjat kohs s krijimit
280

Avni Rexhepi - Visual Basic

Puna me bazat e 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

Nse dshirojm t shohim t gjitha


rekordet njkohsisht, ather n
shiritin e veglave mund t zgjedhim
opcionin Use DbGrid Control On
New Form (Prdore kontrolln
DBGrid, n formn e re) (Fig.
5.10f), e cila i paraqet rekordet n
form tabelare. Kur klikohet dy
her ikona Adresari, n dritaren
Database Window, ather n ekran
do t paraqitet tabela me t gjitha
rekordet.

Fig. 5.10f DBGrid (Rrjeta)

Pyetsi - Prmes menys Utility (Vegla) Query Builder...(krijuesi i pyetsit),


mund t krijohet ndonj pyets, prmes t cilit, nxirren t dhnat e caktuara prej
bazs s t dhnave. Kur zgjedhim menyn e prmendyur, n ekran paraqitet
dritarja Query Builder (Fig. 5.11a), prmes s cils mund t definojm pyetsin.
281

Avni Rexhepi - Visual Basic

Fig. 5.11a Query Builder

Puna me bazat e t dhnave

Nga fusha Tables (Tabelat)


zgjedhet tabela, me rast n fushn
Fields to Show (Fushat q duhet t
paraqiten) paraqiten fushat e tabels
s zgjedhur. Pastaj, n fushn:
Field Name (Emri i fushs),
zgjedhim prej lists, fushn pr
pyets. N fushn Operator
(Operatori) zgjedhim operatorin pr
t krijuar kushtin pr pyets dhe n
fushn Values (Vlera) definojm
kushtin.

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

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

Ktu, mund t bjm ndryshime


sipas dshirs, p.sh. ia shtojm
pjesn pr sortim: Order By Nr; .
Pastaj me Save e ruajm, kurse me
Execute, e ekzekutojm pyetsin.
Ka mundsi edhe t pastrojm
dritaren me Clear (Pastro), t
shkruajm urdhr t ri SQL pr
pyets t ri dhe pastaj me Save ta
ruajm.
Fig. 5.10b SQL Statement
Kur t ekzekutohet pyetsi, duke e klikuar dy her emrin e tij, n dritaren Database
Window, n ekran do t paraqitet forma (ngajshm si n Fig. 5.10e) dhe do t
paraqiten vetm rekordet e filtruara prej pyetsit.
Forma Prmes menys Utility Data Form Designer...(Dizajneri i formave t t
dhnave) mund t krijohet forma, e cila do t ruhet si form e pavarur, n projekt t
Visual Basic-ut. Kur zgjedhet Utility-Data Form Designer..., n ekran parqitet
dritarja Data Form Designer (Fig. 5.12a), prmes s cils dizajnohet forma. N
fushn Record Source (Burimi i rekordeve) zgjedhet tabela (baza) prej t cils do t
mirren rekordet. Kur t zgjedhet burimi, n fushn Available Fields (Fushat n
dispozicion) paraqiten fushat e asaj tabele. Prmes tasteve pr zgjedhje ( >, >>, <<,
< ), zhvendosim disa ose t gjitha fushat, n fushn Included Fields (Fushat e
prfshira) t cilat do t paraqiten n formn q krijohet. Nse baza ka disa tabela,
mund t zgjedhet edhe ndonj tabel (Record Source) tjetr dhe t prfshihen edhe
fusha t tjera nga tabela tjetr.

Fig. 5.12a Data Form Designer

N fushn Form Name (w/o


Extension) (Emri i forms pa
prapashtes), japim emrin, me t
cilin do t ruhet forma.
Pastaj, me an t tasteve n skajin e
djatht (me shenjat  dhe ),
mund t ndryshojm rradhitjen e
fushave n form. Pr t krijuar
formn, shtypet tasti Build the
Form (Krijo formn).

283

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

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.

Fig. 5.11b Dizajni i forms

Forma prmban edhe kontrolln


pr navigim dhe tastet pr
menaxhim t bazs s t dhnave
(Add, Delete, Refresh, Update,
Close). Nse zgjedhni kontrollat
prkatse dhe verifikoni tiparet e
tyre n dritaren Properties, mund t
shihni se t gjitha i ka definuar vet
Visual Basic-u.

Ruajm formn me emrin frmAdresari.frm dhe projektin me emrin Adresari.vbp.


Kur t ekzekutohet projekti, n
ekran do t paraqitet forma si n
Fig. 5.11c).
Kshtu, prmes ktij projekti
menaxhohet baza e t dhnave
Adresari.mdb, e cila u krijua
prmes Visual Data Manager-it.
Fig 5.11c Forma n modin e ekzekutimit
Nse projekti ka pasur ndonj form paraprakisht (zakonisht, projekti standard
fillon me form t zbraz, Form1), ather n dritaren Project Explorer, klikojm
me t djathtn formn e panevojshme dhe me opcionin Remove Form1, e fshijm.
Mirpo, tani pr t ekzekutuar projektin dhe pr ta filluar ekzekutimin me formn
frmAdresari, zgjedhim menyn: Project-Project Properties dhe n dritaren qe
hapet (Project Properties), n faqen e par t saj (General - e prgjithshme), n
fushn Startup Object (Objekti startues, fillestar) zgjedhim formn frmAdresari.
Pastaj projekti mund t ekzekutohet dhe ekzekutimi fillon me formn frmAdresari.

284

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

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).

Fig. 5.12a Forma frmTelefonat

Kontrollat kryesore: txtNr, txtEmri,


txtMbiemri, txtAdresa, txtTelefoni,
cmdShto, cmdRuaje, cmdFshije,
cmdRefresh, adoTelefonat,
cmdShkronja(0). Tiparet Caption i
kan si shihet n figur.
Prndryshe, fusha Nr pasi q sht
vler AutoNumber (q vet i definon
dhe i rrit vlerat), ka mundsi t
mos paraqitet fare n form. Nse
paraqitet, ather tipari Locked pr
t duhet t vendoset True.

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

Avni Rexhepi - Visual Basic

Puna me bazat e t dhnave

'Nese s'ka kthehu n pozitn e shenjuar me Bookmark1


adoTelefonat.Recordset.Find "Emri >= '" & cmdShkronja(Index).Caption & "'" ', 0,
adSearchForward
If cmdShkronja(Index).Caption <> Left(UCase(txtEmri.Text), 1) Then
MsgBox "S'ka emr me shkronj t till", vbInformation, "Rekordi nuk u gjet"
'Kthehu n pozitn e shenjuar me Bookmark1
adoTelefonat.Recordset.Bookmark = BookMark1
End If
txtEmri.SetFocus
End Sub
Private Sub cmdShto_Click()
cmdShto.Enabled = False
cmdRuaje.Enabled = True
cmdFshije.Enabled = False
adoTelefonat.Recordset.AddNew
txtEmri.SetFocus
End Sub

'Shto rekordin e ri

Private Sub cmdRuaje_Click()


'Azhuro Rekordsetin, pr t ruajtur rekordin e ri
adoTelefonat.Recordset.Update
adoTelefonat.Refresh
cmdShto.Enabled = True
cmdRuaje.Enabled = False
cmdFshije.Enabled = True
txtEmri.SetFocus
End Sub
Private Sub cmdFshije_Click()
adoTelefonat.Recordset.Delete
'Fshije rekordin aktual
adoTelefonat.Recordset.MoveNext 'Kalo n rekordin e ardhshm
'Testo a ndodheni n fund t rekordsetit
If adoTelefonat.Recordset.EOF = True Then 'Nse Po
adoTelefonat.Refresh
'Testo a mos ndodheni edhe n fillim t rekordsetit (mos sht baza e zbrazt?)
If adoTelefonat.Recordset.BOF = True Then 'Nse po
MsgBox "Duhet t shtoni ndonj rekord. ", vbOKOnly + vbInformation, "Fajlli i zbrazt"
Call cmdShto_Click 'Thirre procedurn pr shtim t rekordeve
Else
'Prndryshe, nse jo
adoTelefonat.Recordset.MoveFirst 'Kalo n rekordin e par
End If
End If
txtEmri.SetFocus
End Sub
Private Sub cmdRefresh_Click()
adoTelefonat.Refresh 'Rifresko bazn pas do shtimi ose fshirje
End Sub

286

Avni Rexhepi - Visual Basic

Format MDI

Kontrollat e vetdijshme pr t dhnat


Prveq kontrollave t zakonshme, gjat puns me baza t t dhnave, zakonisht
preferohet prdorimi i tri kontrollave shtes: DataList, DataCombo DataGrid dhe
MSHFlexGrid, t cilat njihen si Data Aware Controls (kontrolla t vetdijshme pr
t dhnat) apo edhe si ADO Tools (vegla ADO). Kto vegla nuk ndodhen n
ToolBox prandaj pr ti prdorur, n dritaren Components (Menya ProjectComponents), n listn e komponenteve duhet zgjedhur Microsoft DataList Control
6.0 (OLEDB), Microsoft DataGrid Control 6.0 (OLEDB) dhe Microsoft
Hierarchical Flex Grid Control 6.0 (OLEDB). Kto vegla jan plotsisht
kompatibile me veglat e ngjashm t versionit DAO, DBList, DBCombo DBGrid
dhe MSFlexGrid, prandaj keni kujdes gjat zgjedhjes, q ti zgjedhni veglat ADO,
t cilat jan t optimizuara pr pune me ADO.
Kontrollat DataList dhe DataCombo prngjajn shum me kontrollat standarde
ListBox dhe ComboBox, por me nj dallim t rndsishm q u jep fleksibilitet dhe
vlefshmri n aplikacionet me baza t t dhnave. T dy kontrollat mund t
mbushen automatikisht prej fushs s bazs s t dhnave prej kontrolls n t
ciln jan lidhur. Pr m tepr, mund t prcjellin fushn e zgjedhur n ndonj
kontroll tjetr t t dhnave, duke i br shum t prshtatshme si kontrolla
selektuese, filtruese ose zgjedhse, pr aplikacione t tipit Lookup Table (Tabel
krkuese).

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

Avni Rexhepi - Visual Basic

Format MDI

BoundColumnd (kolona e lidhur) emri i fushs n Recordset i specifikuar


nga RowSource, q duhet ti prcillet DataField-it, kur t bhet selektimi.
Kjo sht zakonisht njsoj si ListField
BoundText (teksti i lidhur) vlera tekstuale e fushs BoundColumn. Kjo
vler i prcillet tiparit DataField.
Text (Teksti) vlera tekstuale e elementit t zgjedhur n list. Zakonisht e
njjt me BoundText.

Prdorimi m dominant i kontrolls DataList box sht pr t mbushur listn me


vlera prej bazs s t dhnave, e pastaj pr t lejuar zgjedhjen. Zgjedhja mund t
prdoret pr t mbushur cilndo pajisje (kontroll) tjetr n form, pa marr
parasysh a sht ajo e vetdijshme n t dhna apo jo.
Shembull:
Insertojm n form nj kontroll t
tipit DataList dhe kontrolln
adoStudentet, pr qasje n bazn e
t dhnave. Definojm tiparin
ConnectionString t kontrolls
adoStudentet dhe tiparin e saj
RecordSource:
Select * From Studentet Order by Emri

Fig. 5.13 DataList

Pastaj, pr kontrolln DataList,


definojm tiparet: RowSource
adoStudentet, DataSource
adoStudentet, ListField Emri dhe

DataField Emri. Ekzekutojm programit dhe prmes kontrolls adoStudentet


lvizim npr emrat n kontrolln DataList. (Shembulli: DataList1.vbp)

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

Avni Rexhepi - Visual Basic

Format MDI

tekst t kontrolls DataCombo, ka mundsi t shkruhet dhe n kt mnyr t


ndryshohet vlera e kthyer.
Prnryshe kontrolla DataCombo i ka pothuajse t gjitha tiparet e njjta sikur
kontrolla DataList, prandaj sdo ti prsrisim.
Edhe DataCombo prdoret si kontroll zgjedhse ose drejtuese pr kontrollat e
vetdijshme n t dhna, si DataGrid, MSHFlexGrid etj.

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

Avni Rexhepi - Visual Basic

Format MDI

mund t prcaktohet gjersia e kolonave dhe lartsia e rreshtave si dhe kolonat t


bhen t padukshme pr shfrytzuesin. Gjithashtu mund t bllokohet mundsia e
ndryshimit dhe formatizimit n kohn e ekzekutimit.
Mirpo, nse n modin e ekzekutimit caktohet ndonj prej tipareve t kolonave t
kontrolls DataGrid, ather duhet t prcaktohen t gjitha tiparet, pr t mbajtur
vlerat aktuale t tyre.
Nse prdoret metoda Move (lviz) pr tu pozicionuar n kontrolln DataGrid,
mund t ket nevoj q t prdoret metoda Refresh, pr t detyruar paraqitjen
(repaint-rivizatimin) e saj n kontroll.
Shembull:
Insertojm n form, kontrollat DataList, DataCombo, DataGrid, Frame, dy
OptionButtons dhe dy kontrolla Ado (Fig. 5.14a).

Fig 5.14a DataList, DataCombo dhe DataGrid


Pr kt projekt, shkruajm kodin vijues:
Private Sub Form_Load()
'Deklarojm stringun pr urdhrin SQL
Dim strQuery As String
'Merri t gjitha t dhnat nga tabela Fletparaqitjet

290

Avni Rexhepi - Visual Basic

Format MDI

strQuery = "Select * FROM Fleteparaqitjet"


Wiew adoFleteparaqitjet
'Pr kontrolln adoFletparaqitjet
.RecordSource = strQuery
'Cakto burimin e t dhnave
.Refresh
'Rifresko gjendjen
End Wiew
Wiew DataGrid1
.ClearFields
.ReBind
End Wiew

'Pr kontrolln DataGrid1 - Rrjeta/Tabela


'Pastro prmbajtjen momentale
'Rivendose lidhjen e re

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

Avni Rexhepi - Visual Basic

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

N modin e ekzekutimit, dritarja duket si n fig. 5.14b

Fig. 5.14b Dritarja n modin e ekzekutimit


292

Format MDI

Avni Rexhepi - Visual Basic

Format MDI

Prmes opcioneve DataList dhe DataCombo, zgjedhim kontrolln t ciln e


prdorim pastaj si fush kontrolluese pr zgjedhjen e vlerave (Numrat e indeksave),
pr t cilat dshirojm ti shohim n tabel (DataGrid) t dhnat tjera t cilat
zgjedhen prmes pyetsve prkats. (Shembulli: ComboList1.vbp).

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

Avni Rexhepi - Visual Basic

Format MDI

vetm nj Recordset prind pr secilin prej obejkteve t shumfishta Recordset


fmij.
Pr t br grupimin e pjesve, pr qartsim mund t prdoren kllapat. Komanda
Shape mund t ndahet vetm prej objekteve Recordset. Komanda Shape mund t
jet e ndrthurur, q do t thot se komanda prind ose komanda fmij, mund t
jet vet komand Shape.
Shembull:
N shembullin e kaluar, n vend t kontrolls DataGrid, vendosim kontrolln e
tipit MSHFLexGrid, kurse t gjitha kontrollat tjera, si dhe kodi mbesin t
pandryshuara. N modin e ekzekutimit, dritarja duket si n fig. 5.14c.

Fig. 5.14c Shembulli me MSHFLexGrid

294

Avni Rexhepi - Visual Basic

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.

Dizajnimi i objektit DataEnvironment


N modin e dizajnimit, mund t prdoret dizajneri Data Environment pr t krijuar
objektin DataEnvironment. Para se t fillohet me dizajnimin e objektit
DataEnvironment duhet t prcaktohen informatat q do t prezentohen, t
identifikohen bazat e t dhnave t cilat i prmbajn t dhnat, t prcaktohen
qllimet pr modin e ekzekutimit, si paraqitja e raporteve, prdorimi i kontroll
hierarkike MSHFlexGrid, etj.
Para se t mund ti qaseni dizajnerit Data Environment, duhet ti referoheni atij, n
Visual Basic. Pr t ju referuar dizajnerit Data Environment duhet q:
1. N menyn Project, klikoni References.
295

Avni Rexhepi - Visual Basic

Format MDI

2. N dialogun References, zgjedhni Data Environment 1.0 dhe klikoni OK.


Tani n menyn Project do t paraqitet edhe nnmenya Add Data Environement
(shto Data Environment). (Prndryshe, ka mudnsi q n menyn Project t
zgjedhet Components, e pastaj n dritaren Components, t kalohet n faqen
Designers dhe t zgjedhet Data Environment 1.0.)
Pr t shtuar dizajnerin Data Environment n projekt t Visual Basic-ut, fillojm
nj projekt t ri StandardEXE dhe n menyn Project zgjedhim Add Data
Environment. N ekran do t hapet dritarja Project1- DataEnvironment1 (Fig.
5.15a).
N dritaren Project Explorer do t
paraqitet folderi Designers dhe n
t objekti DataEnvirojment1 (Fig.
5.15b). N dritaren Properties,
shihen tiparet e dizajnerit
DataEnvironment, n t ciln mund
ta ndryshojm emrin e predefinuar.
P.sh., nse krijojm
DataEnvironment pr lidhje n
bazn e t dhnave Fakulteti.mdb,
ather mund ta emrtojm si:
deFakulteti, ose deStudentt.
Fig. 5.15a DataEnvironment

Fig. 5.15b Dritarja Project Explorer

Kur t krijohet dizajneri Data


Environment (Fig. 5.15a), dizajneri
Data Environment automatikisht
krijon nj lidhje t re t quajtur
Connection1, pr t cilin duhet
definuar tiparet prkatse, pr t ju
qasur bazs s t dhnave. do
DataEnvironment duhet t
prmbaj s paku nj objekt
Connectin, i cili prezenton lidhjen
n bazn e t dhnave, q prdoret
si burim i t dhnave

N modin e dizajnit, Data Environment e hap lidhjen dhe i merr t dhnat


metadata (meta t dhnat) prej lidhjes, duke prfshir emrat e objekteve t bazs
s t dhnave, tabelave, strukturs s tabelave dhe parametrave t procedurave.

296

Avni Rexhepi - Visual Basic

Format MDI

Krijimi i objektit Connection


Funksioni Add Connection (Shto lidhjen) sht n dispozicion n do koh dhe
sht i pavarur prej ekzistimit t objekteve t tjera. Pr t krijuar lidhje me bazn e
t dhnave:
- klikoni Add Connection n shiritin e veglave t dritares s dizajnerit Data
Environment, ose
- klikoni me tastin e djatht dizajnerin Data Environment dhe zgjedhni Add
Connection n menyn e kontekstit.
Kur t shtohet lidhja, Data Environment azhurohet pr t paraqitur objektin e ri
Connection. Emri i predefinuar pr kt objekt sht ConnectionX, ku X sht
numr, si p.sh., Connection1.
Pr t fshir lidhjen, klikohet me t djathtn dhe zgjedhet Delete (fshije).
Pr t ndryshuar emrin Connection1 n emr t dshiruar, e zgjedhim objektin
Connection dhe n dritaren e tipareve, ndryshojm tiparin Name (emri), ose e
klikojm me t djathtn dhe n meny zgjedhim Rename (riemrto). P.sh., e
emrtojm lidhjen me emrin cnnStudentet (pr t vendosur lidhjen me tabeln
Studentt). Pa marr parasysh tipin e zgjedhur t burimit t t dhnave, Data
Environment i qaset t gjitha t dhnave prmes interfejstit ADO dhe OLEDB.
Pr t vendosur lidhjen, klikohet objekti Connection1 me tastin e djatht dhe
zgjedhet menya Properties (tiparet), me rast hapet dritarja Data Link Properties.
Kjo dritare sht e ngjashme me
dritaren e cila prdorej pr
vendosjen e lidhjes me t dhnat
(Data Link) pr kontrolln ADO.
Dritarja prmban faqet: Provider (
ku zgjedhet Provider-i prkats
Microsoft Jet 3.51/4.0 OLEDB, pr
baza t Accessit), Connection (n t
ciln zgjedhet ose jepet emri i bazs
s t dhnave dhe mund t testohet
lidhja prmes tastit: Test
Connection, si dhe mund t
definohet fjalkalimi pr qasje n
bazn e t dhnave), Advanced (ku
prcaktohen tiparet e avancuara)
dhe All (n t ciln paraqiten
informatat e tiparave t definuara).
N faqen Connection, definojm
lidhjen me bazn Fakulteti.mdb.
Fig. 5.15c Tiparet e lidhjes
297

Avni Rexhepi - Visual Basic

Format MDI

Command - Pr do lidhje, duhet prcaktuar objektin Command, i cili definon


komandn specifike e cila ekzekutohet n burimin e t dhnave. Objekti Command
prdoret pr t br pyetsin (query) n bazn e t dhnave dhe pr t marr
rekordet n objektin Recordset, pr t ekzekutuar ndonj operacion, ose pr t
manipuluar strukturn e bazs s t dhnave. Varsisht prej funksionalitetit t
provajderit, disa koleksione Command, metoda ose tipare mund t gjenerojn
gabime kur t ju referoheni.
Pr t krijuar objektin Command:
- klikoni Add Command n shiritin e veglave t dritares s dizajnerit Data
Environment, ose
- klikoni me tastin e djatht objektin Connection (cnnStudentet) dhe
zgjedhni Add Connection n menyn e kontekstit.
N dritaren e dizajnerit Data Environment, si element i lidhjes, do t paraqitet
objekti Command1. E zgjedhim objektin Command1 dhe n dritaren Properties
prcaktojm tiparet e tij, ose e klikojm me t djathtn dhe n meny zgjedhim
Properties, dhe n ekran paraqitet dritarja Command1 Properties (Fig. 5.15d).
N faqen General, n fushn
Command Name definojm emrin
kurse n listn Connection paraqitet
emri i objektit Connection. Nse
dizajneri ka disa lidhje, ather
zgjedhet lidhja e dshiruar. Pr t
prcaktuar burimin e t dhnave,
zgjedhim prmes opcionit
Database Object, tabeln ose
pyetsin prkats dhe n fushn
Object Name, prej lists q krijohet
zgjedhim tabeln ose pyetsin
prkats.
Fig. 5.15d Command1 Properties
Nse dshirojm t marrim t dhnat prmes urdhrit SQL, zgjedhim opcionin SQL
Statement. Ather, n dritaren nn t shkruajm urdhrin SQL ose n ann e
djatht klikojm tastin SQL Builder... (Krijuesi i SQL), me rast hapet dritarja e
dizajnerit t pyetsave.
Definojm tiparet si n fig. 5.15d dhe klikojm OK. N dritaren e dizajnerit Data
Environment tani do t paraqitet edhe objekti i krijuar Command.
N fund DataEnvironment ruhet si fajll me prapashtesn .dsr.
298

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Format MDI

Do t krijojm pyetsin, prmes s cilit do t nxjerrim notat e studentve npr


provime prandaj definojm emrin qryStudentetNotat (n fushn Command Name) .
Pastaj, zgjedhim opcionin SQL Statement dhe klikojm tastin komandues SQL
Builder, me rast hapet dritarja e dizajnerit t pyetsit (Fig. 5.17a). N fillim ajo
sht trsisht e zbrazt. Dritarja sht e ngjashme me dritaren pr dizajnimin e
pyetsve n Access, prandaj prvoja me Access do ta lehtsonte shum punn rreth
krijimit t pyetsit prmes dizajnerit.
Rregullojm n ekran dritaren e dizajnerit t pyetsit dhe dritaren Data View dhe
prej dritares Data View, zvarrisim n pjesn e eprme t dritares s dizajnerit
tabelat: Studentet, Fleteparaqitjet dhe Lendet.
N pjesn nn t, do t paraqiten fushat e zgjedhura, pr tu paraqitur n pyets.
Zgjedhja bhet duke selektuar fushn pr zgjedhje n dritaren e tabels me rast
paraqitet shenja e zgjedhjes ose duke klikuar n rreshtin prkats t fushs Column
dhe nga lista e hapur zgjedhet fusha e dshiruar.
Nse tabelat nuk jan t lidhura, n relacion me njra tjetrn, pr vendosjen e
lidhjes, zgjedhet fusha e njrs tabel dhe zvarritet deri te fusha pr lidhje n
tabeln tjetr (pr rastin ton, shihet se jan t lidhura tabelat Studentet me tabeln
Fletparaqitjet prmes fushave Numri i Indeksit nga tabela Studentet dhe fusha Nr i
Indeksit nga tabela Fletparaqitjet) si dhe tabelat Fletparaqitjet dhe Lendet
prmes fushave Numri i lendes.

Fig. 5.17a Dizajneri i pyetsit


300

Avni Rexhepi - Visual Basic

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

Njsoj kemi edhe urdhrat me metodat


tjera prkatse: MoveNext,
MovePrevious dhe MoveLast.
Si shihet, rekordseti krijohet duke ia
shtuar parashtesn rs objektit
Command (rsqryStudentetNotat).
Fig. 5.17c Forma me fushat e pyetsit
qryStudentetNotat

301

Avni Rexhepi - Visual Basic

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).

Fig. 5.18b Kontrolla MSHFLexGrid


302

Avni Rexhepi - Visual Basic

Format MDI

Prdorimi i Data Environment n aplikacion


N modin e ekzekutimit, Data Environment krijon komandn ADO dhe objektet
Connection pr seciln Command dhe objekt Connection, t definuar n Data
Environment. Nse objekti Command sht shenjuar si Recordset Returning (n
faqen Advanced t dritares Command Properties), ather krijohet edhe objekti
ADO Recordset. Objekti ADO Command shtohet si metod prej objektit t kohs s
ekzekutimit Data Environment dhe objektet ADO Connection dhe Recordset
shtohen si tipare t tij.
Ekzistojn dy mnyra t prdorimit t objektit Data Environment gjat kohs s
ekzekutimit:
- si burim direkt i t dhnave (direct data source) pr lidhjen e t dhnave me
kontrollat n form
- pr t krijuar nj instanc t Data Environment prmes programit (kodit)
dhe pr t ekzekutuar objektet e tij Command.
Pr m tepr, Data Environment i kohs s ekzekutimit prmban koleksionet
Commands, Connections dhe Recordset. Kto koleksione, me baz 1 (fillojn me
numrim prej 1 e jo prej 0) ofrojn mundsi t qasjes programore n objektet ADO,
duke mundsuar numerimin e objekteve t ndryshme.
N Data Environment, emrat e objekteve ADO Recordset jan t paraprir prej
parashtess rs pr ti dalluar ata prej objekteve prkatse Command, pr
shembull objekti Command Studentt, krijon Recordset-in me emrin rsStudentet.
Sipas vlers standarde, objektet Recordset, jan t mbyllura. Kur ekzekutohet
metoda korresponduese e Command-s s objektit t Recordset-it, hapet Recordseti. Pr shembull, ekzekutimi i metods Studentt hap objektin Recordset
rsStudentt. Pr m tepr, objekti Recordset mund t hapet n mnyr direkte,
duke prdorur ADO metodn Open. Duke prdorur kt metod, mund t
manipulohet objekti Recordset, akoma pa u hapur.
Lidhja me bazn e t dhnave
Pr pun me bazn e t dhnave, programi s pari duhet t lidhet me t. Ado
prdor objektin Connection (lidhja), pr vendosjen e lidhjes me bazn e t
dhnave. Pr shembull, lidhja me nj baz t Accessit do t vendosej prmes
urdhrave vijues:
Dim cnnStudentet as New ADODB.Connection
cnnStudentet.CursorLocation=adUseClient
cnnStudentet.Open PROVIDER=Microsoft.Jet.OLEDB.3.51; _
& Data Source=C:\Visual Studio\VB98\Fakulteti.mdb;

303

Avni Rexhepi - Visual Basic

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

Kshtu do t lexoheshin t gjitha t dhnat prej tabels Studentet dhe do ti


bashkangjiteshin variabls rs. Nse dshironi t prdorni urdhr SQL, ather
ndryshohet vetm thirrja e metods Open( ):
rs.Open SELECT * FROM Studentet ORDER BY Emri, cnnStudentet, , adCmdText

Treguesi adCmdTable i tregon objektit ADO se duhet t ekzekutoj urdhrin e jo ta


prdor pr qasje direkte n bazn e t dhnave.
Kur mjafton rekordseti q lexon vetm prpara, si pr shembull, pr mbushjen e
kontrolls s caktuar vetm pr paraqitje t t dhnave, ather kodi duket:
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorType = adOpenForwardOnly
rsLockType = adLockReadOnly
rs.Open Studentet, cnnStudentet, , adCmdTable

N kt rast objekti ADO duhet t kthej sasi shum m t vogl t informatave pr


navigim, sesa n rastet kur krkohet rekordseti i kompletuar.
Pyetsit veprues
Pyetsit veprues, t njohur edhe si Procedura t ruajtura (Stored Procedures)
ekzekutojn ndonj veprim n bazn e t dhnave, por nuk kthejn bashksi t t
dhnave sikur pyetsit selektues. Pyetsit veprues zakonisht prdoren pr fshirjen e
rekordeve, ose insertimin ose azhurimin e rekordeve. Procedurat e ruajtura krijohen
me lehtsi t njjt sikur pyetsit t cilt kthejn rekordsetin.
304

Avni Rexhepi - Visual Basic

Format MDI

Pyetsi i thjesht veprues mund t krijohet prmes urdhrit SQL:


Fshirja
Dim cnnStudentet as ADODB.Connection
Dim cmdStudentet as ADODB.Command
Set cmdStudentet = New ADODB.Command
cmdStudentet.CommandText = DELETE FROM Studentet Where Emri = Albin
cmdStudentet.CommandType = adCmdText
Set cmdStudentet.ActiveConnection = cnnStudentet
cmdStudentet.Execute

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

Avni Rexhepi - Visual Basic

Format MDI

Duhet pasur kujdes, q t definohet vlera e objektit n Nothing (asgj). Me kt i


tregohet Visual Basic-ut se sht prfunduar me prdorimin e objektit. Nse ndonj
objekt i caktuar Connection nuk ka ndonj referenc tjetr, Visual Basic-u do t
liroj memorien dhe resurset t cilat i ka prdorur objekti.

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

Avni Rexhepi - Visual Basic

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.

Fig. 6.6b Raproti n modin e dizajnimit


Gjat dizajnimit, n shiritin e veglave ToolBox, paraqitet edhe pjesa me veglat pr
dizajnim t raportit (DataReport), n t cilin ndodhen veglat e prshtatshme pr
pun me raportet (rptTextBox, rptLabel, rptLine, rptFunction, etj.).
307

Avni Rexhepi - Visual Basic

Format MDI

Si shihet n figur, kemi insetruar Label-at, n pjesn e kreut t raportit


(Report_Header) dhe n pjesn e kreut t faqeve (Page_Header). N pjesn
Details, insertojm kontrolla t tipit TextBox dhe pr to i definojm tiparet
DataMember (Adresari) dhe DataField (fushat prkatse, Emri, Mbiemri dhe
Telefoni). N pjesn e futerit t faqes, insertojm kontrollat: Current Date (Short
Format) n ann e majt dhe Current Page Number dhe Total Number of Pages n
ann e djatht.
N formn e projektit insertojm nj tast komandues (cmdRaporti), pr t cilin
definojm kodin pr ngjarjen Click:
Private Sub cmdRaporti_Click()
rptAdresari.Show
Paraqitet raportin
End Sub

N modin e ekzekutimit, kur klikohet tasti Paraqite Raportin (cmdRaporti), n


ekran do t paraqitet raporti me t dhnat nga baza e t dhnave (Fig. 6.6c)

Fig. 6.6c Raporti i krijuar, n modin e ekzekutimit


N skajin e majt lart, t dritares paraqiten edhe tastet Print (Shtyp) prmes t cilit
shtypet raporti dhe Export (Eksporto), prmes t cilit mundsohet eksportimi n
format tjetr. (Shembulli Adresari me raport.vbp).

308

Avni Rexhepi - Visual Basic

Format MDI

Krijimi automatik i projektit pr t dhna


Pr realizimin m t shpejt t disa projekteve standarde, Visual Basic-u ofron
mundsin e krijimit t strukturs standarde t projekteve prmes dritares pr
fillimin e krijimit t projekteve t reja, New Project (Project i ri) duke zgjedhur n
menyn File New Project (Fig. 6.7a).

Fig. 6.7a Data Project

P.sh., nse planifikoni krijimin e


nj projekti pr pun me baza t t
dhnave, n t cilin ju nevojitet
DataEnvironment dhe DataReport,
ather, n dritaren pr fillimin e
projektit t ri (New Project)
zgjedhet Data Project dhe klikohet
OK. N kt rast, Visual Basicu
automatikisht do t krijoj t gjitha
objektet e nevojshme, si forma,
DataEnvironment, DataReport, etj.
N dritaren Project Explorer (Fig.
6.7b) do t shihen objektet e
krijuara automatikisht prej Visual
Basic-ut.
Pastaj, sipas nevojs definohen
tiparet prkatse pr kontrollat e
krijuara.
Kjo procedur mundson realizimin
m t shpejt t projekteve t
ndryshme.

Fig. 6.7b Dritarja Project Explorer

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

Avni Rexhepi - Visual Basic

Format MDI

Kur t fillohet projekti i ri (File New Project), n dritaren New


Project (Fig. 6.7a) zgjedhet VB Application Wizard dhe klikohet
OK. N ekran do t paraqiten me rradh hapat t cilt prmes
udhzimeve i mundsojn shfrytzuesit krijimin e aplikacionit.
N hapin e par (Fig. 6.8a) zgjedhet profili i aplikacionit (i cili ruhet si shabllon pr
aplikacionet e ardhshme). Nse ska ndonj profil, vazhdohet n hapin e ardhshm
me Next. N hapin e dyt (Fig. 6.8b) zgjedhet interfejsi i programit, lloji i formave
(MDI, SDI apo stil i Explorerit). Gjithashtu prcaktohet edhe emri i aplikacionit.

Fig. 6.8a Zgjedhja e profilit

Fig. 6.8b Zgjedhja e interfejsit

Fig. 6.8c Konfigurimi i menyve

Fig. 6.8d Konfig. i shiritit t veglave

Me Next, vazhdohet n hapin e ardhshm. N hapin e tret (Fig. 6.8c) zgjedhen


menyt t cilat do t paraqiten n aplikacion dhe prmbajtja e menyve. M Next,
vazhdohet n hapin e ardhshm. N hapin e katrt (Fig. 6.8d) zgjedhen ikonat q
do t paraqiten n shiritin e veglave t aplikacionit. Me Next, vazhdohet n hapin e
ardhshm. N hapin e pest (Fig. 6.8e) prcaktohet se a do t ket aplikacioni
resurse t jashtme. N hapin e gjasht (Fig. 6.8f) definohet a do t ket qasje n
internet prmes aplikacionit q krijohet.
310

Avni Rexhepi - Visual Basic

Format MDI

Fig. 6.8e Fajlli i resurseve

Fig. 6.8f Qasja n internet

Fig.6.8g Format standarde

Fig. 6.8h Format pr qasje n t dhna

Pastaj, n hapin e shtat (Fig. 6.8g) definohen format standarde t cilat do ti


prmbaj aplikacioni, si forma hyrse, forma pr lajmrim prmes emrit dhe
fjalkalimit (password-it), etj. N hapin vijues (Fig. 6.8h) prcaktohet nse
aplikacioni do t prmbaj forma t bazuara n tabela ose pyetsa t bazs s t
dhnave.
Prmes tastit Create New Form... , startohet magjistari pr forma.
N hapin e ardhshm, mundsohet ruajtja e konfigurimit t br, si profil i cili do t
prdoret pr krijimin e aplikacioneve t ardhshme t bazuara n t (sikur pyetja q
u paraqit n hapin e par). N kt hap ka mundsi t gjenerohet raporti
prmbledhs, prmes tastit View Report. Me Finish, prfundohet procedura, me
rast n ekran paraqitet dritarja Application Created (Fig. 6.8j), me t ciln
magjistari lajmron se aplikacioni sht krijuar. Me OK, pranojm informatn dhe
prfundojm procedurn e krijimit t aplikacioni prmes magjistarit.

311

Avni Rexhepi - Visual Basic

Fig. 6.8i Ruajtja e profilit

Fig. 6.8k Aplikacioni i krijuar

312

Format MDI

Fig. 6.8j Prfundimi i aplikacionit


N ekran do t paraqitet dritarja e
aplikacionit, me format dhe objektet
tjera prkatse, n modin e dizajnit.
Nse krijojm aplikacion t thjesht,
duke aprovuar t gjith hapat e
propozuar, vetm duke vazhduar me
Next n do hap, do t krijohet
aplikacioni, i cili kur t ekzekutohet,
do t duket si n Fig. 6.8k.
Pra, stili i aplikacionit sht shum i
ngjashm me t gjitha aplikacionet
standarde t Microsoft-it.
Duke studiuar kodin e krijuar, mund t
fitohet prvoj e mueshme pr
krijimin e aplikacioneve t reja n t
ardhmen.

Avni Rexhepi - Visual Basic

Format MDI

Data Form Wizard


Magjistari pr forma pr t dhna (Data Form Wizard) mundson krijimin e
formave pr qasje n t dhna. Funksionon ngjashm si dizajneri i formave t
Visual Data Manager-it. Mund t prdoret dhe aktivizohet edhe gjat procedurs s
krijimit t aplikacioneve prmes magjsitarit (Fig. 6.8h).
Pr t filluar krijimin e forms prmes magjistarit, n menyn Project, zgjedhim
Add Form dhe n dritaren q hapet, zgjedhim VB Data Form Wizard.
N hapin e par, magjistari i formave pr qasje n t dhna (Fig. 6.9a) mundson
zgjedhjen e profilit t gatshm. Me Next, vazhdohet n hapin e ardhshm (Fig.
6.9b), n t cilin zgjedhet formati i bazs s t dhnave.

Fig. 6.9a Zgjedhja e profilit

Fig. 6.9b Zgjedhja e tipit t bazs s t


dhnave

Fig. 6.9c Zgjedhja e bazs s t


dhnave

Fig. 6.9d Konfigurimi i forms dhe


emri i forms

313

Avni Rexhepi - Visual Basic

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).

Fig. 6.9e Zgjedhja e burimit t


rekordeve

Fig. 6.9f Konfigurimi i tasteve


komanduese

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

Avni Rexhepi - Visual Basic

Fig. 6.9g Ruajtja e profilit

Format MDI

Fig. 6.9h Forma e krijuar

Me Next, vazhdohet n hapin e ardhshm (Fig. 6.9g) n t cilin mundsohet ruajtja


e konfigurimit t br, si profil. Me Finish prfundohet procedura dhe n
ekran do t paraqitet forma e krijuar prmes magjistarit (Fig. 6.9h).
N kt rast kemi vendosur lidhjen me bazn e t dhnave Adresari.mdb dhe kemi
zgjedhur si burim t rekordeve tabeln Adresari.
Edhe n kt rast, magjistari krijon edhe kodin e nevojshm pr funksionimin
normal t forms dhe aplikacionit, kshtu q prmes studimit t kodit t krijuar,
mund t fitohet prvoj pr krijimin e formave t ngjashme.

315

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Format MDI

- Tile Horizontaly (palosja horizontale) dritaret e hapura palohen horizontalisht


njra pran tjetrs, me madhsi t barabarta. (frmMDI.Arrange.vbTileHorizontal)
- Tile Verticaly (palosja vertikale) - dritaret e hapura palohen vertikalisht njra
pran tjetrs, me madhsi t barabarta.
- Cascade (kaskad, varg) dritaret rradhiten njra pas tjetrs, prej skajit t majt
lart, duke ln hapur nj pjes t titullit t dritares, pr t mundsuar zgjedhjen e
dritares (frmMDI.Arrange vbCascade).
Visual Basic-u i trajton n mnyr t veant format MDI, meq forma MDI sht
lloj tjetr i forms e nuk sht n pyetje vetm nj tipar i caktuar i forms. Forma
MDI ka pr detyr t udhheq me format tjera, n zonn e saj pr format e varura.
Pr t prdorur formn MDI, duhet t krkoni hapjen e forms MDI, prmes
menys: Project Add MDI Form.
Nuk ka mundsi q forma MDI t shndrrohet n form t zakonshme dhe
anasjelltas. N nj projekt ka mundsi t ekzistoj vetm nj form MDI. Pasi q
forma MDI sht nj mnyr pr prdorimin e prbashkt t elementeve t cilat i
prkasin tr aplikacionit, ather ska kuptim q t ekzistoj m shum se nj
form MDI. Nse konsiderohet se nevojiten dy MDI forma ather ose sht n
pyetje dizajni i gabuar ose nevojiten dy aplikacione t veanta.
Nse aplikacioni prmban form MDI, ather format tjera mund t jen ose
forma standarde, t cilat punojn jasht zons s formave t varura MDI, ose forma
t varura MDI (forma MDI fmij).
Pr t paraqitur formn e varur MDI, jepet urdhri:
frmMDIFmij.Show

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

Avni Rexhepi - Visual Basic

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:

Fig. 6.1 Forma MDI


Private Sub MDIForm_Load()
Form1.Caption = "Forma Nr - 1"
' Cakto titullin e Form1.
Dim FormaeRe As New Form1
' Krijo form t re fmij - child form.
Load FormaeRe
FormaeRe.Caption = "Forma Nr - 2" ' Cakto titullin e forms s re
FormaeRe.Show
' Parqite formn e re
End Sub

Pastaj, n seksionin Declarations t forms fmij MDI, shkruajm kodin vijues:


Private Sub Form_Activate()
' Cakto tekstin n status bar.
MDIForm1.Label1.Caption = "Forma aktuale: " & Me.Caption
End Sub

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

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Fig. 6.11b Add Module

Modulet

Fig. 6.11c Moduli (Ngjyra.bas)


N t dritaren e moduli shkruajm
kodin si n Fig 6.11d. Procedura e
modulit ka emrin Ngjyra dhe ka si
parametr t saj objektin Form
(Formn). Me urdhrin n
procedur, definohet ngjyra e
prapavis s forms (BackColor, e
kuqe vbRed).

Fig. 6.11d Kodi i modulit


Moduli sht i gatshm dhe mund t thirret prej projektit. Kalojm n dritaren e
forms frmForma1, klikojm dy her tastin komandues dhe hapet dritarja e kodit
pr tastin komandues cmdNgjyra_Click( ) (Fig. 6.11e). Shkruajm kodin si n
figurn vijuese:
Pra, moduli (procedura e modulit)
thirret prmes urdhrit Call
(Thirre), duke ia prcjellur
parametrat e nevojshm. N kt
rast, shihet se si parametr t
procedurs kemi definuar formn
aktuale (frmForma1). Procedura e
modulit patjetr duhet t thirret me
Fig. 6.11e Thirrja e modulit
aq parametra sa i ka t definuar dhe
t llojit t definuar.
Ruajm dhe ekzekutojm projektin. Kur t klikohet tasti komandues, prapavia e
forms do t bhet me ngjyr t kuqe (Shembulli: Ngjyra.vbp).
321

Avni Rexhepi - Visual Basic

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

Pra, procedura e modulit NdryshoNgjyren i ka dy parametra, kodin (numrin) e


ngjyrs dhe formn.
Pr tastin komandues cmdNgjyra, shkruajm kodin vijues pr ngjarjen Click( ):
Private Sub cmdNgjyra_Click()
Dim i As Integer
Randomize
'Aktivizon gjeneratorin e numrave te rastit
i = Int((15 * Rnd) + 1) 'Vlera e rastit pr i
Call NdryshoNgjyren(i, Me) 'Me-Un, i referohet formes aktuale
End Sub

Ruajm dhe ekzekutojm projektin. N kt shembull, sa her q t klikohet tasti


komandues, ngjyra e prapavis s forms ndryshon dhe merr ngjyr t rastit.
Shembull:

Fig. 6.12 Forma e projektit


Kodi i modulit Shuma.bas:

322

Insertojm n form, kontrollat si


n Fig. 6.12a : lblInfo, lblNumri,
txtNumri, cmdShuma, picShuma
dhe txtShuma. N fushn txtNumri
shtypet vlera e numrit n, pr t cilin
kur t klikohet tasti komandues
cmdShuma, do t thirret
moduli(Shuma.bas) i cili e llogarit
shumn e numrave prej 1 deri n n
dhe vlera e rezultatit do t shtypet
n fushn txtShuma. N fig 6.12.
shihet rezultati pr n=10.

Avni Rexhepi - Visual Basic

Modulet

Sub Shuma(n As Integer, Rez As Long)


Dim i As Integer
Dim S As Long
i=1
S=0
For i = 1 To n
'Unaza prej 1 deri n n
S=S+i
'Shuma e numrave
Next i
'Hapi i ardhshm
'MsgBox "Shuma S = " & S, , "Moduli Shuma"
Rez = S
End Sub

Kodi i tastit komandues cmdShuma:


Private Sub smdShuma_Click()
Dim Rezultati As Long
If txtNumri.Text = "" Then
MsgBox "Caktoni numrin n ", , "T definohet vlera n"
txtNumri.SetFocus
Exit Sub
End If
Call Shuma(Val(txtNumri.Text), Rezultati) Thirrja e modulit standard
txtShuma = Rezultati
End Sub

Ky modul, mund t prdoret sa her t ket nevoj pr llogaritjen e shums s


numrave prej 1 deri n n, n cilindo projekt t ardhshm.
N kt mnyr, mund t krijohen modulet standarde, t cilat mund t prdoren n
disa projekte, pa pasur nevoj q t prsriten nga disa her.

323

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

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.

Fig. 6.13 Kontrolla ActiveX

4. Shtojm dy kontrolla TextBox


dhe dy kontrolla Label n form
dhe caktojm emrat e tyre si n
vijim: lblEmri, lblMbiemri, txtEmri
dhe txtMbiemri.
Pasi q kontrolla do t prsritet,
definohet madhsia e saj sa m e
vogl (Fig. 6.13a)

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

Avni Rexhepi - Visual Basic

Modulet

Public Property Get MbiemriStudentit() As String


MbiemriStudentit = txtMbiemri.Text ' Return a String!
End Property
Public Property Let MbiemriStudentit(ByVal NewMbiemriStudentit As String)
txtMbiemri.Text = NewMbiemriStudentit ' NewMbiemriStudentit is a String!
End Property
Private Sub txtEmriStudentit_Change()
PropertyChanged "EmriStudentit"
End Sub
Private Sub txtMbiemriStudentit_Change()
PropertyChanged "MbiemriStudentit"
End Sub

6. Pr ti br kontrollat t lidhura n t dhna, duhet t prdoret dritarja pr dialog


Procedure Attributes (Atributet e procedurs). N menyn Tools, klikohet
Procedure Attributes dhe n ekran paraqitet dritarja Procedure Attributes (Fig.
6.13b). Klikohet tasti Advanced, pr t hapur dritaren e plot.
Fusha Name (Emri) prmban
tiparin t cilin dshirojm ta bjm
t lidhur n t dhna dhe ajo duhet
t prmbaj EmriStudentit dhe
MbiemriStudentit. Klikojm
opcionin Property is data bound
(Tipari sht i lidhur n t dhna)
dhe pastaj klikohet Show in
DataBindings collection at design
time (Paraqite n koleksionin
DataBindings n kohn e
dizajnimit). Pastaj n fushn Name
zgjedhim tiparin Mbiemri i studentit
dhe pr t njsoj aktivizojm fushat
si pr EmriStudentit.
Klikojm OK dhe mbyllet dritarja.

Fig. 6.13b Procedure Attributes


Sipas nevojs, prmes Windows Explorerit krijojm nj folder t ri n disk dhe e
emrtojm StudentCtl ose e ruajm kontrolln n ndonj folder ekzistues.
326

Avni Rexhepi - Visual Basic

Modulet

7. N menyn File zgjedhim Save Project (Ruaje projektitn) dhe e ruajm me


emrin e ofruar n dritaren pr dialog (StudentetCtl).
8. N menyn File zgjedhim Make StduentetCtl.ocx (Krijo StudentetCtl.ocx). E
ruajm fajllin .ocx n folderin e njjt.
Kur t kompajlohet kontrolla e shfrytzuesit n .ocx, Visual Basic-u e regjistron
kontrolln, duke lejuar prdorimin e saj n kontrolln DataRepeater.
Kur t jet krijuar dhe kompajluar kontrolla e shfrytzuesit, ajo mund t prsritet n
kontrolln DataRepeater.
Prdorimi i kontrolls s shfrytzuesit t lidhur n t dhna n kontrolln
DataRepeater.
Pr t prdorur kontrolln e shfrytzuesit t lidhur n t dhna, n kontrolln
DataRepeater, veprojm si vijon:
1. Krijojm nj projekt t ri StandardExe dhe insertojm kontrollat
DataRepeater dhe ADO Data Control n shiritin e veglave (Toolbox), duke
zgjedhur n dritaren Components kontrollat Microsoft DataRepeater
Control dhe Microsoft ADO Data Control.
2. Insertojm n form kontrolln DataRepeater. E bjm kontrolln me
madhsi t mjaftueshme pr t pranuar disa rreshta t kontrolls q
prsritet (Fig. 6.13c).
Madhsia e rreshtit sht sa lartsia
e kontrolls s prsritur, si sht
prcaktuar me madhsin e
kontrolls s shfrytzuesit.
3. Insertojm n form edhe
kontrolln ADO (Adodoc1),
prfundi kontrolls DataRepeater.
Zgjedhim kontrolln Adodoc1 dhe
n dritaren Properties klikojm
tiparin ConnectionString. Prmes
dialogut ConnectionString,
definojm lidhjen me bazn e t
dhnave (Studentet-Provimet.mdb).
Fig. 6.13c Kontrolla DataRepeater
Pastaj definojm tiparin Record Source prmes urdhrit SQL :
Select * From Studentet

327

Avni Rexhepi - Visual Basic

Modulet

4. Zgjedhim kontrolln DataRepeater1 dhe n dritaren Properties klikojm tiparin


DataSource dhe zgjedhim Adodoc1, si burim t t dhnave.

Fig. 6.13d RepeatedControlName

5. N dritaren Properties, klikojm


tiparin RepeatedControlName pr
t paraqitur listn e kontrollave n
dispozicion dhe zgjedhim
kontrolln:
StudentetCtl.ctlStudentet. Kontrolla
e zgjedhur do t prsritet n
kontrolln DataRepeater.

Kur kontrolla e shfrytzuesit t jet e prmbajtur n kontrolln DataRepeater, tiparet


e kontrolls s shfrytzuesit duhet t lidhen me burimin e t dhnave (Record
Source). Pr t vendosur kt lidhje, duhet ekzekutuar hapat vijues:
1. Klikojm me t djathtn n kontrolln DataRepeater dhe n meny zgjedhim
DataRepeater Properties. N ekran do t paraqitet dritarja pr dialog Property
Pages (Faqet e tipareve - Fig. 6.13e). Kalojm n faqen RepeaterBindings.
2. Klikojm n fushn
PropertyName pr t paraqitur
listn e tipareve t lidhura n t
dhna. Zgjedhim EmriStudentit.
3. Klikojm n fushn Data Filed
pr t paraqitur listn e fushave t
t dhnave, q jan n dispozicion
nga burimi i t dhnave. Zgjedhim
fushn Emri.
4. Klikojm tastin Add (Shtoje) pr
t shtuar iftin e tiparit dhe fushs
s t dhnave n koleksionin
RepeaterBindings.
Fig. 6.13e - Property Pages
Pastaj prsrisim hapat 2, 3 dhe 4 pr tiparin tjetr (Mbiemri).
N faqen General, caktojm tiparin Caption, pr emrin e kontrolls, stilin e tij,
pamjen e kontrolls, stilin e kufinjve (BorderStyle) etj. Nse ka nevoj t
definohet ndonj format i caktuar pr ndonj fush, kalohet n faqen Format dhe
definohet formati sipas dshirs.
328

Avni Rexhepi - Visual Basic

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).

Fig. 6.13f Kontrolla DataRepeater n


modin e ekzekutimit

329

Avni Rexhepi - Visual Basic

Ndihma

Objektet dhe klasat


Programimi i orientuar n objekte
Visual Basic-u sht nj gjuh programuese e bazuar n objekte dhe n trsi
prkrah konceptin e programimit t orientuar n objekte. Konceptet themelore
jan klasat dhe objektet.
Prvoja e programimit me metodat tradicionale ka treguar se me rritjen e
programit, ai bhet m kompleks dhe gjersa rritet numri i programerve q marrin
pjes n nj projekt t prbashkt, rritet eksponencialisht numri i varsive dhe
relacioneve t ndrsjella prgjat kodit. Ndryshimi i vogl i br nga ana e nj
programeri n nj pjes t kodit, mund t ket efekte t shumta t qllimshme ose
t paqllimshme n shum pjes t tjera. Efekti i ktij ndryshimi mund t
rregulloj tr programin, duke krkuar rishkruarjen e nj pjese t madhe t kodit.
Si zgjedhje e problemit sht paraqitur fshehja e t dhnave, ku, brenda njsis,
detajet e implementimit fshehen sa m shum q t jet e mundur. Fshehja e t
dhnave sht nj prej principeve baz t programimit t orientuar n objekte.
Objekti sht nj enkapsulim (encapsulation mbshtjellje n kapsule,
mbshtjells) i t dhnave dhe procedurave q veprojn n to. E vetmja gj q i
intereson programerit pr prdorimin e objektit sht: detyrat, veprimet q nj
objekt mund ti kryej dhe parametrat q prdoren me kt rast. Detajet e strukturs
s t dhnave dhe procedurave jan t fshehura prbrenda objektit.
Objekti sht nj kombinim i kodit dhe t dhnave q mund t trajtohet si nj njsi.
Kemi objektet kontrolla dhe objektet kod. Shembuj t objekteve kontrolla jan
TextBox-et, CommandButton-at dhe t gjitha kontrollat q mund t krijohen prej
shiritit t veglave t Visual Basic-ut (ToolBox). Objektet kod jan instanca
specifike t t dhnave t definuara prej shfrytzuesit t cilat definohen ngjashm
me tipet e rekordeve n module t veanta. T dy llojet e objekteve kan tiparet e
tyre dhe u prgjigjen metodave. Dallimi kryesor mes tyre sht se objektet
kontroll jan t predefinuara dhe kan manifestimin fizik prkats, gjersa objektet
kod duhet t definohen prej programerit dhe ekzistojn vetm n nj pjes t
memorjes.
Objekt mund t jet nj pjes e aplikacionit, si p.sh., kontrolla n form. Edhe nj
aplikacion i trsishm mund t jet objekt. Shembuj t objekteve jan kontrollat
n form (si CommandButton, Textbox-i, Frame, etj.), forma, baza e t dhnave etj.
Secili objekt n Visual Basic sht i definuar prej klass. Klasa prdoret pr t
krijuar objektet. Si sqarim, mund t shrbej shembulli vijues i relacionit mes
klasave dhe objekteve: Kontrollat n Toolbox prezentojn klasa. Objekti i njohur si
kontroll nuk ekziston deri n momentin kur shfrytzuesi e vendos at n form.
Kur t krijohet kontrolla, krijohet nj kopje ose nj instanc e klass s kontrolls.
Kjo instanc e klass sht objekti t cilit i referohemi n aplikacion. Edhe forma
330

Avni Rexhepi - Visual Basic

Ndihma

n t ciln punohet n modin e dizajnimit sh nj klas e kontrollave. N modin e


ekzekutimit, Visual Basic-u krijon nj instanc t klass s forms. Dritarja e
tipareve (Properties) paraqet klasn (llojin e kontrolls, objektit) dhe tiparin Name
(Emri) t objektit n apliakacionin e Visual Basic-ut, si p.sh: Text1 TextBox, ku
Text1 sht emri i objektit ndrsa TextBox sht emri i klass.
T gjitha objektet krijohen si kopje identike t klass s tyre. N momentin kur
ekzistojn si objekte individuale, tiparet e tyre mund t ndryshohen. Pr shembull,
nse n form insertohen tri taste komanduese, secili prej tyre paraqet nj instanc
t klass CommandButton. Secili objekt bashk-ndan setin e karakteristikave dhe
aftsive (tipareve, metodave dhe ngjarjeve), t definuara prej klass. Sidoqoft,
secili ka emrin e vet, mund t aktivizohet ose deaktivizohet individualisht dhe
mund t vendoset n pozit t caktuar n form.
Programet e orientuara n objekte jan t mbushura me objekte t cila i mbajn t
dhnat, kan tipret, i prgjigjen metodave dhe gjenerojn ngjarjet.
Pr shembull, n nj program q e prdor nj profesor pr t llogaritur notat e
studentve n provim, objekti Studenti mund t prmbaj emrin, mbiemrin, numrin
e indeksit, pikt me shkrim, pikt me goj dhe notn prfundimtare t studentit.
Metoda NotaPerfundimtare mund t bj llogaritjen e nots (varsisht prej
rezultatit t pjess me shkrim, pjess me goj, etj.). Ngjarjet mund t gjenerohen
kur objektit i prcillen t dhnat e gabuara, si p.sh, emra n vend t notave, etj.
Termi m i rndsishm i programimit t orientuar n objekte sht klasa. Klasa
sht nj shabllon prej t cilit krijohen objektet. Klasa prcakton tiparet dhe
metodat t cilat do t jen t prbashkta pr t gjitha objektet q jan instanc e
asaj klase. Klasat formulohen n module t klasave. Objekti, i cili sht nj
instanc e klass, mund t krijohet n program prmes iftit vijues t urdhrave t
forms:
Private EmriObjektit as EmriKlass
Set EmriObjektit = New EmriKlass

N pjesn General Declarations


N procedur

N program, tipareve t objektit ju qasemi prmes urdhrave si n vijim:


EmriObjektit.EmriTiparit = vlera
PicBox.Print EmriObjektit.EmriTiparit
EmriObhjektit.EmriMetods(arg1, ...)
RaiseEvent EmriNgjarjes

Ndarja e vlers, tiparit t caktuar


Paraqitja e vlers s tiparit
Ekzekutimi i metods
Gjenerimi i nj ngjarjeje

331

Avni Rexhepi - Visual Basic

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

Fig. 6.14a Krijimi i modulit t klass

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.

Sipas marrveshjes s prgjithshme, emrat e klasave fillojn me shkronjn C t


madhe.
5. N dritaren e kodit, shkruajm kodin vijues:
Private m_NrIndeksit As String
Private m_Emri As String
Private m_Mbiemri As String
Private m_PShkrim As Single
Private m_PGoje As Single

Prmes ktij kodi deklarohen variablat t cilat do t prdoren pr mbajtjen e t


dhnave. Fjala Private garanton q variablave nuk mund t ju qasemi jasht
objektit. (Skan qasje nga jasht), por vetm prmes procedurave Property, t cilat
lejojn verifikimin dhe ndryshimin e vlerave. N terminologjine programimit t
orientuar n objekte, kto variabla quhen member variables (variablat e
antarve) ose instance variables (variablat e instancave). Gjithashtu, sipas
marrveshjes s prgjithshme, emrat e variablave antare fillojn me prefiksin
332

Avni Rexhepi - Visual Basic

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:

Fig. 6.14b Add Procedure


Public Property Get NrIndeksit() As Variant
End Property
Public Property Let NrIndeksit(ByVal vNewValue As Variant)
End Property

7. Ndryshojm fjalt Variant n String (tipi i t dhnave) dhe vNewValue n


vNrIndeksit (parashtsa v, pr value (vlera)) dhe n vazhdim shkruajm kodin
vijues n dy procedurat e tipareve si n vijim:
Public Property Get NrIndeksit() As String
NrIndeksit = m_NrIndeksit
End Property
Public Property Let NrIndeksit(ByVal vNrIndeksit As String)
m_NrIndeksit = vNrIndeksit
End Property

Procedura e par do t thirret prej programit pr t marr vlern e variabls


m_NrIndeksit kurse procedura e dyt do t thirret pr ndarjen e vlers variabls
m_NrIndeksit.

333

Avni Rexhepi - Visual Basic

Ndihma

N mnyr t ngjashme, krijojm iftet e procedurave t tipareve (Emri, Mbiemri)


t cilat do t prdoren pr nxjerrjen dhe ndarjen e vlerave pr variablat: m_Emri
dhe m_Mbiemri.
Procedurat e tipareve mund t shtypen edhe direkt n dritaren e modulit t klass
pa prdorur menyn Add Procedure. Gjithashtu nuk sht e domosdoshme q
procedurat t jen n ift. Pr shembull, nse dshirojm q vlera e variabls
antare t jet vetm pr lexim (read only) do t prdoret vetm procedura
Property Let. Prdorimi i fjals Public sht opcional. Pr dy procedurat vijuese
shkruajm kodin n dritaren e modulit:
Property Let PShkrim(ByVal vPShkrim As Single)
m_PShkrim = vPShkrim
End Property
Property Let PGoje(ByVal vPGoje As Single)
m_PGoje = vPGoje
End Property

8. Pr llogaritjen e nots, shkruajm funksionin e zakonshm Public, me emrin


NotaProvim:
Public Function NotaProvim() As Integer
Dim Nota As Single
Nota = (m_PShkrim + m_PGoje) / 2
Nota = Round(Nota) 'Rrumbullakso pikt
Select Case Nota
Case 90 To 100
NotaProvim = 10
Case 80 To 89.99
NotaProvim = 9
Case 70 To 79.99
NotaProvim = 8
Case 60 To 69.99
NotaProvim = 7
Case 50 To 59.99
NotaProvim = 6
Case Else
NotaProvim = 5
End Select
End Function

Ky funksion do t prdoret prej programit pr t thirrur metodn e cila krkon prej


nj objekti q t llogaris notn e studentit n provim.

334

Avni Rexhepi - Visual Basic

Ndihma

9. N menyn File, zgjedhim Save CStudent As dhe e ruajm modulin e klass si


fajll me prapashtesn .cls (Student.cls), q sht prapashtesa e zakonshme pr
fajllat n t cilt ruhen modulet e klasave.
10. Kalojm n dritaren e forms pr ta aktivizuar at dhe fillojm me shkruajren e
programit i cili krijon nj objekt (t quajtur Stud), i cili do t jet nj instanc e
klass dhe do t prdor objektin pr t llogaritur notn e studentit n provim.
Variabla e objektit deklarohet n pjesn General Declarations t dritares s kodit
me urdhrin:
Private Stud as CStudent

Pastaj krijohet nj instanc e klass n brendi t procedurs (Form_Load), me


urdhrin:
Set Stud = New CStudent

Objekti Stud do t jet lokal, prbrenda procedurs. Kjo do t thot, se ai do t


pushoj s ekzistuari pasi t mbaroj procedura. Procedurat Property Let prdoren
pr ndarjen e vlerave variablave antare dhe procedurat Property Get prdoren pr
marrjen e atyre vlerave. Funksioni NotaProvim do t bhet metod pr sigurimin e
nots s studentit.
N kod, prmes urdhrave vijues mund t bhet ndarja dhe prdorimi i vlerave:
Stud.Emri = Albin
PicNota.Print Stud.Emri
PicNota.Print Stud.NotaProvim

Ndarja e vlers variabls m_Emri


Paraqitja e emrit t studentit
Paraqitja e nots s studentit

N form (frmStudentet) insertojm kontrollat si n Fig. 6.14c:

Fig. 6.14c Kontrollat n form

lblNrIndeksit, lblEmri, lblMbiemri,


lblPShkrim, lblPGoj, txtNtIndeksit,
txtEmri, txtMbiemri, txtPShkrim,
txtPGoje, cmdInserto, cmdParaqite,
cmdDalja, picNota dhe vargun e
kontrollave lblParaqiti(1)...
lblParaqiti(4).
Pastaj shkruajm kodin prkats, i
cili ndodhet n kuadr t kodit
komplet t forms, t paraqitur n
vijim:
335

Avni Rexhepi - Visual Basic

Ndihma

Pjesa General Declarations


Private Stud As CStudent
Private Sub Form_Load()
Set Stud = New CStudent
End Sub
Private Sub cmdInserto_Click()
'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)
'Pastro Tekst-bokset
txtNrIndeksit.Text = ""
txtEmri.Text = ""
txtMbiemri.Text = ""
txtPShkrim.Text = ""
txtPGoje.Text = ""
picNota.Print "Rekordi i studentit u regjistrua"
End Sub
Private Sub cmdParaqite_Click()
picNota.Cls
'Pastro kontrolln picNota
For i = 1 To 4
'Unaza pr vargun e kontrollave lblParaqiti
lblParaqiti(i).Visible = True 'Paraqitja e tyre
Next i
'Shtypje a variablave n picNota
picNota.Print Stud.NrIndeksit, Stud.Emri, Stud.Mbiemri, Stud.NotaProvim
End Sub
Private Sub cmdDalja_Click()
End
End Sub

Ruajm dhe ekzekutojm programin. N fushat prkatse insertojm t dhnat pr


studentin: NrIndeksit, Emri, Mbiemri, PShkrim, PGoje dhe klikojm tastin
komandues Inserto t dhnat (cmdInserto) pr ti drguar t dhnat n objekt.
Pastaj klikojm tastin komandues Paraqite notn (cmdParaqite) pr t paraqitur
t dhnat pr studentin dhe notn n provim.
(Shembulli: Studentet.vbp)
T dhnat q prdoren n kt shembull nuk ruhen n ndonj fajll t caktuar apo
ndonj baz t t dhnave. Pr ruajtjen e t dhnave pr prdorim t mvonshm,
do t duhej q programi t ket aftsi q t dhnat t ruhen n ndonj fajll
(sekuancial ose me qasje t rastit) ose t kombinohet prdorimi i klasave me bazat
e t dhnave gj q do t ishte mnyra m efikase.

336

Avni Rexhepi - Visual Basic

Ndihma

Do t ishte mir, q t krijohet edhe procedura prkatse prmes s cils do t


verifikohej validiteti i t dhnave t shtypura n form nga shfrytzuesi.
Pr t realizuar kt, n modulin e kodit t klass, mund t krijohet funksioni ose
procedura Property si n vijim:
Public Property Get IsValid() As Boolean
Dim bValid As Boolean
bValid = True
bValid = bValid And m_NrIndeksit <> ""
bValid = bValid And m_Emri <> ""
bValid = bValid And m_Mbiemri <> ""
bValid = bValid And Str(m_PShkrim) <> ""
bValid = bValid And Str(m_PGoje) <> ""
IsValid = bValid
End Property

Kjo procedur verifikon vetm a jan dhn t dhnat e nevojshme, kurse pr t


verifikuar edhe tipin, rangun e vlerave etj, mund t bhet modifikimi i mtejm.
Pastaj, n kodin e forms, insertohet pjesa e kodit, pr t thirrrur procedurn e
validitetit:
If Stud.IsValid = True Then
MsgBox "T dhnat n rregull", , "OK"
Else
MsgBox "T dhnat nuk jan n rregull", , "Gabim"
End If

Shkurtimisht, hapat q prdoren pr krijimin e klass jan:


1. Identifikimi i elementeve n program q do t bhen objekte
2. Prcaktimi i tipareve dhe metodave q do ti ket objekti
3. Klasa do t shrbej si shabllon pr objektin. Shtohet moduli i klass
(menya Project).
4. Cakto emrin e klass. Zakonisht emri fillon me shkronjn C.
5. Pr secilin tipar n hapin 2, deklaro variabln private antare (Private
member variable) me udhrat e forms:
Private m_EmriVariables as tipi

6. Pr seciln variabl nga hapi 5, krijo nj ose dy procedura publike t


tipareve pr marrjen dhe ndarjen e vlerave t variablave. Forma e
prgjithshme e procedurave sht:
Public Property Get EmriProcedures( ) as Tipi
EmriProcedures = m_EmriVariables
(kodi tjetr opcional)
End Property

337

Avni Rexhepi - Visual Basic

Ndihma

Public Property Let EmriProcedures(ByVal vVleraeRe as Tipi)


m_EmriVariables = vVleraeRe
(kodi tjetr opcional)
End Property

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

Avni Rexhepi - Visual Basic

Ndihma

parametra, sht ByRef (By Reference - sipas referencs). Zakonisht, prcjellja


sipas vlers sht m efikase se prcjellja sipas referencs.
- Emri i zakonshm i parametrit n procedurat Property Let sht vNewValue
(vVleraeRe). Edhe pse zakonisht ndryshohet emri, prefiksi v ruhet, pr t ju
prshtatur rregullave t prgjithshme t emrtimit.
- Edhe pse variablat antare mund t paraprihen me fjaln Public dhe t lejojn
qasje direkte n variabla, kjo konsiderohet mnyr jo e prshtatshme. Ndryshimi i
vlerave prmes procedurave Property Let, mundson vnien e kufizimeve dhe
kontrollimin e validitetit t t dhnave.
- N modul t klass, tipari implementohet prmes dy procedurave, nj pr t
caktuar vlern dhe nj pr t marr (lexuar) at. Procedurat t cilat i qasen tipareve
nganjher quhen edhe metoda pr qasje (Accessor methods).
Si rregull pr prkufizimin e termeve n programimin e orientuar n objekte, mund
t prdoren prkufizimiet gramatikore pr elementet e fjalis:
Emri fjala q emrton ndonj person, objekt, vend, etj;
Folja pjesa e cila shpreh veprim, ekzistenc ose ngjarje;
Mbiemri fjala q prdoret pr t modifikuar emrin ose ndonj element tjetr
prbrs t fjalis, duke e specifikuar, kualifikuar, etj.
Kshtu Klasa (Class) do t ishte emri, Metoda (Method) korrespondon me foljet
(veprimet, q i kryejn emrat) kurse Tiparet (Properites) jan mbiemrat t cilt i
prshkruajn emrat.

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

dhe fillimisht nuk prmban objekte. Thuhet se variabla EmriKoleksionit ka tipin


Collection.
Pr t shtuar nj objekt n koleksion prdoret urdhri:
EmriKoleksionit.Add EmriObjektit

i cili shton objektin e emrtuar n koleksion dhe automatikisht ia ndan vlern e


ardhshme numerike. Numrat pr elemente t ndryshme paraqesin rradhn me t
ciln jan shtuar n koleksion.
339

Avni Rexhepi - Visual Basic

Ndihma

Pr t larguar nj objekt prej koleksionit prdoret urdhri:


EmriKoleksionit.Remove n

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

tregon numrin e objekteve n koleksion, kurse vlera:


EmriKoleksionit.Item(n).EmriTiparit

sht vlera e tiparit t emrtuar n objektin e n-t t koleksionit.


Pr t ekzekutuar metodn me emr t caktuar prdoret urdhri:
EmriKoleksionit.Item(n).EmriMetods

i cili ekzekuton metodn e emrtuar t objektit t n-t t koleksionit.


Koleksionet krkojn memorje m shum se vargjet dhe ngadalsojn ekzekutimin.
Nse ka mundsi q rezultati i njjt t arrihet prmes vargut, preferohet prdorimi
i vargut. Kjo zakonisht ndodh kur numri i elementeve sht numr fiks, kshtu q
n kto raste preferohet definimi i vargut n vend t definimit t koleksionit.
Shembull:
Nse dshirojm q rezultatet e provimit, ti paraqesim n formn Kalon/Skalon, e
jo sipas notave, ather mund t definojm klasn e njjt si n shembullin e kaluar
(CStudent) t ciln do ta emrtojm CStudent2, kurse ndryshimi i vetm do t
duhet t bhet n funksionin pr llogaritjen e nots n provim, si n vijim:
Public Function NotaProvim() As String
Dim Nota As Single
Nota = (m_PShkrim + m_PGoje) / 2
Nota = Round(Nota) 'Rrumbullakso pikt
Select Case Nota
Case Is >= 50
NotaProvim = "Kalon"
Case Else
NotaProvim = "S'kalon"
End Select
End Function

Gjat paraqitjes s rezultateve, n vend t nots, do t paraqitej stringu Kalon ose


Skalon. (Shembulli: Studentet2.vbp)
Nse dshirojm t mundsojm q t bhet regjistrimi n t dy format, sipas nots
ose sipas forms Kalon/Skalon, ather do t duhet t definojm t dy klasat n t
njjtin projekt, dhe pastaj n form t insertojm nj kontroll OptionButton
340

Avni Rexhepi - Visual Basic

Ndihma

(OptNota dhe OptKalon) ose CheckBox, n baz t s cils n pjesn e kodit t


procedurs pr insertim t t dhnave (cmdInserto) do t mundsonim regjistrimin
sipas t dy formave (Poliformizm) (N ngjarjen Form_Load( ), duhet zgjedhur
opcionin fillestar, p.sh: OptNota=True):

341

Avni Rexhepi - Visual Basic

Ndihma

Private Sub cmdInserto_Click()


Dim Stud As Object
If OptNota.value then
OptNota - OptionButton
Set Stud = New CStudent
Else
Set Stud = New CStudent2
End If
'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, txtNrIndeksit.Text
'Pastro Tekst-bokset
txtNrIndeksit.Text = ""
txtEmri.Text = ""
txtMbiemri.Text = ""
txtPShkrim.Text = ""
txtPGoje.Text = ""
picNota.Print "Rekordi i studentit u regjistrua"
End Sub

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

Pjesa General - Declarations

'Stud si objekt
'Krijo objekt t ri

Avni Rexhepi - Visual Basic

Ndihma

txtPGoje.Text = ""
picNota.Print "Rekordi i studentit u regjistrua"
End Sub

Pr paraqitjen e rezultateve, kodi i tastit komandues: cmdParaqite duket si n


vijim:
Private Sub cmdParaqite_Click()
picNota.Cls
'Pastro kontrolln picNota
For i = 1 To Koleksioni.Count
picNota.Print Koleksioni.Item(i).NrIndeksit, Koleksioni.Item(i).Emri, _
Koleksioni.Item(i).Mbiemri, Koleksioni.Item(i).NotaProvim
Next i
End Sub

(Shembulli: Studentet-Koleksioni.vbp).

Identifikimi i elementeve t koleksionit


Elementet e koleksionit automatikisht u ndahen numrat prej 1 e tutje. Visual Basicu mundson bashkangjitjen e elsit identifikues (tipari Key) secilit element t
koleksionit, prmes urdhrit t forms:
EmriKoleksionit.Add EmriObjektit, KeyString

Pas ksaj, objektit mund ti referohemi si:


EmriKoleksionit.Item(KeyString)

kurse tiparit t caktuar t objektit mund ti qasemi prmes urdhrit:


EmriKoleksionit.Item(KeyString).Property

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

ashtu q, vlera e dhn n fushn txtNrIndeksit, do t jet ci els i elementit


prkats t koleksionit. N form shtojm nj tast komandues (cmdStudenti) dhe
pr t shkruajm kodin vijues:
Private Sub cmdStudenti_Click()
picNota.Cls
'Pastro kontrolln picNota

343

Avni Rexhepi - Visual Basic

Ndihma

Dim NrIndx As String


NrIndx = InputBox("Jepni numrin e indeksit t studentit.")
picNota.Cls
'Pastro kontrolln picNota
picNota.Print Seksioni.Item(NrIndx).NrIndeksit, Seksioni.Item(NrIndx).Emri, _
Seksioni.Item(NrIndx).Mbiemri, Seksioni.Item(NrIndx).NotaProvim
End Sub

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).

Procedura Initialize Event


N dritaren e kodit t modulit t klass, kontrolla
Object (Drop-Down ComboBox) prmban dy
elemente: General dhe Class. Nse zgjedhet Class, n
dritare t kodit do t paraqitet shablloni vijues:
Private Sub Class_Initializa( )
End Sub

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

Procedura e ngjarjes Terminate thirret automatikisht kur t gjitha referencat n


objekt bhen Nothing ose kur objekti sht jasht rangut, zons s procedurs Kjo
procedur shpesh prdoret pr t shndrruar n Nothing objektet e krijuara
prbrenda modulit t klass.

344

Avni Rexhepi - Visual Basic

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,...)

duhet t vendoset n seksionin Declarations t pjess General, kurse urdhri:


RaiseEvent NgjarjaDefShfryt( arg1, arg2,...)

duhet t vendoset n lokacionet e kodit t modulit t klass n t cilat ngjarja duhet


t inicohet. N kodin e forms, pr shembull nj instanc e klass (p.sh. object1)
duhet t deklarohet prmes urdhrit t forms:
Private WithEvents object1 as CEmriKlases

pr t qen e aft pr t ju prgjigjur ngjarjes. Kjo do t thot, se fjala WithEvents


duhet t insertohet n urdhrin pr deklarim standard. Hederi i nj procedure t
ngjarjes pr object1 do t ishte:
Private Sub object1_NgjarjaDefShryt(parametri1, paramaetri2, ...)

Shtimi i ngjarjes n form


Procedura vijuese hap pas hapi paraqet mnyrn se si mund t krijohen ngjarjet e
zakonshme pr forma. Fillojm nj projekt t ri StandardEXE dhe pastaj:
1. N menyn Project, zgjedhim Add Class Module pr t shtuar modulin e klass
n projekt (Class1). N pjesn Declarations t Class1, shkruhet kodi vijues:
Public Property Get Form1() As Form1
Set Form1 = mForm1
End Property
Public Property Set Form1(ByVal NewForm1 As Form1)
Set mForm1 = NewForm1
End Property

2. N pjesn Declarations t kodit t forms shkruhet kodi vijues:


345

Avni Rexhepi - Visual Basic

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

Fjala WithEvents do t thot se kjo instanc e forms Form1 sht e shoqruar me


ngjarjet (events). Ky hap nuk ishte i mundshm deri sa u krijua ngjarja Gong.
4. N Combo-Box-in n ann e majt (Object) t dritares s kodit t Class1,
zgjedhet mForm1 pr t marr procedurn pr ngjarjen Gong. N procedurn e
ngjarjes shtohet kodi vijues:
Private Sub mForm1_Gong()
MsgBox "Gong!"
End Sub

5. Kthehemi n Form1. N listn Object t saj, zgjedhet Form. N ComboBox-in n


ann e djatht (Procedure) zgjedhet Load. N t shkruhet kodi vijues:
Private Sub Form_Load()
Set mc1 = New Class1
Set mc1.Form1 = Me
End Sub

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

Sa her q ndryshon prmbajtja e TextBox-it, do t inicohet ngjarja Gong e forms.


346

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Ndihma

Relacionet mes klasave


Nrmjet klasave mund t ekzistojn tri relacione: use (prdorim), containment
(prmbajtje) dhe inheritance (trashgimi).
Nj klas e prdor tjetrn nse ajo manipulon me objektet e asaj klase.
Thuhet se klasa A e prmban klasn B kur nj variabl antare (member variable)
e klass A ka si tip t saj klasn B.
Trashgimia sht proces me an t t cilit nj klas (klasa fmij) i trashgon
tiparet, metodat dhe ngjarjet e nj klase tjetr (klasa prind).

348

Avni Rexhepi - Visual Basic

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).

Fig. 6.15a Add Form Log in Dialog

Fig. 6.15b Forma frmLogin

Forma e till mund t krijohet si


form e zakonshme ose mund t
insertohet e gatshme, prmes
menys: Project Add Form dhe
n dritaren Add Form (Fig. 6.15a)
zgjedhim Log in Dialog (Dialogu
pr lajmrim). Pastaj klikojm
tastin Open. (Ose drejtprdrejt,
klikojm dy her ikonn Log in
Dialog). Me kt rast, Visual
Basic-u krijon dhe paraqet n ekran
formn frmLogin (Fig. 6.15b), e
cila prmban edhe kodin e
gatshm pr prdorim.
Sipas dshirs, mund t bjm
edhe ndryshimet e emrave t
kontrollave (Tipari Name).
Forma prmban dy kontrolla t
tipit Label: User Name (Emri i
shfrytzuesit) dhe Password
(Fjalkalimi), dy kontrolla t tipit
TextBox: txtUserName dhe
txtPassword dhe dy taste
komanduese: cmdOk dhe
cmdCancel.

Kalojm n dritaren e kodit dhe bjm ndyshimet si n vijim, pr t prshtatur


kodin n shqip:
Option Explicit
Public LoginSucceeded As Boolean
Private Sub cmdCancel_Click()
'Vendose varabln globale n False
'pr t treguar lajmerimin e dshtuar

349

Avni Rexhepi - Visual Basic

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

N pjesn e kodit pr tastin komandues cmdOK, n urdhrin:


If txtPassword = Fjala

vendosim fjaln sekrete (Fjala), e cila do t shrbej si fjalkalim.


Pastaj, pr t definuar formn fillestare t projektit, n menyn Project zgjedhim
Project Properties dhe n dritaren q hapet (Project Properties) n fushn Startup
Object zgjedhim formn frmLogin.
Ruajm dhe startojm projektin (F5). N ekran s pari do t paraqitet forma pr
lajmrim. N fushn User Name japim emrin sipas dshirs, kurse n fushn
Password, patjetr duhet t shtypim Fjala (fjalkalimin) prndryshe aplikacioni
lajmron gabimin Fjalkalimi i gabuar, provoni prsri dhe krkon prsritjen e
lajmrimit. (Shembulli: Login.vbp).

350

Avni Rexhepi - Visual Basic

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.

Krijimi i Help Text File


Prmes nj tekst procesori shkruajm tekstin dhe e ruajm si fajll RTF. Prdorim
programin Microsoft Word (ose ndonj tjetr). Duhet t keni njohuri lidhur me
formatizimin e tekstit, tekstin e fshehur dhe insertimin e fusnotave.
Pr t krijuar m leht Help Text File-in, i bjm t dukshme opcionet
e formatizimit (n shiritin e veglave standarde t Wordit, klikojm
tastin Show/Hide.
Teksti pr ndihm sht nj tekst i koduar me Hypertext Jumps (Jump phrases
Hipertekst krcimet, ose frazat pr krcime) dhe Context Strings (Stringjet e
kontekstit). Kto jan elementet t cilat mundsojn navigimin npr pikat e
caktuara t ndihms. Rregullat e prgjithshme pr Help Text Files:
- Pikat e veanta duhet ndar me ndrprerje t faqes (Page Break)
- do pik duhet t ket string unik t kontekstit
- do pik mund t ket titull
- Pika mund t ket disa fjal els, t cilat shrbejn pr krkimin e
pikave t caktuara
- Krcimet mund t bhen n dritare t dyt ose n fajll tjetr.
Kur t kompletohet teksti, duhet t ruhet si fajll RTF.

351

Avni Rexhepi - Visual Basic

Ndihma

Shembull:
1. Krijimi i tekstit pr ndihm

Fig. 6.2a Krijimi i fajllit pr ndihm Ndihma.rtf


Pikat e veanta, pas do Page Break (ndrprerje e faqes) jan t ndara n faqe t
veanta n Word, por ktu jan paraqitur s bashku, njra pas tjets, pr lehtsim t
paraqitjes dhe shpjegimit.
Fusnotat kan kuptime t ndryshme varsisht prej simbolit q prdoret pr fusnot:
352

Avni Rexhepi - Visual Basic

Ndihma

# - teksti i fshehur (Hidden)


$ - pikat pr krcim (Jumps)
K Keyword (fjalt els, pr krkim)
Kshtu, pr seciln pjes, fusnotat jan
t vendosura pr titujt prkats. T
gjitha fusnotat, (t cilat poashtu pr
lehtsim jan paraqitur bashkarisht,
edhe pse ndodhen n fund t secils
faqe t veant) duken si n fig. 6.2b.
Duhet t keni kujdes, q t gjitha
shenjat t duken njsoj si n figur.
Pr t insertuar fusnotat, n Word
zgjedhni n meny: Insert-Footnote, dhe
n dritaren q hapet, zgjedhni Custom
Mark (shenj e zakonshme) dhe shtypni
shenjn prkatse.
Fig. 6.2b Fusnotat
N pjesn e par, tekstet: Pika 1 dhe Pika 2, jan t formatizuara (menya: Format
Font, dhe n pozitn Underline Style zgjedhni stilin prkats, nnvizimi i dyfisht Pika 1 dhe nnvizim i njfisht - Pika 2.). Pastaj tekstet pas tyre: Teksti i fshehur1
dhe Teksti i fshehur2, jan t formatizuara me opcionin Hidden (menya: Format
Font, opcioni Hidden).
Ruajm fajllin: Ndihma.rtf.
2. Help Project File
Pr t krijuar fajllin Help Project File (HPJ), prdorim programin ndihms t
Visual Studios Help Workshop, i cili mundson krijimin e fajllave pr ndihm.
(Startohet prmes: Start/Programs/Microsoft Visual Studio 6.0/Microsoft Visual
Studio Tools 6.0/Help Workshop).
Kur startohet programi, n menyn File zgjedhim opcionin New. N dritaren q
paraqitet, zgjedhim Help Project dhe pastaj definojm emrin e projektit me
prapashtesn HPJ (Ndihma.hpj). N ekran do t paraqitet fajlli Ndihma.hpj
N skajin e djatht t dritares (Fig. 6.2c) klikojm tastin Files (Fajllat) dhe prmes
dritares q hapet, zgjedhim fajllin Ndihma.rtf t cilin e krijuam m hert. N ekran
fajlli i zgjedhur (Ndihma.rtf) do t paraqitet nn pozitn Files (si n figur).

353

Avni Rexhepi - Visual Basic

Ndihma

Fig. 6.2c Programi Help Workshop


Nse projekti do t prmbaj edhe figura t veanta (Bitmaps), dritare t tjera
(Windows), etj, ato mund t shtohen n projekt prmes tasteve komanduese
prkatse Windows dhe Bitmaps.
N menyn Tools, programi ka edhe nnmenyn Shed, e cila hap programin
Hotspot Editor, pr definimin e figurave dhe fotove me Hotspots (pika t nxehta),
t cilat mundsojn definimin e zonave t klikueshme t figurave dhe fotografive,
prmes t cilave bhet hapja e pikave t veanta t ndihms.
3. Kompajlimi
Fajlli i krijuar Ndihma.HPJ, duhet t prkthehet (kompajlohet) n formatin e
fajllave t ndihms (*.HLP). Pr t br prkthimin, n skajin e djatht posht t
dritares Help Workshop, klikojm tastin Save and Compile (Ruaje dhe kompajloje)
me t cilin programi i bn veprimet e nevojshme pr prkthimin dhe ruajtjen e
fajllit t ndihms (Ndihma.HLP).

354

Avni Rexhepi - Visual Basic

Ndihma

N ekran do t paraqitet raporti, me t


dhnat pr fajllin (Fig. 6.2d), pikat e
veanta, krcimet, fjalt els, figurat
n fajll, etj.
Nse shikoni n folderin ku sht
ruajtur fajlli, do t shihet ikona e fajllit
Ndihma.hlp, me shenjn e zakonshme t
fajllave pr ndihm (Libri me shenjn e
pikpyetjes) dhe fajllat tjer, si n
vijim:

Fig. 6.2d Raporti lidhur me fajllin e


krijuar pr ndihm

4. Bashkangjitja n projektin e Visual Basic-ut.


Pr t bashkangjitur fajllin e krijuar, me projektin e Visual Basic-ut, n menyn
Project zgjedhim Project Properties dhe pastaj n dritaren q hapet, n fushn
Help File Name shkruajm shtegun deri te fajlli HLP ose m leht duke klikuar
shenjn me tri pika pran saj zgjedhim shtegun dhe fajllin e krijuar Ndihma.hlp.
Ruajm dhe ekzekutojm projektin. Shtypim tastin F1 dhe n ekran do t paraqitet
dritarja e ndihms (Fig. 6.2e). Tekstet q shrbejn si pika pr krcimin n pjest e
catuara t ndihms (Jumps) jan t nnvizuara dhe nse vendoset kursori mbi to,
merr shenn e dors. Kur klikohet pika pr krcim hapet dritarja e veant ose aty
pr aty hapet dritarja e tipit Pop-Up .

355

Avni Rexhepi - Visual Basic

Dritarja kryesore

Ndihma

Dritarja e veant

Dritarja Pop-up

Dritarja pr krkim sipas fjalve els


Fig. 6.2e Ndihma pr projektin (Ndihma.hlp)
(Shembulli: Projekti me ndihm.vbp)
Programi i njjt, mund t prdoret edhe pr krijimin e fajllave t ndihms pr
projektet (bazat e t dhnave) t Microsoft Accessit.

356

Avni Rexhepi - Visual Basic

Ndihma

Krijimi i fajllit ekzekutiv


Aplikacionet e krijuara gjer m tani u ekzekutuan prej Visual Basic-ut, prmes
menys Run, tastit prkats n shiritin e veglave ose shkurtess F5. Pr t krijuar
aplikacion t pavarur prej Visual Basic-ut duhet t krijohet versioni ekzekutiv i
aplikacionit (*.exe). Pasi t finalizohet projekti, t pastrohet prej gabimeve dhe t
ruhet forma finale e tij, mund t krijohet fajlli ekzekutiv. Ndryshimet e mvonshme
n dizajn dhe n kod t aplikacionit, do t krkojn rikrijimin e fajllit ekzekutiv.
Pr t krijuar fajllin ekzekutiv pr
projektin, n menyn File zgjedhim
opcionin Make EmriiProjektit
exe.... N ekran do t paraqitet
dritarja Make Project (Fig. 6.3a) e
ngjashme me dritaren Save, n t
ciln definohet folderi ku do t
ruhet dhe emri i fajllit ekzekutiv.
Fillimisht propozohet emri i
projektit me parapashtesn .exe, por
ka mundsi t caktohet edhe ndonj
emr tjetr.
Fig. 6.3a Dritarja Make Project
Nse klikojm tastin Options, do t
hapet dritarja Project Properties
(Fig. 6.3b), n t ciln mund t
definohen disa informata shtes pr
aplikacionin si: versioni, titulli,
ikona etj. Titulli paraqet emrin pr
aplikacionin dhe nuk sht e
domosdoshme t jet emr i njjt
si emri i projektit. Ikona zgjedhet
prej lists s ikonave t definuara
pr tiparin Icon t formave t
projektit. Aplikacioni do t
paraqitet kudo me ikonn e
zgjedhur.
Fig. 6.3b Dritarja Project Properties
Pasi t definohen opcionet, me OK kthehemi n dritaren e mparshme dhe prsri
klikojm OK, pr t krijuar fajllin ekzekutiv.
Pastaj kalojm n Windows Explorer dhe vrtetojm krijimin e fajllit ekzekutiv.
Nse klikohet dy her ikona e fajllit ekzekutiv do t ekzekutohet programi.
357

Avni Rexhepi - Visual Basic

Objektet dhe klasat

Paketimi dhe shprndarja e projektit


Fajlli ekzekutiv ekzekutohet pa probleme n kompjuterin ku sht i instaluar
Visual Basic-u. Mirpo, nse fajllin e krijuar e kopjojm n ndonj kompjuter
tjetr, pr ta ekzekutuar at sht e nevojshme q edhe n at kompjuter t jet i
instaluar Visual Basic-u. Kjo ndodh pr arsye se fajllit ekzekutiv pr tu
ekzekutuar n mnyr t rregullt i nevojiten edhe disa fajlla plotsues, t njohur si
Dinamic link libraries (*.dll librarit e lidhjeve dinamike). Kto librari sigurojn
kodin e nevojshm q i shoqrohet elementeve dhe kontrollave n forma, pr tu
ekzekutuar n mnyr t rregullt.
Kshtu, pr t mundsuar q edhe shfrytzuesit tjer t ekzekutojn aplikacionin,
duhet tu jipet fajlli ekzekutiv dhe s paku dy librari dinamike (*.dll). Pr t
zgjedhur problemin e shprndarjes s aplikacioneve, Visual Basic-u ka nj vegl t
fuqishme t quajtur: Visual Basic Package & Deployment Wizard (Magjistari pr
paketim dhe shprndarje (Distribuim)). Ky program instalohet s bashku me Visual
Basic-un. Pr ta ekzekutuar, zgjedhni: Start/Programs/Microsoft Visual Studio 6.0/
Microsoft Visual Studio 6.0 Tools/Package & Deployment Wizard. N ekran do t
paraqitet dritarja e programit (Fig. 6.4a).

Fig 6.4a Package & Deployment Wizard

Magjistari pr paketim dhe


shprndarje bn prgatitjen e
aplikacionit pr shprndarje. Ai
ndihmon definimin e fajllave q
duhet t distribuohen, krijon
programin pr instalim (Setup.exe t shkruajtur n Visual Basic) i cili
funksionon sikur t gjitha
programet tjera instaluese, i
kompreson t gjith fajllat e
nevojshm pr t zn sa m pak
vend n disk dhe i shkruan fajllat e
kompresuar n mediumin e
zgjedhur pr shprndarja (Disket,
CD, etj).

Kur t startohet programi, duhet prcjellur disa hapa. Pr nj aplikacion t thjesht,


procedura do t dukej si vijon:
3.
N dritaren e programit (fig. 6.4a) n fushn Select Project (zgjedhe
projektin) shkruajm ose zgjedhim prmes Browse emrin e projektit (*.vbp). Nse
nuk ekziston fajlli ekzekutiv, ai do t krijohet. Pastaj klikohet tasti Package. Nse
358

Avni Rexhepi - Visual Basic

Objektet dhe klasat

paraprakisht sht krijuar paketa pr instalim (Setup Package) pr projektin e


zgjedhur, ather ajo do t thirret.
2. Package Type (Tipi i paketit)
Zgjedhet Standard Setup Package
(Fig. 6.4b), pr program instalues
standard. Klikojm Next, pr t
vazhduar.

Fig. 6.4b Tipi i paketit


3. Package Folder (Folderi i paketit)
Zgjedhet folderi ku do t ruhet
paketi pr distribuim t aplikacionit.
(Fig. 6.4c).
Klikojm Next pr t vazhduar.

Fig. 6.4c Folderi i paketit


4. Included Files (Fajllat e prfshir) Magjistari pr paketim dhe shprndarje do
t listoj fajllat pr t cilt supozon se jan t nevojshm pr funksionim t rregullt
t aplikacionit (Fig. 6.4d). Nse aplikacioni ka nevoj edhe pr ndonj fajll t cilin
magjistari nuk e ka gjetur (si p.sh. ndonj fajll t jashtm t t dhnave), ata duhet
t shtohen n listn pr instalim, duke klikuar tastin Add (Shto). Me Next
vazhdohet n hapin e ardhshm. Me Back ka mundsi t ktheheni prapa, pr t br
ndryshime plotsuese

359

Avni Rexhepi - Visual Basic

Objektet dhe klasat

5. Cab Options (Cab opcionet)


Fajllat pr shprndarje quhen Cab
fajlla (kan prapashtesn *.Cab)
(Fig. 6.4e). Mund t zgjedhet
opcioni Single Cab (nj Cab fajll i
vetm) q do t krijoj nj fajll n
disk t kompjuterit (nse pr
shprndarje do t prdoret CD-ja)
ose Multiple Cab (Cab fajlla t
shumfisht) pr t mundsuar
shprndarjen prmes disketave.
Fig. 6.4d Fajllat e prfshir
Nse zgjedhet opcioni Multiple,
duhet t zgjedhet edhe kapaciteti i
disketave q do t prdoren pr
shprndarje. Me Next, vazhdohet n
hapin e ardhshm.

Fig- 6.4e Cab opcionet


6. Installation Title (Titulli i fajllit
instalues) Zgjedhet titulli pr
aplikacionin (Fig. 6.4f). Me Next,
vazhdohet n hapin e ardhshm.

Fig. 6.4f - Titulli

360

Avni Rexhepi - Visual Basic

Objektet dhe klasat

7. Start Menu Items (Elementet e


menys start) N kt hap
definohet pozita ku do t vendoset
aplikacioni q instalohet n menyn
Start t shfrytzuesit q instalon
programin (Fig. 6.4g). Mund t
zgjedhet opcioni standard (Default).
Me Next, vazhdohet n hapin e
ardhshm.

Fig. 6.4g Elementet e menys Start

Fig 6.4h Lokacioni i instalimit

8. Install Locations (Lokacioni i


instalimit) Magjistari tregon dhe
ofron mundsin e zgjedhjes s
folderit (lokacionit) ku do t
instalohen fajllat (Fig. 6.4h). shte
me rndsi t zgjedhet loakcioni
pr instalimin e fajllave shtes, q
aplikacioni pas instalimit ti gjej
ata n lokacionin e definuar. P.sh.,
kur zgjedhet $App.Path do t thot
se do t instalohen n folderin ku
do t instalohet edhe vet
aplikacioni.

Me Next, vazhdohet n hapin e ardhshm.


9. Shared files (Fajllat e
prbashkt) disa fajlla t
aplikacionit mund t jen t
prbashkt pr aplikacionet tjera
(Fig. 6.4i). Nse aplikacioni
deinstalohet (largohet) ather
fajllat e prbashkt nuk
deinstalohen. Me Next, vazhdohet
n hapin e ardhsm.

Fig. 6.4i Fajllat e prbashkt


361

Avni Rexhepi - Visual Basic

Objektet dhe klasat

10. Finish (Fundi) zgjedhet emri


pr t ruajtur script fajllin pr
kt sesion t magjistarit (fajlli i cili
i ruan t gjitha prgjigjt e dhna)
(Fig. 6.4j). Klikoni Finish pr t
prfunduar dhe pr t vazhduar
tutje.

Fig. 6.4j - Fundi


Magjistari do t krijoj dhe do t
ruaj Cab fajllat dhe do t tregoj
se ku jan ruajtur. Me kt rast
krijohet raporti prkatse, i cili
mund t ruhet (Save Report) (Fig.
6.4k). Klikojm Close (mbylle), me
rast do t kthehemi n dritaren
fillestare t Package & Deployment
Wizard (Fig. 6.4). Klikojm Close
dhe prfundohet e tr procedura.

Fig. 6.4k - Raporti


Vendosja n mediumin pr shprndarje Ky hap nuk sht pjes e magjistarit, por
sht hap q duhet t ndrmerret patjetr. Fajllat Cab (fajllat pr shprndarje) t
cilt i ka krijuar magjistari duhet t kopjohen n mediumin pr shprndarjse
(Disket, CD, etj).
Nse sht zgjedhur opcioni Single
Cab, pr CD, ather n CD
kopjohen: Cab fajlli, fajlli Setup.exe
(programi instalues), dhe fajlli
Setup.lst. (Fig. 6.5).
Fig. 6.5 Fajllat instalues (pamja n
Windows Explorer)
362

Avni Rexhepi - Visual Basic

Objektet dhe klasat

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

Avni Rexhepi - Visual Basic

Prmbajtja

Visual Basic-u dhe Interneti


Visual Basic-u mundson krijimin e leht dhe t shpejt t aplikacioneve
pr qasje n internet, duke prdorur kontrolln WebBrowser,
e cila mund t prdoret duke shtuar n projekt komponentn Microsoft Internet
Controls (menya Project-Components).
Fajlli q lexohet nuk sht kontroll ActiveX por fajll *.dll (SHDOCVW.DLL). Kjo
kontroll mundson qasje n cilindo version t Internet Explorer-it, q sht i
instaluar n kompjuter. Kontrolla ka disa tipare t cilat mund t definohen pr t
siguruar sjellje t caktuar t kontrolls. sht interesante, se nse tipari
RegisterAsDropTarget definohet si True, ather me zvarritjen e cilsdo adrese t
internetit nga ndonj program aktiv, nga Exploreri apo nga siprfaqja punuese
(Desktop-i), n kontrolln WebBrowser, do t kalohet n faqen e zgjedhur. Metodat
e kontrolls WebBrowser mundsojn kryerjen e t gjitha veprimeve q kryhen
prmes Internet Explorer-it.

Fig. 6.16 Kontrolla WebBrowser

Insertojm n form (frmBrowseri)


kontrollat si n fig. 6.16: lblAdresa,
txtAdresa, cmdFaqja, cmdPrapa.
CmdPara, cmdHome, cmdStop,
cmdRefresh, cmdDalja dhe
WebBrowser1. Prmes kontrolls
WebBrowser1 sigurojm qasjen n
internet, kur t kalohet n modin e
ekzekutimit. Prmes kontrollave
tjera do t kryhen veprimet e
zakonshme gjat shfletimit t
faqeve n internet, sikurse me
kontrollat e zakonshme t Internet
Explorer-it.

Kodi pr programin sht si n vijim:


Private Sub Form_Load()
'Kalo n Home Page-in e Internet Explorerit
WebBrowser1.GoHome
End Sub
Private Sub cmdPrapa_Click()
WebBrowser1.GoBack 'Kthehu prapa - Kthehu n faqen paraprake
End Sub
Private Sub cmdPara_Click()
WebBrowser1.GoForward 'Shko para - 'Kalo n faqen e mparshme
End Sub

364

Avni Rexhepi - Visual Basic

Prmbajtja

Private Sub cmdHome_Click()


WebBrowser1.GoHome
'Shko n Home Page-in e IE
End Sub
Private Sub cmdStop_Click()
WebBrowser1.Stop
'Ndal krkimin
End Sub
Private Sub cmdRefresh_Click()
WebBrowser1.Refresh 'Rifresko lidhjen
End Sub
Private Sub cmdFaqja_Click()
WebBrowser1.Navigate (txtAdresa.Text) 'Hape faqen me adresn e dhn
End Sub
Private Sub cmdDalja_Click()
End 'Dalja
End Sub
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
' Kur t kompletohet hapja e faqes, n txtAdresa
' shkruhet adresa e faqes s hapur
txtAdresa.Text = WebBrowser1.LocationURL
End Sub
Private Sub Form_Resize()
'Prshtatja e madhsis s kontrolls me madhsin e forms
If frmBrowseri.WindowState > 1 Then
txtAdresa.Width = frmBrowseri.ScaleWidth - 1000
WebBrowser1.Width = frmBrowseri.ScaleWidth - 300
'Zbresim lartsin e kontrollave
WebBrowser1.Height = frmBrowseri.ScaleHeight - 1000
End If
End Sub
Private Sub txtAdresa_KeyPress(KeyAscii As Integer)
'Kur t shtypet Enter pasi t shkruhet adresa
If KeyAscii = 13 Then
KeyAscii = 0 'Sinjali i zrit kyqet
WebBrowser1.Navigate (txtAdresa.Text)
End If
End Sub

(Shembulli: WebBrowseri1.vbp).

365

Avni Rexhepi - Visual Basic

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.

Fig. 6.16b Moduli dhe DHTML


dizajneri n dritaren ProjectExplorer

N ekran do t paraqitet do t paraqitet


dritarja e zbrazt e projektit dhe n
dritaren Project Explorer (Fig. 6.17b)
do t shihet moduli modDHTML dhe
dizajneri DHTMLPage1, t cilt i krijon
Visual Basic-u automatikisht pr do
projekt me DHTML. Kodi i krijuar
mundson marrjen e tipareve prej Web
Browser-it. Kto tipare caktohen dhe
mirren me procedurat PutProperty dhe
GetProperty. Kjo mundson
zvoglimin e komunikacionit n rrjet.

Dizajneri i faqes DHTML mundson importimin e HTML dhe DHTML n Visual


Basic, pr t mos pasur nevoj t fillohet dizajnimi i faqes prej fillimit. Kur t
fillohet projekti me DHTML, ndryshon edhe shiriti i veglave (ToolBox), n t cilin
paraqitet pjesa e veglave HTML.
Kto kontrolla mund t prdoren vetm prmes dizajnerit t DHTML dhe nuk
mund t prdoren kur kalohet n forma t zakonshme. Secila kontroll i prgjigjet
366

Avni Rexhepi - Visual Basic

Prmbajtja

llojit t caktuar t elementeve HTML t cilat prdoren zakonsht npr faqe.


Kontrollat, sa pr referenc jan:
- Button paraqet nj tast n faqe. Funksionon ngjashm me tastin
komandues, n forma t zakonshme. Tastet n faqet standarde HTML
zakonisht ose i drgojn t dhnat n server ose i fshijn prej forms,
por kjo nuk i prgjigjet asnjrs prej tyre dhe mund t prdoret pr
fardo qllimi. Ngjarjet e saj i pranon DHTML dhe kjo kontroll
sht shum e dobishme.
- SubmitButton tasti i cili i drgon t dhnat prej faqes n adresn
(URL) e dhn n fillim t shenjs <FORM> (Elementet e faqes
HTML). N HTML prkthehet si: <INPUT type = submit>.
- ResetButton tasti i cili fshin t gjitha t dhnat prej forms n t
ciln ndodhet. Nse n DHTML ka ndonj form pr insertimin e t
dhnave, sht mir q t ekzistoj edhe nj ResetButton. N HTML
prkthehet si: <INPUT type = reset>.
- TextField fush standarde pr tekst, n t ciln shrtyzuesi mund t
shkruaj nj rresht. Prkthehet si <INPUT type = text>.
- TextArea fush pr tekste m t gjata se nj rresht, me shiritin
rrshqits t bashkangjitur pr lvizje, ngjashm me kontrolln List t
Visual Basic-ut. Mundson q ndrmjet shenjave: <TEXTAREA> dhe
</TEXTAREA> t shkruhet teksi i paformatizuar.
- PasswordField fusha pr fjalkalim, ka disa mundsi shtes. Tekstin e shkruar e
paraqet me shenjn *, q tregon se karakteri sht shtypur, por jo edhe cili.
Gjithashtu, kur largoheni prej faqes, prmbajtja e fushs fshihet. N HTML
prkthehet si: <INPUT Type = password>.
- Option vendos tastin pr opcion (t quajtur Radio Button) t ngjashme me at
n Visual Basic. T gjitha kontrollat Option me emr t njjt funksionojn si grup.
Pr t krijuar grup tjetr, tiparit Name i jepet vler tjetr. Nuk ka nevoj q
elementet t vendosen n kontejner si n Visual Basic. N HTML prkthehet si:
<INPUT type = radio>.
- CheckBox paraqet fushn pr zgjedhje. N HTML prkthehet si <INPUT type =
checkbox>.
- Select prdoret pr t krijuar list rnse (e ngjashme me ComboBox). Dallon
prej kontrolls List, edhe pse t dy kontrollat krijohen prkthehen n shenj t
njjt n HTML. Zakonisht paraqet <SELECT> t prcjellur me elementet
<OPTION> q jan pikat n list. Nse n shenjn <SELECT>, atributi
<HEIGHT> (lartsia) ka vlern 1 ose nuk paraqitet fare, ather paraqitet lista
rnse (kontrolla Select). N t kundrtn, paraqitet lista me lartsi t dhn.
- Image paraqet fotografit n faqe Zakonisht prkthehet si <IMG>, e cila
funksionon mir, si brenda <FORM>, ashtu edhe jasht saj.
- Hyperlink paraqet hiperlinkun n faqe. Prkthehet si <A HREF>.
367

Avni Rexhepi - Visual Basic

Prmbajtja

- HorizontalRule paraqet nj vij n faqe, q zakonisht shrben pr ndarjen e


pjesve t faqes. Prkthehet si <HR>.
- FileUpload shrben pr drgimin e fajllave n server.
- HiddenField prdoret pr drgimin e t dhnave n server pa pasur nevoj q
shfrytzuesi ti shtyp. Do t duhet q kto t dhna t jen sekrete t lehta dhe t
parndsishme, sepse kushdo q shikon kodin burimor, i sheh. Prkthehet si
<INPUT type = hidden>.
- InputImage krijon nj zon pr insertim t grafiks e cila jep informatat pr
koordinatat e fotografis. Vlera e tiparit SRC, specifikon adresn (URL) e
fotografis q do t paraqitet brenda zons.
- List list standarde, e cila prkthehet n kontroll <SELECT> me atributin
HEIGHT (lartsia) m t madh se 1.
Nse n dritaren Project Explorer klikojm dy her dizajnerin e faqes DHTML
(DHTMLPage1) n ekran paraqitet dritarja e editorit t DHTML, DHTMLPage1
(Fig. 6.17c), n t ciln insertojm kontrollat HTML prej kutis s veglave. Dritarja
sht e ndar n dy pjes. N ann e majt paraqitet lista e elementeve n faqe
(Document) dhe duke zgjedhur elementin n ann e majt, zgjedhet kontrolla
prkatse n ann e djatht.

Fig. 6.17c Dizajnimi i faqes DHTML

368

Avni Rexhepi - Visual Basic

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

Fig. 6.17d Project Properties

Ruajm dhe ekzekutojm projektin.


N ekran do t paraqitet dritarja e
tipareve t projektit (Project
Properties Fig. 6.17d) n t ciln
paraqiten opcionet pr
Debugging dhe caktohet
komponentja startuese e projektit
(Start Component: DHTMLPage1)
e cila do t jet faqja fillestare e
projektit. Mund t zgjedhet edhe
WebBrowser-i prmes t cilit do t
shfletohen Web faqet. Klikojm OK
dhe faqja do t paraqitet n dritaren
e Internet Explorer-it. N fushn e
par tekstuale shtypim emrin dhe
mbiemrin dhe kur t

klikohet tasti komandues,n fushn e dyt tekstuale paraqitet teksit si n figur, i


definuar prmes kodit n modin e dizajnimit.

369

Avni Rexhepi - Visual Basic

Prmbajtja

Fig. 6.17e Faqja n dritaren e Internet Explorer-it


Nse n shiritin e veglave t editorit t DHTML shtypim tastin Properties,
n ekran do t paraqitet dritarja DHTMLPage1 Properties
(Fig. 6.17f) e cila mundson q kodi burimor HTML t cilin e ka krijuar Visual
Basic-u t ruhet si fajll i pavarur .html, i cili mund t editohet prmes HTML
editorve tjer ose editorve t teksteve.
Zgjedhim opcionin Save HTML in
an external file: (Ruaje HTML-n
n nj fajllt ekstern) dhe n fushn
prkatse shktuajm shtegun dhe
emrin me t cilin do t ruhet fajlli.
Klikojm OK dhe Visual Basic-u
do t ruaj kodin burimor HTML si
fajll t jashtm, t pavarur.
(Ka mundsi q t shtypet edhe
tasti New... (I ri...) dhe t definohet
emri dhe shtegu ku do t ruhet fajlli
HTML).
Fig. 6.17f Krijimi i fajllit HTML

Ngjarjet DHTML
370

Avni Rexhepi - Visual Basic

Prmbajtja

Sikur q programet e Visual Basic-ut reagojn n ngjarjet t cilat i inicojn


kontrollat e tyre, edhe faqet DHTML reagojn n ngjarjet e shkaktuara prej
elementeve t tyre. Pr shembull, ndryshimi i ngjyrs kur kursori vendoset mbi
tekstin e caktuar, shtypja e tastit komandues, etj.
Pr t mundsuar shkruarjen e kodit pr reagim n ngjarjet e caktuara, elementi i
faqes DHTML duhet t jet i emrtuar. Pr t emrtuar elementin e caktuar, e
zgjedhim n dritaren e dizajnerit, p.sh. zgjedhim fjaln Prshndetje dhe n
dritaren e tipareve, si vler t tiparit ID definojm emrin e elementit: txtTitulli.
Kalojm n dritaren e kodit dhe n listn e objekteve (ana e majt) zgjedhim
txtTitulli, kurse n listn e procedurave (ana e djatht) zgjedhim onmouseover (kur
treguesi i mausit vendoset mbi element). Ngjashm veprojm edhe pr ngjarjen
onmouseout (kur largohet treguesi i mausit) dhe pr t dy ngjarjet shkruajm kodin
si n vijim:
Private Sub txtTitulli_onmouseover()
txtTitulli.Style.Color = "#FF0000"
End Sub
Private Sub txtTitulli_onmouseout()
txtTitulli.Style.Color = "#0000FF"
End Sub

Ruajm dhe ekzekutojm projektin. Gjat lvizjes s mausit mbi tekstin


Prshndetje, ai ndryshon ngjyrn kur kursori vendoset mbi t dhe largohet prej
tij. Ky funksion sht i prshtatshm edhe pr menyt dhe shiritat e veglave t
faqes.
Ngjashm, shkruajm edhe kodin pr ngjarjet OnClick (n klik t mausit) pr
kontrollat e insertuara n faqe.
Ky ishte nj prshkrim i shkurtr i mundsive t krijimit t faqeve DHTML prmes
Visual Basic-ut. Pr detajet tjera, shikoni Help-in (Ndihmen).

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

Avni Rexhepi - Visual Basic

Prmbajtja

Kur prdoret Internet Explorer-i, kontrollat ActiveX si Textbox-et, tastet


komanduese dhe kontrollat e shfrytzuesit mund t vendosen n Web faqe, duke
shkruar kodin prkats n HTML fajllin e Web faqes, pr krijimin e objektit
prkats. Pr vendosjen e nj elementi, p.sh., nj tasti komandues n faqe, duhet
shkruar kodin i cili i tregon Internet Explorer-it si t vendos kontrolln n faqe, si
n vijim:
<OJECT ID="cmdOK" WIDTH=110 HEIGHT=50
CLASSID="CLSID:D7053240-CE69-11CD-A777-00DD01143C57">
<PARAM NAME = "CAPTION" VALUE="Kliko ktu">
<PARAM NAME = "SIZE" VALUE="3037:1291">
<PARAM NAME = "FontCharSet" VALUE="0">
<PARAM NAME = "FontPitchAndFamily" VALUE="2">
<PARAM NAME = "ParagraphAlign" VALUE="3">
<PARAM NAME = "FontWeight" VALUE="0">
</OBJECT>

Stringu q fillon me CLSID paraqet numrin identifikues t kontrolls n Regjistrin


e Windowsit (Windows Registry). Tag-at PARAM shrbejn pr definimin e
tipareve t kontrolls. Pr shembull PARAM i par definon etiketn Kliko ktu
(tipari Caption) pr kontrolln.
Meq krijimi i objekteve n kt mnyr sht shum i komplikuar, Microsoft-i ka
zhvilluar pajisjen (programin) e quajtur ActiveX Control Pad q mundson
vendosjen e leht t kontrollave n Web faqe, sikurse vendosja e kontrollave t
zakonshme n forma t Visual Basic-ut. Programi mund t mirret (Download-ohet)
prej faqes s Microsoftit ose mund ta instaloni prmes fajllit instaluas q ndodhet
n CD-n e shembujve, t bashkangjitur me librin.
Procedura e instalimit sht e thjesht dhe pas instalimit, programi startohet n
mnyr t zakonshme, prmes menys Start ose prmes shkurtess n desktop.
ActiveX Control Pad n fakt sht nj tekst procesor q prngjan mjaft dhe
funksion ngjashm me programin Notepad.
Procedura e vendosjes s kontrollave n faqe sht si n vijim. Startojm
programin Microsoft ActiveX Control Pad dhe n ekran paraqitet dritarja e
programit (Fig. 6.18a). Kodi HTML q shihet n figur paraqitet pr do faqe t re.
Pasi t bjm ndryshimet e nevojshme n tekst (p.sh., n vend t New Page
shkruajm tekstin shqip: Web faqja me VBScript) dhe t shtojm ndonj element n
kodin HTML, fillojm vendosjen e kontrollave ActiveX.
N menyn Edit zgjedhim Insert ActiveX Control dhe n ekran paraqitet dritarja
pr dialog (Fig. 6.18b) e cila prmban listn e kontrollave n dispozicion (me
rradhitje alfabetike).

372

Avni Rexhepi - Visual Basic

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

Fig. 6.18b Insertimi i kontrollave

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).

Fig. 6.18c Definimi i tipareve t kontrolls

373

Avni Rexhepi - Visual Basic

Fig. 6.18d Kodi pr objektin e insertuar

Prmbajtja

Ngjashm veprojm edhe pr


insertimin e kontrollav tjera t
nevojshme. Do t insertojm edhe
nj kontroll t tipit
CommandButton. (ID - cmdOK,
Caption - Kliko ktu).
Sipas dshirs n dritaren e editorit
mund t bjm ndryshime t
parametrave t kontrolls (objektit).
Pr shembull prmes ndryshimit t
vlerave pr Width dhe Height
prcaktojm madhsin (gjersin
dhe lartsin) e dshiruar t
kontrolls.

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.

Fig. 6.18e Faqja n dritaren e Internet


Explorerit

N kt mnyr kemi krijuar faqen


me elementet e nevojshme, mirpo
n kt faze, edhe nse plotsojm
fushn pr tekst me ndonj emr,
kur t klikojm tastin komandues
nuk ndodh asgj, sepse pr
aktivizimin e elementit duhet t
shkruhet kodi n VBScript.
Kthehemi n dritaren e Microsoft
ActiveX Control Pad-it dhe n
kodin HTML t faqes s krijuar
shtojm kodin vijues t VBScrip-it.

Prfundi pjess s elementeve Objects shkruajm kodin vijues:


<SCRIPT LANGUAGE="VBSCRIPT">
Sub cmdOK_Click()
Dim Emri
Emri = txtEmri.Text
MsgBox "Pershendetje: " & Emri , ,"Tung"
End Sub
</SCRIPT>

374

Avni Rexhepi - Visual Basic

Prmbajtja

Urdhri MsgBox funksionon njsoj si n Visual Basic.


Insertojm edhe nj kontroll t tipit CommandButton (ID-cmdPastro, Caption
Pastro fushn) prmes s cils do t pastrojm tekstin e shtypur n fushn pr tekst
dhe pr t shkruajm kodin vijues t VBScript-it:
<SCRIPT LANGUAGE="VBSCRIPT">
Sub cmdPastro_Click()
txtEmri.Text =
End Sub
</SCRIPT>

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

Avni Rexhepi - Visual Basic

Prmbajtja

VISUAL BASIC-U PR APLIKACIONE


Visual Basic for Applications (VBA Visual Basic-u pr aplikacione) sht
versioni i Visual Basic-ut i prshtatur pr prdorim n aplikacionet e Microsoft
Office-it (Word, Excel, Access, PowerPoint), pr t manipuluar me objektet e tyre
dhe pr t automatizuar veprimet e ndryshme n to.
Secili aplikacion ka objektet dhe koleksionet e tyre, specifike pr aplikacionin,
prandaj duke u shrbyer me ndihmn (Help-in) q e ofrojn programet, mund t
msohet sintaksa pr objektet prkatse, t cilat pastaj do t prdoren n kodin e
krijuar prmes Visual Basic-ut.

Fig. 7.1a Ndihma n Word

Fig. 7.1b Ndihma n Excel


376

Secili program, n faqen Contents


(prmbajtja) t ndihms, prmban
edhe kapitullin Programming
Information, n t cilin ndodhet
edhe kapitulli Microsoft
Word/Excel/PowerPoint Visual
Basic Reference (Fig. 17.1).
Access-i e prmban si kapitull t
veant.
Kur t zgjedhet kapitulli prkats,
hapet edhe titulli Microsoft
Word/Excel/PowerPoint Objects,
prmes s cils mund t shihen
objektet e aplikacionit prkats, sa i
prket sintakss s Visual Basic-ut
pr aplikacioni, t cilat mund t
manipulohen prmes kodit t
Visual Basic-ut (Fig. 7.2).

Avni Rexhepi - Visual Basic

Prmbajtja

Fig. 7.2 Objektet e Excel-it


Faktikisht n prapavi t t gjitha aplikacioneve t Office-it, qndron Visual Basic-u.
Word-i, Excel-i dhe PowerPoint-i n mnyr t ngjashme e prdorin Visual Basicun. Pr automatizimin e veprimeve t ndryshme kryesisht prdorin Macro-t.

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).

Fig. 7.3 Incizimi i makros

N ekran paraqitet dritarja Record


Macro (Incizo makron) me emrin
Macro1 n fushn Macro Name
(emri i makros), gjegjsisht
MacroN (N-numri i makros), nse
ka ndonj makro tjetr t incizuar
m hert. (Fig. 7.4a, b, c).

377

Avni Rexhepi - Visual Basic

Fig. 7.4a Incizimi i makros n Word

Prmbajtja

N Word, emrtohet makroja (sipas


dshirs) ose pranohet propozimi
MacroN dhe pastaj mund t
zgjedhet opcioni pr ndarjen e
makros ndonj tasti n shiritin e
veglave (Toolbar) ose ndonj tasti
n tastier (Keyboard). N fushn
Store macro in: (Ruaje makron n:)
zgjedhet opcioni pr vendin e
ruajtjes, i cili ka ndikim n
mundsin e ekzukutimit t
mvonshm t makros. N fushn
Description (prshkrimi), mund t
definohet prshkrimi detal i
makros.
Edhe n Excel, ngjashm zgjedhet
emri i makros (Macro name),
shkurtesa pr ekzekutim prmes
tastiers (Shortcut key:) duke
zgjedhur nj shkronj pr
kombinim me Ctrl dhe vendi i
ruajtes s makros. Gjithashtu
apovohet ose plotsohet prshkrimi
(Descripition).

Fig. 7.4a Incizimi i makros n Excel

Fig. 7.4a Incizimi i makros n PowerPoint

378

Ngjashm sht edhe n


PowerPoint.
Pastaj emrtimit, klikohet OK dhe
n ekran paraqitet shenja pr t
treguar se veprimet vijuese do t
incizohen (edhe nse bni ndonj
gabim dhe e prmirsoni, edhe ai
veprim incizohet). Kur t kryhen
veprimet t cilat keni dashur ti
incizoni si makro, shtypet tasti Stop
Recording (ndale incizimin).

Avni Rexhepi - Visual Basic

Prmbajtja

P.sh., n Word dshirojm t prdorim shpeshher formatizimin e fontit si n vijim:


menya Format-Font; opcionet: Arial-Bold-12, ngjyra: e kuqe. Ather fillojm
incizimin e makros sipas procedurs s prshkruar dhe kur t fillon incizimi, me
radh kryejm veprimet: hapet menua Format, zgjedhet Font dhe n dritaren Font,
zgjedhet fonti Arial, stili Bold, madhsia 12, ngjyra e kuqe dhe shtypet OK, dhe
pastaj shtypet tasti Stop Recording. N vazhdim sa her t dshirojm t aplikojm
formatin e incizuar, nuk ka nevoj t prsriten hapat e njjt, por ekzekutohet
makroja e cila i kryen ato. Nse makros i sht ndar shkurtesa n tastier ose n
shiritin e veglave, ajo mund t ekzekutohet prmes shkurtess prkatse.
Pr t par makrot, hapim meny Tools-Macro-Macros (Alt+F8) dhe n ekran do
t paraqite dritarja Macros (Fig. 7.5) (q duket njsoj n Word, Excel,
PowerPoint).

Fig. 7.5 Dritarja Macros

N ann e djatht ndodhen tastet:


Run (ekzekuto), me t ciln mund t
ekzekutojm makron, Cancel
(anulo), Step Into (kalo n), Edit
(edito) e cila hap dritaren e kodit t
Visual Basic-ut pr editim e
mtejm t makros, Create (krijo),
pr krijimin e makros s re, Delete
(fshije) pr t fshir makron dhe
Organizer (organizatori), i cili
mundson organizimin e makrove
n program.

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

Avni Rexhepi - Visual Basic

Prmbajtja

Fig. 7.6 Dritarja e kodit pr makron e krijuar n Word


Ngjashm, edhe n Excel do t mund t krijohet makroja e cila p.sh., bn
mbshtjelljen e teksteve t gjata n qelula t Excel-it (Wrap text), t ciln do ta
incizojm si makro n Excel. Edhe pr t do t krijohet procedura prkatse (Fig.
7.6b). (Hapat pr krijimin e makros: Tools-Macro-Record New Macro; zgjedhim
emrin, klikojm OK dhe fillon incizimi. Pastaj zgjedhim n meny: Format-CellsAlignment dhe aktivizojm opcionin Wrap text (mbshtjelle tekstin). N fund
klikojm tastin Stop Recording. N t ardhmen, sa her t paraqitet nevoja pr
aplikimin e formatit t till, mund t ekzekutohet makroja e krijuar.
Nse e hapim dritaren e Visual Basic-ut (Tools-Macro-Visual Basic Editor) ose
prmes Tools-Macro-Macros-Edit, do t shihet procedura e krijuar pr makron e
incizuar (Fig. 7.6b).

380

Avni Rexhepi - Visual Basic

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.

Insertimi i formave dhe kontrollave


Edhe n aplikacionet e Microsoft Office-it, mund t insertojm forma dhe kontrolla
tjera t cilat prdoren n Visual Basic.
Pr t br kt, hapim menyn: ViewToolbars-Visual Basic dhe n ekran do
t paraqitet shiriti i veglave Visual
Fig. 7.7a Shiriti i veglave Visual Basic Basic (Fig. 7.7a).
Nse klikohet tasti Control Toolbox, n ekran do t paraqitet edhe kutia e
veglave pr kontrolla (Control Toolbox) (Fig. 7.b) n t ciln ndodhen
kontrollat t cilat mund t insertohen n aplikacioniet e Microsoft Office-it.
381

Avni Rexhepi - Visual Basic

Fig. 7.7b Control Toolbox

Prmbajtja

Kontrollat mund t insertohen drejtprdrejt n


fajllat e hapur t Word-it, Excel-it, etj ose n
dritaren e editorit t Visual Basic-ut s pari
insertohet ndonj form (menya: Insert-UserForm)
e pastaj n at form insertohen kontrollat,
ngjashm sikur n Visual Basic.

Kur t insertohet ndonj kontroll, p.sh., n faqe t tekstit n Word, ather


kontrolla zgjedhet (me shenjat e zgjedhjes sikur tasti komandues n fig. 7.8) dhe
programi (n kt rast Word-i) kalon n modin e dizajnimit.
Ikona e cila paraqet modin e dizajnimit duket e zgjedhur (aktive), n shiritin
e veglave Visual Basic, n shiritin e veglave Control Toolbox dhe n
shiritin e ri, i cili hapet kur programi kalon n modin e dizajnimit.

Fig. 7.8 Modi i dizajnimit

Gjat kohs s dizajnimit kontrollat


tjera n shiritin e veglave jan
joaktive. Nse kontrolla klikohet
me tastin e djatht dhe n menyn e
hapur zgjedhet Properties n ekran
do t paraqitet dritarja e tipareve
(Properties Fig. 7.9a) e cila duket
si dritarja e tipareve n Visual
Basic.

N dritaren Properties, bhet definimi i tipareve t kontrolls s insertuar, n


mnyr t njjt si bhet n Visual Basic-un standard. Tiparet e kontrollave jan t
njjta. Zakonisht, definohen tiparet Name (emri), Caption (etiketa), Width
(gjersia), Height (lartsia), BackColor (ngjyra e parapvis), ForeColor (ngjyra e
frontit), etj. Nse n menyn e kontekstit q hapet me tastin e djatht t mausit,
zgjedhim View Code (shiko kodin) n ekran do t paraqitet dritarja e editorit t
Visual Basic-ut dhe n t do t hapet dritarja e kodit. Varsisht prej kontrolls, do
t prgatitet struktura e procedurs Sub, pr kontrolln dhe ngjarjen prkatse, n t
ciln shkruajm kodin pr veprimet t cilat do t kryhen pr ngjarjen prkatse.
Mund t krijohen edhe procedura dhe funksione t zakonshme, t cilat pastaj
thirren prmes procedurave t ngjarjeve pr kontrollat prkatse.

382

Avni Rexhepi - Visual Basic

Fig. 7.9a Dritarja e tipareve


Properties

Prmbajtja

Fig. 7.9b Dritarja e kodit

P.sh., emrtojm tastin komandues cmdTeksti dhe pr t shkruajm procedurn e


ngjarjes Click( ), si n vijim:
Private Sub cmdTeksti_Click()
MsgBox "Tung"
Set Rangu = ActiveDocument.Paragraphs(1).Range
With Rangu.Font
.Bold = True
.Name = "Arial"
.Size = 24
.Color = vbRed
End With
End Sub

Paragrafi i par

Prmes ksaj procedure, sa her t klikohet tasti komandues cmdTeksti, n tekstin


e shkruar n faqen e Word-it, do t bhet formatizimi i tekstit t paragrafit t par,
me fontin, madhsin dhe ngjyrn e definuar. ActiveDocument paraqet dokumentin
aktiv (aktual), Paragraphs (paragrafin) kurse Range (paraqet pjesn e zgjedhur t
tekstit). (Shembulli: Dokumenti i Word-it me makro.doc).
Ngjashm mund t krijojm nj procedur pr shtypjen e tekstit, si n vijim:
Private Sub Shtypja()
If Documents.Count >= 1 Then
Numri i dokumenteve t hapura
MsgBox ActiveDocument.Name
Emri i dokumentit aktiv
Else
MsgBox "S'ka ndonj dokument t hapur"
End If
Set Rangu = ActiveDocument.Range(Start:=0, End:=0)
With Rangu
.InsertBefore "Raporti ditor"

Tr teksti

383

Avni Rexhepi - Visual Basic


.Font.Name = "Arial"
.Font.Size = 24
.InsertParagraphAfter
End With
ActiveDocument.PrintOut

Prmbajtja

Shtypja

End Sub

Pr ekzekutimin e saj, mund t insertojm ndonj tast komandues ose mund ta


thirrim p.sh., prej procedurs AutoClose (ashtu q kur t mbyllet dokumenti, s pari
t shtypet), etj.
Duhet pasur kujdes q t aktivizohen (mundsohen) makrot n Word, q t mund t
ekzekutohen kur t hapen dokumentet q prmbajn makro, sepse prndryshe ato
nuk do t funksionojn, kur dokumenti t hapet hern e ardhshme. Pr tu mbrojtur,
Wordi prdor disa nivele t siguris pr mbrojtje prej makrove t paautorizuara.
Dritrja me opcionet pr nivelin e
siguris (Fig. 7.9) hapet duke
klikuar tastin Security (Siguria) n
shiritin e veglave Visual Basic (Fig.
7.7a) ose duke zgjedhur n meny:
Tools-Macro Security. Nse
aplikohet niveli m i lart e
siguris, nuk mund t ekzekutohen
makrot e pannshkruara. Nse
aplikohet niveli mesatar (Medium),
sa her t hapet ndonj dokument
q prmban makro, s pari
paraqitet dritarja me informatn se
dokumenti prmban makro dhe me
pyetjen se a dshironi t mundsoni
makrot (Enable macros) apo jo
(Disable macros). Nse zgjedhni
opcionin Enable macros, ather do
Fig. 7.9 Dritarja Security
t funksionojn makrot dhe
procedurat e ngjarjeve.
(N Excel pyetja e till paraqitet pr do dokument q prmban makro ose
kontrolla dhe procedura t Visual Basic-ut.)
N mnyr t njjt mund t insertojm kontrolla n dokumente t Excel-it, prmes
t cilave do t kryhen veprime t ndryshme llogaritse ose formatizuese.
P.sh., n nj faqe (Sheet1) t fajllit t Excel-it, insertojm tri taste komanduese:
cmdShuma, cmdPastro dhe cmdPloteso.

384

Avni Rexhepi - Visual Basic

Prmbajtja

Fig. 7.10 Tastet komanduese n Excel


Pr kontrollat prkatse shkruajm kodin si n vijim:
Private Sub AutoOpen()
'Ekzekutohet me rastin e hapjes
Randomize
'Gjeneratori i vlerave t rastit
For Rreshti = 1 To 10
For Kolona = 1 To 2
With orksheets("Sheet1").Cells(Rreshti, Kolona)
.Value = Int((10 * Rnd) + 1) 'Ndarja e vlerave t rastit
End With
Next Kolona
Next Rreshti
End Sub
Private Sub cmdPloteso_Click()
Call AutoOpen
'Thirre proceduren AutoOpen
Sheet1.Range("A1:B10").Select 'Selekto rangun (zonn)
With Selection
With .Borders
.LineStyle = xlContinuous
.Weight = xlThin

385

Avni Rexhepi - Visual Basic

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

Nse dshirojm t shtypim fajllin, mund t prdoren urdhrat si n vijim:


'ActiveSheet.PageSetup.Orientation = xlLandscape

386

'Formati i faqes

Avni Rexhepi - Visual Basic


'ActiveSheet.PrintOut

Prmbajtja
'Shtypja

Pr t ruajtur fajllin, mund t insertojm edhe rreshtat vijues:


Ruajtja si fajll i ri, me emr te ri
Set NewBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
Loop Until fName <> False
NewBook.SaveAs Filename:=fName

Ruajm dhe ekzekutojm shembullin n Excel (Shembulli me kontrolla n


Excel.xls). Sa her q t hapet fajlli, Excel-i s pari paraqet vrejtjen dhe pyetjen
pr aktivizimin e makrove.
N kt mnyr, duke prdorur Visual Basic-un, mund t automatizohen shum
veprime dhe llogaritje n Excel.
Edhe n PowerPoint, procedura e krijimit dhe prdorimit t makrove, kontrollave
dhe procedurave sht e ngjashme.

Visual Basic-u dhe Accessi


Sa i prket aplikacioneve t Microsoft Office-it, Visual Basic-u m s shumti
prdoret n Microsoft Access.
N dritaren e bazs s t dhnave, Access-i ka faqen Forms, n t ciln ruan format
e krijuara, si objekte t veanta. N modin e dizajnimit, nga kutia e veglave
(Toolbox), n forma, (ngjashm edhe n raporte ose web-faqe), insertohen dhe
prdoren kontrollat e njjta me kontrollat e Visual Basic-ut dhe pr seciln prej tyre
mund t definohen procedurat e ngjarjeve. Pr do form, raport dhe kontroll
mund t hapet dritarja e tipareve (Properties), e cila ka faqen (Tab-in) e veant
Events (ngjarjet), ku paraqitet lista e ngjarjeve t mundshme (Fig. 7.11). Pastaj pr
ngjarjen e caktuar klikojm tastin n skajin e djatht dhe hapim dritaren Choose
Builder e cila pyet pr mnyrn e krijimit t procedurs s ngjarjes. Zgjedhim Code
Builder dhe klikojm OK, me 'rast hapet dritarja e editorit t Visual Basicut dhe
prgatitet struktura e procedurs me emrin e kontrolls ose forms dhe metodn pr
ngjarjen e zgjedhur dhe me urdhrin pr prfundim t procedurs prkatse, End
Sub.

387

Avni Rexhepi - Visual Basic

Prmbajtja

Pastaj, n pjesn e deklarimeve dhe


procedurave, ndrmjet dy rreshtave
t paraqitur, plotsojm kodin e
Visual Basic-ut. Njsoj mund t
veprojm edhe me raportet dhe
faqet (web faqet) n Access.Kodi i
shkruar pr ngjarjen n kt
mnyr, ruhet brenda vet objektit
n t cilin sht krijuar (n form,
n raport, etj).
Fig. 7.11 Dritarja Properties, faqja Events
N Access, ka mundsi q t krijohen module t veanta, t koduara trsisht n
Visual Basic dhe t cilat ruhen si objekte t veanta, n faqen Modules t bazs s
t dhnave. Procedurat (Sub) dhe funksionet (Function) t cilat ruhen n module,
mund t thirren pr ekzekutim prej ngjarjeve (Events) t formave, raporteve ose
kontrollave n to.
N dritaren e kodit t editorit Visual Basic-ut, mund t shtypet urdhri DoCmd.
(Ekezkuto komandn dhe pika) dhe n ekran do t paraqitet lista e tipareve dhe
metodave (komandave) t cilat jan n dispozicion pr objektin ose kontrolln pr
t ciln sht duke u shkruar kodi. Parimisht, t gjitha komandat t cilat n Access
ekzekutohen prej menyve, makrove ose kontrollave mund t thirren pr ekzekutim
n kt mnyr.
Gjat shkruarjes s kodit, paraqitet edhe ndihma e cila tregon argumentet dhe
opcionet prkatse pr komandn:

N kt mnyr, lehtsohet shkruarja e kodit.


P.sh., nse n bazn e t dhnave kemi nj form me emrin Forma Studentt dhe
n t paraqiten t dhnat pr studentt, ku ndr t tjera kemi edhe fushn Numri i
indeksit, ather nse dshirojm q kur t hapet forma, s pari t filtrohet (duke
paraqitur pyetjen pr numrin e indeksit, prmes InputBox-it) ashtu q t paraqitet
vetm studenti me numrin e dhn t indeksit, pr ngjarjen On Open, shkruajm
kodin vijues:
Private Sub Form_Open(Cancel As Integer)
Dim NrIndx As String, Filtri As String
NrIndx = InputBox("Jepe numrin e indeksit", "Numri i indeksit")
If NrIndx = "" Then ' Shfrytzuesi ka shtypur Cancel

388

Avni Rexhepi - Visual Basic

Prmbajtja

MsgBox "Jepni numrin e indeksit"


DoCmd.Close
End If
Filtri = "[Numri i Indeksit]=""" & NrIndx & """ "
DoCmd.OpenForm "Forma Studentet", acNormal, , Filtri
End Sub

Kur t hapet forma, s pari paraqitet InputBox-i me pyetjen pr numrin e indeksit.


Kur t jipet numri i indeksit dhe t shtypet OK, n form do t paraqiten vetm t
dhnat pr studentin me at numr indeksi.
Shikoni shembullin Shembulli me kod t VB.mdb, n t cilin ndodhen disa
procedura t ngjarjeve dhe module.

389

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic


67
68
70
71
74
75
76
91
92
93
94
97

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

Too many files tepr fajlla


Device unavailable pajisja nuk sht n dispozicion
Permission denied qasja e ndaluar
Disk not ready disku nuk sht i gatshm
Can't rename ith different drive nuk mund t riemrtohet me njsi tjetr
Path/File access error gabim qasjeje n shteg/fajll
Path not found shtegu nuk u gjet
Object variable or With block variable not set nuk sht caktuar variabla e
objektit ose e bllokut With
For loop not initialized unaza For nuk sht inicializuar
Invalid pattern string mostr e gabuar
Invalid use of Null prdorim i gabuar i Null
Can't call Friend procedure on an object that is not an instance of the defining
class nuk mund t thrras procedurn Friend (shoqe) ose nj objekt q nuk
sht instanc e klass definuese
A property or method call cannot include a reference to a private object, either as
an argument or as a return value thirrja e metods ose tiparit nuk mund t
prmbaj referenc n objekt privat, as si nj argument ose si vler kthyese
System DLL could not be loaded DLL i sistemit nuk mundi t startohet
Can't use character device names in specified file names nuk mund t prdor
emra me karaktere t pajisjeve n emrat e specifikuar t fajllave
Invalid file format format i gabuar i fajllit
Cant create necessary temporary file nuk mund t krijoj fajllin e prkohshm
t nevojshm
Invalid format in resource file format i gabuar n fajllin burimor
Data value named not found vlera e t dhns nuk u gjet
Illegal parameter; can't rite arrays parametr ilegal, smund t shkruaj vargjet
Could not access system registry smund ti qaset regjistrit t sistemit
Component not correctly registered - komponente e regjistruar n mnyr
jokorrekte
Component not found kompnenta nuk u gjet
Component did not run correctly komponenta nuk sht ekzekutuar korrekt
Object already loaded objekti veq sht startuar
Can't load or unload this object smund t startoj ose mbyll kt objekt
Control specified not found kontrolla e specifikuar nuk u gjet
Object was unloaded objekti sht larguar (mbyllur)
Unable to unload ithin this context nuk mund t thirret n kt kontekst
The specified file is out of date. This program requires a later version fajlli i
specifikuar sht i vjetr. Ky program krkon version m t ri.
The specified object can't be used as an owner form for Show objekti i
specifikuar smund t prdoret si form pronare pr Show (paraqite)
Invalid property value vler e gabuar e tiparit
Invalid property-array index vler e gabuar e indeksit t tiparit-vargut
Property Set can't be executed at run time Property Set smund t ekzekutohet
n kohn e ekzekutimit
Property Set can't be used with a read-only property Property Set smund t
prdoret me tipare vetm pr lexim
Need property-array index krkohet indeksi i tiparit-vargut
Property Set not permitted nuk lejohet Property Set

391

Avni Rexhepi - Visual Basic


393
394
400
402
419
422
423
424
425
429
430
432
438
440
442

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

Avni Rexhepi - Visual Basic


462
463
480
481
482
483
484

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

Avni Rexhepi - Visual Basic

Prmbajtja

Shtojca B
Konstantet pr kontrollat CommonDialog
File Open/Save Dialog Box Flags
Konstanta - Constant

Vlera - Value

Prshkrimi - Description

CdlOFNAllowMultiselect

&H200

Specifikon se lista (list-box-i) File Name


lejon zgjedhje t shumfisht.
Shfrytzuesi mund t zgjedh m shum se
nj fajll, duke mbajtur shtypur tastin Shift.

cdlOFNCreatePrompt

&H2000

Specifikon se Dialog-box-i krkon prej


shfrytzuesit q t krijoj fajllin i cili nuk
ekziston momentalisht. Ky flag
automatikisht vendos flagat
cdlOFNPathMustExist dhe
cdlOFNFileMustExist .

cdlOFNExplorer

&H80000

Prdor dialog-box-in e ngjashm me


Explorer-in.

CdlOFNExtensionDifferent

&H400

Tregon se ekstenzioni i emrit t kthyer t


fajllit sht i ndryshm prej ekstenzionit t
definuar me tiparin DefaultExt.

CdlOFNFileMustExist

&H1000

Specifikon se shfrytzuesi mund t jap vetm


emrat e fajllave ekzistues. Nse jepet emr i
gabuar lajmrohet vrejtja. Ky flag,
automatikisht definon flagun
CdlOFNPathMustExist.

CdlOFNHelpButton

&H10

Bn q dialog-box-i t paraqes tastin Help


(Ndihma)

cdlOFNHideReadOnly

&H4

Fsheh fushn pr zgjedhje (Check-Box-in)


Read Only (Vetm pr lexim)

CdlOFNLongNames

&H200000

Prdori emrat e gjat.

CdlOFNNoChangeDir

&H8

Detyron dialog-box-in, q t vendos


folderin aktual n folderin q ishte kur u hap
dialog-box-i.

CdlOFNNoDereferenceLinks

&H100000

Mos i dereferenco lidhjet e shell-it.

cdlOFNNoLongNames

&H40000

Mos i prdor emrat e gjat.

394

Avni Rexhepi - Visual Basic

Prmbajtja

CdlOFNNoReadOnlyReturn

&H8000

Specifikon se fajlli i kthyer nuk do t ket t


caktuar atributin vetm pr lexim (Read
Only) dhe nuk do t jet n folder t
mbrojtur pr shkruarje.

cdlOFNNoValidate

&H100

Specifikon se dialog lejon karakteret


invalide n emrin e kthyer t fajllit.

cdlOFNOverritePrompt

&H2

Bn q dialogu Save As t gjeneroj


MsgBox nse fajlli i zgjedhur veq ekziston.
Shfrytzuesi duhet t vrtetoj a t bhet
mbishkrimi i fajllit.

cdlOFNPathMustExist

&H800

Specifikon se shfrytzuesi mund t jap vetm


shteg valid. Nse flag-u sht i vendosur
dhe shfrytzuesi jep shteg t gabuar,
paraqitet mesazhi me vrejtje.

CdlOFNReadOnly

&H1

Bn q Check-Box-i Read Only t jet


fillimisht i zgjedhur, kur t krijohet dialg-boxi. Ky flag gjithashtu tregon gjendjn e
Check-Box-it Read Only kur t mbyllet
dialog-box-i.

CdlOFNShareAware

&H4000

Specifikon q gabimet e prdorimit t


prbashkt, t injorohen (sharing violation
errors).

Konstanta - Constant

Vlera - Value

Prshkrimi - Description

CdlCCFullOpen

&H2

Paraqitet tr dialogu, duke prfshir edhe


seksionin Define Custom Colors.

CdlCCShowHelp

&H8

Bn q dialogu t paraqes tastin Help.

CdlCCPreventFullOpen

&H4

Deaktivizon tastin Define Custom Colors


dhe pengon shfrytzuesin q t definoj
ngjyra t zakonshme.

CdlCCRGBInit

&H1

Cakton vlern fillestare t ngjyrs pr


dialog-box.

Color Dialog Box Flags

395

Avni Rexhepi - Visual Basic

Prmbajtja

Fonts Dialog Box Flags


Konstanta - Constant

Vlera - Value

Prshkrimi - Description

cdlCFANSIOnly

&H400

Specifikon se dialog-box-i lejon vetm seksionin


e fonteve q prdorin bashksin e karaktereve
t Windowsit. Nse caktohet, shfrytzuesi nuk
mund t zgjedh fontet q prmbajn vetm
simbole.

CdlCFApply

&H200

Mundson tastin Apply (aplikoji) n dialog.

CdlCFBoth

&H3

Bn q dialogu t listoj fontet e ekranit dhe


printerit, q jan n dispozicion Tipari hDC
identifikon device context (kontekstin e
pajisjes) t shoqruar me printer.

CdlCFEffects

&H100

Specifikon se dialogu mundson efektet


Strikethrough (i bie teksit me vij), underline
(nnvizimi) dhe efektet e ngjyrs.

cdlCFFixedPitchOnly

&H4000

Specifikon se dialogu zgjedh vetm fontet me


latrsi fikse.

cdlCFForceFontExist

&H10000

Specifikon se mesazhi i gabimit paraqitet nse


shfrytzuesi tenton t zgjedh fontin ose stilin q
nuk ekziston.

cdlCFHelpButton

&H4

Bn q dialogu t paraqes tastin Help.

cdlCFLimitSize

&H2000

Specifikon se dialogu zgjedh vetm fontet n


rangun e madhsis t definuar me tiparet Min
dhe Max.

cdlCFNoFaceSel

&H80000

Ssht zgjedhur emri i fontit.

cdlCFNoSimulations

&H1000

Specifikon se dialogu nuk lejon GDI (graphic


device interface) simulimet e fonteve

cdlCFNoSizeSel

&H200000

Ssht zgjedhur madhsia e fontit.

cdlCFNoStyleSel

&H100000

Ssht zgjedhur stili i fontit.

cdlCFNoVectorFonts

&H800

Specifikon se dialogu nuk lejon zgjedhje t


fonteve vektoriale.

cdlCFPrinterFonts

&H2

Bn q dialogu t listoj vetm fontet e


prkrahura prej shtypsit (printerit), t
specifikuara me tiparin hDC.

cdlCFScalableOnly

&H20000

Specifikon se dialogu lejon vetm zgjedhjen e


fonteve q mund t shkallzohen.

cdlCFScreenFonts

&H1

Bn q dialogu t listoj vetm fontet e ekranit t


prkrahura prej sistemit.

396

Avni Rexhepi - Visual Basic

Prmbajtja

CdlCFTTOnly

&H40000

Specifikon se dialogu lejon zgjedhjen vetm t


fonteve TrueType Fonts.

CdlCFWYSIWYG

&H8000

Specifikon se dialogu lejon zgjedhjen vetm t


fonteve t cilat jan n dispozicin edhe pr ekran
edhe pr shtyps. Nse definohet, duhet t
definohen edhe
cdlCFBoth dhe cdlCFScalableOnly .

Printer Dialog Box Flags


Konstanta - Constant

Vlera Value

Prshkrimi - Description

cdlPDAllPages

&H0

Kthen ose cakton gjendjen e opcionit All Pages


(t gjitha faqet).

CdlPDCollate

&H10

Kthen ose cakton gjendjen e Check-Box-it Collate


(Mbledh, sistemo).

cdlPDDisablePrintToFile &H80000

Pamundson Check-box-in Print To File.

cdlPDHelpButton

&H800

Bn q dialogu t paraqes tastin Help.

cdlPDHidePrintToFile

&H100000

Fsheh Check-Box-in Print To File.

cdlPDNoPageNums

&H8

Pamundson opcionin Pages dhe kontrolln e


shoqruar Edit.

cdlPDNoSelection

&H4

Pamundson opcionin Selection.

CdlPDNoWarning

&H80

Pengon mesazhin e vrejtjes q paraqitet kur nuk


ekziston printeri default.

cdlPDPageNums

&H2

Kthen ose cakton gjendjen e opcionit Pages.

cdlPDPrintSetup

&H40

Bn q sistemi t paraqes dialogun Print Setup


n vend t dialogut Print.

cdlPDPrintToFile

&H20

Kthen ose cakton gjendjen e check-box-it Print To


File.

cdlPDReturnDC

&H100

Kthen tiparin Device Context pr zgjedhjen e


printerit, t br n dialog. Tipari kthehet n
dialog-box-in hDC.

cdlPDReturnDefault

&H400

Kthen emrat e printerve standard.

cdlPDReturnIC

&H200

Kthen kontekstin e informats pr printerin e


zgjedhur, t br n dialog. Kjo mundson
mnyr t shpejt pr t marr informatn pr
pajisjen pa krijuar Device Context. Informata
kthehet n tiparin e dialogut hDC.

397

Avni Rexhepi - Visual Basic

Prmbajtja

cdlPDSelection

&H1

Kthen ose cakton gjendjen e opcionit Selection.


Nse nuk jan zgjedhur as cdlPDPageNums as
cdlPDSelection, opcioni All sht i zgjedhur.

CdlPDUseDevModeCop
ies

&H40000

Nse drajveri i printerit nuk prkrah kopjet e


shumfishta, caktimi i ktij flag-u pamundson
editimin e kontrolls Copies.
Nse printeri prkrah kopjet e shumfishta,
caktimi i flag-ut tregon se dialog-box-i ruan numrin
e krkuar t kopjeve n tiparin Copies.

Kontanta - Constant

Vlera - Value

Prshkrimi - Description

cdlHelpCommandHelp

&H102

Paraqite ndihmn pr nj komand t veant.

CdlHelpContents

&H3

Paraqet pikn e kontekstit n Help Fajllin aktual.

CdlHelpContext

&H1

Paraqet ndihm pr nj pik t veant.

cdlHelpContextPopup

&H8

Paraqet pikn e identifikuar me context number


(numrin e kontekstit)

CdlHelpForceFile

&H9

Krijon Help file i cili paraqet tekstin vetm n nj


font.

cdlHelpHelpOnHelp

&H4

Paraqet ndihm pr prdorimin e vet Help


aplikacionit.

CdlHelpIndex

&H3

Paraqet indeksin e Help File-it t specifikuar.

CdlHelpKey

&H101

Paraqet ndihm pr tastier t veant.

cdlHelpPartialKey

&H105

Thrret search engine n Windows Help

CdlHelpQuit

&H2

Lajmron Help aplikacionin q Help File i


specifikuar nuk prdoret m.

cdlHelpSetContents

&H5

Cakton temn e caktuar si prmbajtje.

cdlHelpSetIndex

&H5

Cakton indeksin aktual pr multi-index Help

Help Constants

398

Avni Rexhepi - Visual Basic

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

E kaltr e qel - Cyan

vbWhite

&HFFFFFF

E bardh - White

Disa nga ngjyrat RGB


Kombinimi
RGB(255, 255, 0)
RGB(64, 0, 0)
RGB(0, 0, 255)
RGB(128, 0, 255)
RGB(0, 255, 255)
RGB(0, 0, 0)
RGB(255, 0, 255)
RGB(0, 0, 100)
RGB(255, 0, 0)
RGB(128, 128, 128)
RGB(0, 64, 0)
RGB(0, 255, 0)

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

Ngjyrat e fituara me funksionin QBCOlor


Numri

Ngjyra

Numri

Ngjyra

Black e zez

Gray ngjyr hiri

Blue e kalt%r

Light Blue e kaltr e qelt

Green e gjelbr

10

Light Green e gjelbr e qelt

Cyan cian

11

Light Cyan Cian e qelt

Red e kuqe

12

Light Red e kuqe e qelt

399

Avni Rexhepi - Visual Basic

Prmbajtja

Magenta magjenta

13

Light Magenta magjenta e qelt

Yellow e verdh

14

Light Yellow e verdh e qelt

White e bardh

15

Bright White e bardh e kthjellt

Ngjyrat e sistemit
Kontanta - Constant

Vlera - Value

Prshkrimi - Description

vbScrollBars

&H80000000

Njgyra e shiritit rrshqits

vbDesktop

&H80000001

Ngjyra e desktop-it

vbActiveTitleBar

&H80000002

Ngjyra e shiritit t titullit pr dritaren


aktive

vbInactiveTitleBar

&H80000003

Ngjyra e shiritit t titullit pr dritaren


joaktive

vbMenuBar

&H80000004

Ngjyra e prapavis s menys

vbWindowBackground

&H80000005

Ngyra e prapavis s dritares

vbWindowFrame

&H80000006

Njgyra e kornizs s dritares

vbMenuText

&H80000007

Ngjyra e tekstit n meny

vbWindowText

&H80000008

Njgyra e tekstit n dritare

vbTitleBarText

&H80000009

Ngjyra e tekstit n tiparin Caption,


Size-Box dhe shigjetn rrotulluese

vbActiveBorder

&H8000000A

Ngjyra e kufirit t dritares aktive

vbInactiveBorder

&H8000000B

Ngjyra e kufirit t dritares joaktive

vbApplicationWorkspace

&H8000000C

Ngjyra e prapavis s aplikacioneve


MDI

vbHighlight

&H8000000D

Ngjyra e parapvis s elementeve t


zgjedhura n kontroll

vbHighlightText

&H8000000E

Ngjyra e tekstit t elementeve t


zgjedhura n kontroll

vbButtonFace

&H8000000F

Ngjyra ose hija n faqe (fytyr) t


tasteve komanduese

vbButtonShadow

&H80000010

Ngjyra e hijes n skaje t tastit


komandues

vbGrayText

&H80000011

Teksti i deaktivizuar (i hirsuar)

vbButtonText

&H80000012

Ngjyra e tekstit n tastet e shtypura

400

Avni Rexhepi - Visual Basic

Prmbajtja

vbInactiveCaptionText

&H80000013

Ngjyra e tekstit n tiparin Caption


joaktiv

vb3DHighlight

&H80000014

Ngjyra theksuese pr elementet me


paraqitje 3D

vb3DDKShadow

&H80000015

Ngjyra e hijs m t errrt pr


elementet me paraqitje 3D

vb3DLight

&H80000016

Ngjyra e e dyt m e qelt 3D pas


vb3Dhighlight

vb3DFace

&H8000000F

Ngjyra e faqs *fytyrs) s tekstit

vb3Dshadow

&H80000010

Ngjyra e hijs s tekstit

vbInfoText

&H80000017

Ngjyra e tekstit n ToolTips

vbInfoBackground

&H80000018

Ngjyra e prapavis n ToolTips

401

Avni Rexhepi - Visual Basic

Prmbajtja

Konstantet e forms - Form Constants


Parametrat e paraqitjes - Show Parameters
Konstatna - Constant

Vlera - Value

Prshkrimi - Description

VbModal

Form modale - Modal form

vbModeless

Form jo modale - Modeless form

Metoda Arrange pr format MDI - Arrange Method for MDI Forms


Konstatna - Constant

Vlera - Value

Prshkrimi - Description

VbCascade

N kaskad (MDI format fmij, t


paminimizuara)

VbTileHorizontal

Horizontalisht (MDI format fmij, t


paminimizuara)

VbTileVertical

Vertikalisht (MDI format fmij, t paminimizuara)

VbArrangeIcons

Rregulloi ikonat (n form rrjete) (pr MDI format


fmij t minimizuara)

Tipari gjendja e dritares - WindowState Property


Konstatna - Constant

Vlera - Value

Pwrshkrimi Description

vbNormal

Normale Normal

vbMinimized

E minimizuar Minimized

vbMaximized

E maksimalizuar Maximized

Konstantet e grafiks - Graphics Constants


Tipari i stilit t mbushjes - FillStyle Property
Konstatna - Constant

Vlera - Value

Prshkrimi Description

vbFSSolid

E plot - Solid

vbFSTransparent

E tejdukshme - Transparent

vbHorizontalLine

Vij horizontale - Horizontal line

vbVerticalLine

Vij vertikale - Vertical line

vbUpwardDiagonal

Diagonale e eprme - Upard diagonal

vbDownwardDiagonal

Diagonale e poshtme - Donard diagonal

vbCross

Kryq - Cross

402

Avni Rexhepi - Visual Basic


vbDiagonalCross

Prmbajtja

Kryq diagonal - Diagonal cross

Tipari ScaleMode - ScaleMode Property


Konstatnat - Constant

Vlera - Value

Prshkrimi - Description

VbUser

I/E shfrytzuesit - User

VbTwips

Twip - Tips

VbPoints

Pika - Points

VbPixels

Piksela - Pixels

VbCharacters

Karaktere - Characters

VbInches

Ina - Inches

VbMillimeters

Milimetra - Millimeters

VbCentimeters

Centimetra - Centimeters

VbHiMetric

HiMetric

VbContainerPosition

Njesi e prdorur prej bartsit (kontejnerit) t


kontrolls pr t prcaktuar pozitn e kontrolls

VbContainerSize

10

Njesi e prdorur prej bartsit (kontejnerit) t


kontrolls pr t prcaktuar madhsin e
kontrolls

Tipari PaletteMode - PaletteMode Property


Kontanta - Constant

Vlera - Value

Prshkrimi Description

VbPaletteModeHalfTone

Paleta Halftone (gjysm toni) e sistemit

VbPaletteModeUseZOrder

Prdore paletn e kontrolls m t lart q ka


palet

VbPaletteModeCustom

Prdore paletn e prcaktuar n tiparin


Palette

VbPaletteModeContainer

Prdore paletn e bartsit pr bartsit q


prkrahin tiaprin Palette t ambientit

VbPaletteModeNone

Mos prdor ndonj palet

VbPaletteModeObject

Prdore paletn e dizajnerit ActiveX

403

Avni Rexhepi - Visual Basic

Prmbajtja

Konstantet e vizatimit - Drawing Constants


Tipari DrawStyle - DrawStyle Property
Kontanta - Constant

Vlera - Value

Prshkrimi - Description

VbSolid

Vij e plot - Solid

VbDash

E ndrprer - Dash

VbDot

Pika Dot

VbDashDot

Viz-pik Dash-dot

VbDashDotDot

Viz-pik-pik - Dash-dot-dot

VbInvisible

E padukshme - Invisible

VbInsideSolid

I plot prbrenda - Inside solid

Konstantet e rreshtimit - Alignment Constants


Tipari Align (rreshto) - Align Property
Kontanta - Constant

Vlera - Value

Prshkrimi - Description

VbAlignNone

Madhsia dhe pozita t caktuara n modin e


dizajnimit ose n kod

VbAlignTop

Rreshto kontrollat n krye t forms

VbAlignBottom

Rreshto kontrollat n fund t forms

VbAlignLeft

Rreshto kontrollat n ann e majt t forms

VbAlignRight

Rreshto kontrollat n ann e djatht t


forms

Tipari Alignemnet (rreshtimi) - Alignment Property


Kontanta - Constant

Vlera - Value

Prshkrimi Description

vbLeftJustify

Rreshtimi majtas - Left align

vbRightJustify

Rreshtimi djathtas - Right align

vbCenter

Qendr - Center

404

Avni Rexhepi - Visual Basic

Prmbajtja

Konstantet e tiparit Stili i kufirit - BorderStyle Property


Constants
Tipari BorderStyle i forms - BorderStyle Property (Form)
Kontanta - Constant

Vlera - Value

Prshkrimi Description

vbBSNone

Pa kufi - No border

vbFixedSingle

Nj, i fiksuar - Fixed single

vbSizable

I ndryshuashm (vetm format) - Sizable


(forms only)

vbFixedDialog

Dialog, i fiksuar - Fixed dialog (forms only)

vbFixedToolWindow

Dritarja e veglave t fiksuara - Fixed tool


indo

vbSizableToolWindow

Dritarja e veglave t ndryshueshme - Sizable


tool window

Tipari BorderStyle i kontrollave Shape dhe Line


BorderStyle Property (Shape and Line)
Kontanta - Constant

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

Konstantet e objektit Clipboard - Clipboard Object Constants


Kontanta - Constant

Vlera - Value

Prshkrimi - Description

vbCFRTF

-16639

Rich Text Format (.rtf file)

vbCFLink

-16640

Informat pr bisd DDE - DDE


conversation information

vbCFText

Text (.txt file)

vbCFBitmap

Bitmap (.bmp file)

405

Avni Rexhepi - Visual Basic

Prmbajtja

vbCFMetafile

Metafile (.mf file)

vbCFDIB

Device-independent bitmap

vbCFPalette

Color palette

vbCFEMetaFile

14

Enhanced metafile (.emf file)

vbCFFiles

15

Lista e fajllave prej indos Explorer-it - File


list from indos Explorer

Konstantet e kontrollave - Control Constants


Kontrolla ComboBox
Kontanta - Constant

Vlera - Value Prshkrimi Description

VbComboDropdown

Combo me list rnse - Dropdown Combo

VbComboSimple

Comnbo i thjesht - Simple Combo

VbComboDropdownList

List rnse - Dropdown List

Kontrolla CheckBox
Kontanta - Constant

Vlera - Value Prshkrimi Description

VbUnchecked

I/E pazgjedhur - Unchecked

VbChecked

I/E zgjedhur - Checked

VbGrayed

I/E deaktivizuar (hirsuar) - Grayed

Kontrolla ListBox
Kontanta - Constant

Vlera - Value Prshkrimi Description

vbListBoxStandard

Standard Windows ListBox

vbListBoxCheckBox

Vlerat nw ListBox prmbajnw CheckBox-a t


selektueshwm

vbMultiSelectNone

Pa zgjedhje t shumfisht

vbMultiSelectSimple

Selektimi i shumfisht i thjesht

vbMultiSelectExtended

Selektimi i shumfisht i zgjeruar

Kontanta - Constant

Vlera - Value

Prshkrimi Description

VbSBNone

Asnjra - None

Kontrolla ScrollBar

406

Avni Rexhepi - Visual Basic

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

Drejtkndsh i rrumbullaksuar - Rounded


rectangle

vbShapeRoundedSquare

Katror i rrumbullaksuar - Rounded square

Kontrola Shape

Konstantet e kontrolls Data - Data Control Constants


Konstantet e ngjarjes Error - Error Event Constants
Kontanta - Constant

Vlera - Value Prshkrimi Description

VbDataErrContinue

Vazhdo - Continue

VbDataErrDisplay

Standard, paraqite mesazhin e gabimit (Default) Display the error message

Konstantet e veprimit t ngjarjes Verifikimi i vlefshmris


Validate Event Action Constants
Kontanta - Constant

Vlera - Value

Prshkrimi Description

VbDataActionCancel

Anulo veprimin kur dilet prej procedurs

VbDataActionMoveFirst

Metoda kalo tek i pari - MoveFirst method

VbDataActionMovePrevious

Metoda kalo tek i prparshmi - MovePrevious


method

VbDataActionMoveNext

Metoda kalo tek i ardhshmi - MoveNext


method

VbDataActionMoveLast

Metoda kalo tek i fundit - MoveLast method

VbDataActionAddNew

Metoda shto t ri AddNew method

407

Avni Rexhepi - Visual Basic

Prmbajtja

VbDataActionUpdate

Veprimi azhuro (jo azhuro rekordin) Update


operation (not UpdateRecord)

VbDataActionDelete

Metoda fshije - Delete method

VbDataActionFind

Metoda gjeje - Find method

VbDataActionBookmark

Tipari Bookmark sht definuar - The


Bookmark property is set

VbDataActionClose

10

Metoda mbylle - Close method

VbDataActionUnload

11

Forma po mbyllet (shkarkohet) - The form is


being unloaded

Konstantet pr veprimin Fillimi i fajllit - Beginning-Of-File Action Constants


Kontanta - Constant

Vlera - Value

Prshkrimi Description

VbMoveFirst

Kalo tek rekordi i par - Move to first record

VbBOF

Kalo n fillim t fajllit - Move to beginning of


file

Konstantet e veprimit Fundi i fajllit - End-Of-File Action Constants


Kontanta - Constant

Vlera - Value

Prshkrimi Description

VbMoveLast

Kalo tek rekordi i fundit Move to last record

VbEOF

Kalo n fund t fajllit - Move to end of file

VbAddNew

Shto rekord t ri n fund t fajllit - Add new


record to end of file

Konstantet e tipit Recordset - Recordset-Type Constants


Kontanta - Constant

Vlera - Value

Prshkrimi Description

vbRSTypeTable

Rekordset i tipit Tabel - Table-type


recordset

vbRSTypeDynaset

Rekordset i tipit Dynaset - Dynaset-type


recordset

vbRSTypeSnapShot

Rekordset i tipit Snapshot - Snapshot-type


recordset

408

Avni Rexhepi - Visual Basic

Prmbajtja

Konstantet e kodit t tasteve - Key Code Constants


Kodet e tasteve - Key Codes
Kontanta - Constant

Vlera - Value

Prshkrimi - Description

vbKeyLButton

Tasti i majt i mausit - Left mouse button

vbKeyRButton

Tasti i djatht i mausit - Right mouse button

vbKeyCancel

Tasti Cancel - CANCEL key

vbKeyMButton

Tasti i mesm i mausit - Middle mouse button

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

Tasti CAPS LOCK

vbKeyEscape

27

Tasti ESC

vbKeySpace

32

Tasti SPACEBAR (Hapsira)

vbKeyPageUp

33

Tasti PAGE UP

vbKeyPageDown

34

Tasti PAGE DON

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

Tasti PRINT SCREEN

vbKeyExecute

43

Tasti EXECUTE

409

Avni Rexhepi - Visual Basic

Prmbajtja

vbKeySnapshot

44

Tasti SNAPSHOT

vbKeyInsert

45

Tasti INS

vbKeyDelete

46

Tasti DEL

vbKeyHelp

47

Tasti HELP

vbKeyNumlock

144

Tasti NUM LOCK

Tastet prej A deri n Z jan t njjt si ekuivalentet e tyre ASCII prej A n Z


KeyA Through KeyZ Are the Same as Their ASCII Equivalents: 'A' Through 'Z'
Kontanta - Constant

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

Avni Rexhepi - Visual Basic

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

Tastet n tastiern numerike - Keys on the Numeric Keypad


Kontanta - Constant

Vlera - Value Prshkrimi - Description

vbKeyNumpad0

96

vbKeyNumpad1

97

vbKeyNumpad2

98

vbKeyNumpad3

99

vbKeyNumpad4

100

vbKeyNumpad5

101

vbKeyNumpad6

102

vbKeyNumpad7

103

vbKeyNumpad8

104

411

Avni Rexhepi - Visual Basic

Prmbajtja

vbKeyNumpad9

105

vbKeyMultiply

106

Shenja e shumzimit (*)

vbKeyAdd

107

Shenja PLUS (+)

vbKeySeparator

108

ENTER

vbKeySubtract

109

Shenja MINUS (-)

vbKeyDecimal

110

Pika dhjetore (.)

vbKeyDivide

111

Shenja e pjestimit (/)

Tastet funksionale - Function Keys


Kontanta - Constant

Vlera - Value Prshkrimi - Description

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

Avni Rexhepi - Visual Basic

Prmbajtja

Konstantet e objektit Picture - Picture Object Constants


Kontanta - Constant

Vlera - Value Prshkrimi - Description

VbPicTypeNone

Tipi Icon

vbPicTypeBitmap

Tipi Bitmap

vbPicTypeMetafile

Tipi Metafile

VbPicTypeIcon

Tipi Icon

vbPicTypeEMetaFile

Tipi Enhanced metafile

Konstantet e tipit Variant - Variant Type Constants


Kontanta - Constant

Vlera - Value Prshkrimi - Description

VbVEmpty

E zbrazt (e painicializuar)
Empty (uninitialized)

VbVNull

Null (pa t dhna t vlefshme)


Null (no valid data)

VbVInteger

Integer

VbVLong

Long integer

vbVSingle

Tipi Single-precision me pik t lvizshme

vbVDouble

Tipi Double-precision me pik t lvizshme

vbVCurrency

Currency (scaled integer) data type

vbVDate

Dat

vbVString

String

Konstantet VarType (Tipi i variablave)


Konstantet vijuese mund t prdoren n program n vend t vlerave aktuale
Kontanta - Constant

Vlera - Value Prshkrimi - Description

vbEmpty

Variabla e painicializuar (standard)

vbNull

Nuk prmban t dhna t vlefshme

vbInteger

Integer Numra t plot

vbLong

Long integer

vbSingle

Numr me pik t lvizshme - precizitet

413

Avni Rexhepi - Visual Basic

Prmbajtja
Single

vbDouble

Numr me pik t lvizshme - precizitet


Doube

vbCurrency

Valut

vbDate

Dat

vbString

String (ndryshore tekstuale)

vbObject

Objekt

vbError

10

Gabim

vbBoolean

11

Boolean

vbVariant

12

Variant (prdoret vetm pr vargje t


konstantave)

vbDataObject

13

Data access object Objekt pr qasje n t


dhna

vbDecimal

14

Decimal shifr decimale

vbByte

17

Byte Bajt

vbUserDefinedType

36

Variants that contain user-defined types


Varianta q prmbajn tipe t definuara prej
shfrytzuesit

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)

Kombinimi Enter rresht i ri

vbCr

Chr(13)

Karakteri pr Enter

vbLf

Chr(10)

Karakteri rresht i ri

vbNullChar

Chr(0)

Karakter me vler 0

vbNullString

String having value 0

Jo njsoj si string zero (), prdoret


pr thirrjen e procedurave t jashtme

414

Avni Rexhepi - Visual Basic


vbObjectError

Prmbajtja
-2147221504

Numrat e definuar prej shfrytzuesit


duhet t jen m t mdhnj se kjo
vler. P.sh:

Err.Raise Number =
vbObjectError + 1000
vbTab

Chr(9)

Tab character
Karakteri Tab

vbBack

Chr(8)

Backspace character
Karakteri BackSpace

415

Avni Rexhepi - Visual Basic

416

Prmbajtja

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

Prmbajtja

Madhsia dhe njsia matse .......................................................................31


Vendosja e kontrollave n form................................................................32
Zgjedhja e kontrolls (Objektit) .................................................................33
Ekzekutimi .................................................................................................33
Ndryshimet n modin e dizajnit .................................................................34
Ndryshimet n modin e ekzekutimit Editori i kodit ................................37
Plotsimi automatik i fjalve......................................................................40
Object Browser...........................................................................................41
Procedurat ......................................................................................................42
Procedurat e prgjithshme ..........................................................................42
Procedurat e ngjarjeve................................................................................42
Thirrja e procedurave .................................................................................44
Thirrja e procedurs prej modulit tjetr......................................................45
Prcjellja e argumenteve ............................................................................46
Emrtimi i kontrollave ...............................................................................46
Insertimi i procedurs prmes menys .......................................................47
Kontrollat shtes.........................................................................................48
Ruajtja e projektit .......................................................................................49
Hapja e projektit .........................................................................................49
Kontrollat e brendshme ..................................................................................50
Kontrolla Label ..........................................................................................50
Kontrolla TextBox......................................................................................50
Formatizimi i kontrollave...........................................................................53
Fokusi i kontrollave dhe renditja TabIndex dhe TabStop .......................54
Tasti Komandues kontrolla CommandButton .........................................57
Komandimi prmes tastiers ......................................................................61
Zhvendosja e forms gjat kohs s ekzekutimit .......................................61
LLOJET E T DHNAVE, KONSTANTET, VARIABLAT...........................66
Llojet e t dhnave .....................................................................................66
Deklarimi i variablave................................................................................67
Fjalt e rezervuara ......................................................................................67
Emrtimi i variablave .................................................................................67
Zgjedhja e tipit t variabls ........................................................................69
Llojet e t dhnave q ruajn variablat.......................................................70
Vlera e zbrazt (Empty) .............................................................................70
Vlera Null...................................................................................................71
Vlera Error..................................................................................................71
Konstantet...................................................................................................71
Deklarimi eksplicit .....................................................................................72
Deklarimi implicit ......................................................................................73
Prapashtesat e variablave ...........................................................................74
ii

Avni Rexhepi - Visual Basic

Prmbajtja

Prdorimi i variablave tekstuale String ...................................................75


Stringu me gjatsi t ndryshueshme dhe me gjatsi fikse ..........................78
Prcaktimi i domenit t variablave.............................................................78
Variablat globale ........................................................................................79
Variablat publike dhe variablat lokale........................................................79
Variablat statike..........................................................................................80
Krijimi i konstanteve t shfrytzuesit.........................................................82
Urdhri pr ndarjen e vlerave.....................................................................82
Gabimi TypeMismatch...............................................................................83
Vlerat standarde..........................................................................................84
Operatort ......................................................................................................85
Prioriteti i operacioneve .............................................................................88
Eksponenti..................................................................................................88
Bashkimi i stringjeve..................................................................................89
Urdhrat pr kushtzim ..................................................................................90
Urdhri If ... Then.......................................................................................90
If ... Then n nj rresht ...............................................................................90
If .. Then me shum urdhra.......................................................................91
Urdhri If...Then...Else...............................................................................91
Dritarja Immediate .....................................................................................92
Urdhrat e ndrlidhur If..............................................................................93
Urdhri If i shumfisht ...............................................................................95
Kombinimi i kushteve me Dhe dhe me Ose........................................96
Urdhri Select Case ....................................................................................96
Kalimi i detyrueshm .................................................................................97
Kontrollat CheckBox dhe OptionButton....................................................99
Kontrolla CheckBox...................................................................................99
Kontrolla OptionButton............................................................................101
Kontrolla Frame .......................................................................................102
Urdhrat pr prsritje - Unazat..................................................................105
Unaza For...Next ......................................................................................105
Ndrprerja e unazs For...Next.................................................................107
Unazat Do ... Loop ...................................................................................107
Unaza Do ... While ...................................................................................107
Unaza While ... Wend ..............................................................................108
Unaza Do ... Until.....................................................................................109
Ndrthurrja e unazave ..............................................................................110
Vargjet ..........................................................................................................111
Deklarimi i vargjeve.................................................................................111
Deklarimi i vargut me fjaln e rezervuar To ............................................112
Ridimensionimi i vargut...........................................................................112
Vargjet shumdimensionale .....................................................................113
iii

Avni Rexhepi - Visual Basic

Prmbajtja

Prdorimi i Unazave pr prshkimin e vargjeve ......................................115


Vargjet e kontrollave................................................................................116
Krijimi i vargut t kontrollave n modin e dizajnimit..............................116
Krijimi i vargut t kontrollave gjat ekzekutimit .....................................117
Prdorimi i fotografive dhe grafiks.............................................................120
Kontrolla PictureBox................................................................................120
Kontrolla Image........................................................................................123
Kontrolla Shape dhe kontrolla Line .........................................................125
Vizatimi i vijave dhe drejtkndshave n modin e ekzekutimit.................126
Hyrjet dhe daljet ...........................................................................................129
InputBox...................................................................................................129
MsgBox ....................................................................................................131
Format dhe dritaret modale pr dialog .....................................................134
Leximi i t dhnave prej fajllit qasja sekuenciale .................................136
Hapja e fajllit pr qasje sekuenciale .........................................................136
Leximi i t dhnave ..................................................................................136
Leximi i rreshtit Line Input # ................................................................141
Shkruarja e t dhnave n fajll .................................................................141
Fajllat me qasje t rastit............................................................................144
Variablat e defininuara prej shfrytzuesit ..................................................144
Shkruarja dhe leximi i fajllave me qasje t rastit .....................................146
Formatizimi i shtypjes..............................................................................149
Funksioni Tab...........................................................................................149
Karakteri pr vazhdim t rreshtit..............................................................150
Shtypja n Printer .....................................................................................151
Objekti FileSystemObject ........................................................................154
Metoda OpenAsTextStream .....................................................................157
FUNKSIONET DHE PROCEDURAT E FUNKSIONEVE .............................................160
Funksionet numerike ................................................................................160
String funksionet ......................................................................................161
Procedurat e funksioneve .........................................................................163
Thirrja e funksionit...................................................................................165
Dokumentimi i procedurave dhe funksioneve..........................................171
Prcaktimi i piks hyrse t programit .....................................................172
Kontrolla ListBox.....................................................................................174
Kontrolla ComboBox ...............................................................................178
Shiritat rrshqits......................................................................................182
Kontrolla Timer........................................................................................183
Kontrollat DriveListBox, DirListBox dhe FileListBox............................186
App.Path...................................................................................................187
Dritaret pr dialog ....................................................................................188
Kontrolla CommonDialog........................................................................188
iv

Avni Rexhepi - Visual Basic

Prmbajtja

Kontrolla Data ..........................................................................................194


Kontrolla OLE ..........................................................................................197
Lidhja me bazn e t dhnave ..................................................................198
Krijimi i objekteve n kohn e ekzekutimit .............................................199
Ekzekutimi i aplikacioneve ......................................................................201
EDITORI I MENYVE ............................................................................................202
KOMPONENTET KONTROLLAT SHTES ...........................................................210
Kontrolla Rich TextBox ...........................................................................210
Kalendari ..................................................................................................215
Kontrollat MonthView dhe DTPicker ......................................................217
Kontrolla UpDown ...................................................................................218
Kontrolla ImageList .................................................................................219
Kontrolla ImageCombo ............................................................................220
Kontrolla TabStrip....................................................................................224
Kontrolla Toolbar .....................................................................................227
Kontrolla StatusBar ..................................................................................230
Kontrolla TreeView..................................................................................233
Kontrolla ListView ...................................................................................236
Kontrolla Chart .........................................................................................244
Kontrolla Masked Edit Control ................................................................245
Kontrolla MultiMedia ..............................................................................247
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

GABIMET............................................................................................................250
TU

UT

Gjetja dhe evitimi i gabimeve t kohs s ekzekutimit ............................251


Procedura e prgjithshme pr trajtimin e gabimeve .................................252
Gabimet logjike ........................................................................................255
Ekzekutimi hap pas hapi (Single Stepping) .............................................259
Ekzekutimi i procedurs (Step Over) .......................................................259
Dalja prej funksiont (Step Out) ................................................................260
Mnyrat e detektimit t gabimit ...............................................................260
TU

UT

TU

UT

TU

UT

TU

UT

TU

UT

TU

UT

TU

UT

PUNA ME BAZAT E T DHNAVE ...............................................................262


TU

UT

Modeli i objektit ADO .............................................................................263


Kontrolla ADO .........................................................................................264
Vendosja e lidhjes ....................................................................................265
Prcaktimi i tabelave ................................................................................268
Kontrollat q lidhen n t dhna...............................................................270
Lvizja npr rekorde (navigimi) dhe krkimi .........................................273
Kontrollat e vetdijshme pr t dhnat .....................................................287
Kontrolla DataList ....................................................................................287
Kontrolla DataCombo ..............................................................................288
Kontrolla DataGrid ...................................................................................289
UT

UT

TU

TU

TU

UT

TU

UT

TU

UT

TU

UT

UT

TU

TU

UT

UT

TU

TU

UT

Avni Rexhepi - Visual Basic

Prmbajtja

Kontrolla MSHFlexGrid ..........................................................................293


Data Environment ....................................................................................295
Dizajnimi i objektit DataEnvironment .....................................................295
Data View .................................................................................................299
Dizajneri i pyetsve ..................................................................................299
Paraqitja hierarkike ..................................................................................302
DataReport ...............................................................................................306
Krijimi automatik i projektit pr t dhna ................................................309
VB Application Wizard ............................................................................309
Data Form Wizard ....................................................................................313
Format MDI ..................................................................................................316
MODULET ..........................................................................................................319
Modulet e formave ...................................................................................319
Modulet standarde ....................................................................................319
Modulet e klasave.....................................................................................320
Kontrolla DataRepeater ............................................................................324
OBJEKTET DHE KLASAT.....................................................................................330
Programimi i orientuar n objekte ............................................................330
Koleksionet...............................................................................................339
Identifikimi i elementeve t koleksionit ...................................................343
Procedura Initialize Event ........................................................................344
Ngjarjet .....................................................................................................345
Shtimi i ngjarjes n form ........................................................................345
Relacionet mes klasave ............................................................................348
Forma pr lajmrim ..................................................................................349
NDIHMA.............................................................................................................351
Krijimi i Help Text File ............................................................................351
Krijimi i fajllit ekzekutiv ...............................................................................357
PAKETIMI DHE SHPRNDARJA E PROJEKTIT ......................................................358
VISUAL BASIC-U DHE INTERNETI ......................................................................364
Faqet me DHTML ....................................................................................366
Ngjarjet DHTML......................................................................................370
VBScript ...................................................................................................371
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

UT

TU

TU

UT

UT

TU

UT

TU

UT

TU

UT

TU

UT

TU

UT

TU

UT

TU

UT

VISUAL BASIC-U PR APLIKACIONE ........................................................376


TU

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

Avni Rexhepi - Visual Basic

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

Avni Rexhepi - Visual Basic

viii

Prmbajtja

You might also like