You are on page 1of 423

Visual Basic

Hyrje

Avni Rexhepi

Prishtin, 2003
0

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.

Visual Basic

Hyrje

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
3

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.

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

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
6

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.

Visual Basic

Dritaret dhe menyt

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.

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
10

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.

11

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

Fig. 1.4 Menya Edit

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

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

13

Visual Basic

Dritaret dhe menyt

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.

Fig. 1.6 Menya project

Menya Format
Menya Format, prmban komandat t cilat prdoren pr formatizimin e objekteve t projektit (programit) (Fig. 1.7). Prmes tyre lehtsohet rreshtimi dhe formsimi i objekteve, shprrndarja horizontale dhe vertikale e tyre brenda forms, qendrsimi (centralizimi) dhe rradha e paraqitjes. Njherit kemi edhe opcionin Lock Controls, prmes s cilit bjm mbylljen e kontrollave, q t mos ket mundsi t bhet ndryshimi i pozits s tyre n kuadr t forms, kur dshirojm q pozita e prcaktuar e objektit t mos ndryshohet rastsisht, etj. Fig. 1.7 Menya Format

14

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

Fig. 1.9 Menya Run

Menya Tools
Menya Tools ndr t tjera prmban komandat pr shtimin e procedurave n kod dhe prcaktimin e tipareve t tyre si dhe opcionet Menu Editor (Editorin e menyve) programi prmes s cilit krijojm menyt e programit dhe menyn Options (Opcionet) prmes s cils bjm konfigurimin e programit. Fig. 1.10 Menya Tools

Menya Add-Ins
Menya 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.
15

Fig. 1.11 Menya Add-Ins

Visual Basic

Dritaret dhe menyt

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

Fig. 1.12 Menya Windiw

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.

Fig. 1.13 Menya Help

Shiritat e veglave
Si shumica e programeve t Microsoft-it edhe VB ka shiritat e veglave (Toolbars) n t cilt ndodhen funksionet dhe komandat t cilat prdoren m s shpeshti, pr t lehtsuar dhe shpejtuar prdorimin e tyre. Nse mbahet treguesi i mausit pr nj koh mbi tastin prkats n shiritin e veglave, do t paraqitet shpjegimi ose prshkrimi i shkurtr (ToolTip) i tastit prkats. Shpjegimi paraqitet n nj fush t verdh pran tastit ku sht pozicionuar treguesi i mausit. VB ka katr shirita t veglave: Standard, Debug, View dhe Form Editor. N fillim shihet vetm shiriti i veglave standarde, i pozicionuar prfundi menys kryesore. Shiritat tjer t veglave mund t paraqiten duke zgjedhur n menyn View Toolbars. Aty paraqitet lista e shiritave t veglave dhe shiriti i aktivizuar paraqitet me shenjn e zgjedhjes para tij. Shiritat paraqiten n dritare t veanta dhe kan titullin e dritares dhe tastin pr mbyllje n skajin e djatht t titullit. Mirpo shiritat jan t tipit Dockable (t ankorueshm, mund t lidhen n dok (si anijet), pra mund t vendosen t lidhen n pjesn e shiritave ose n pjest ansore t dritares s VB). Kur jan t lidhur, mund t zgjedhen prmes shenjs me vij t dyfisht ose si
16

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 Menu Editor Save Copy Find Redo Break Project Explorer Form Layot Window Toolbox

Add Form

Open

Cut

Paste

Undo

Start

End

Properties Window

Object Browser

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 Next Bookmark Clear All Bookmarks

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.

17

Visual Basic

Dritaret dhe menyt

Start Break End Step Over

Local Variables Window

Watch Window Quick Watch

Step Out Set Breakpoint Step Into

Immediate Window 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:

18

Visual Basic Ikona


Pointer PictureBox

Dritaret dhe menyt Kontrolla-Prshkrimi


Treguesi (i mausit), Zgjedhesi - selektuesi. Bn zgjedhjen e kontrollave 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. 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. Shiriti rrshqits (rrotullues) horizontal.

Label Text Box Frame Command Button Check Box Option Button Combo Box List Box HScrollBar Shiriti rrshqits (rrotullues) vertikal. VScrollBar Timer DriveListBox DirListBox FileListBox 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. 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.

Shape Line Image Data OLE

19

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)

20

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.

21

Visual Basic

Dritaret dhe menyt

Fig. 1.20 Dritarja Properties dhe Description

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

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

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.

24

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 processor Procesori i ngjarjeve

Event? Ngjarja?

Event Procedures Procedurat e ngjarjeve

VB Code Kodi i VB

VB Code Kodi i VB

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

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) Kontrolla Kontrolla Kontrolla Forma2 (.frm) Kontrolla Kontrolla Kontrolla Forma 3 (.frm) 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.

26

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

27

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

28

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
29

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
30

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

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

Fig. 1.23 Vendosja e kontrolls n form

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
32

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

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

Fig. 1.25 Ngjyra e prapavis

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

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:

Fig. 1.26 Forma e par

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.

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.

35

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

Fig. 1.27 Dritarja e kodit

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

Visual Basic

Projekti i par

Nse hapim listn, ather paraqitet lista e t gjitha procedurave t mundshme pr Formn (Fig. 1.28). 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.

Fig. 1.28 Lista e procedurave t Forms

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

37

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 Label1.Alignment = 2 Label1.BackStyle = 0 Label1.Caption = "Msojm Visual Basic" Label1.Font = Arial Titulli i forms Ngjyra e prapavis Stili i kufirit Rreshtimi i tekstit n Labl- Stili i prapavis Teksti i Label-s Fonti

38

Visual Basic
Label1.FontSize = 14 Label1.FontBold = True Label1.Left = 1 Label1.Top = 2 Label1.Width = 6 End Sub Madhsia Bold Skaji i majt i Label-s Skaji i eprm Gjersia Fundi i procedurs

Projekti i par

-------------------------------------------------Gjat shkruarjes s kodit, tipari pr objektin gjegjsisht kontrolln e caktuar shkruhet n formn: kontrolla.tipari (kontrolla pik tipari). 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.

Fig. 1.30 Tiparet e kontrolls

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.

39

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

40

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
41

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
42

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 Change Click DblClick DragDrop DragOver GotFocus KeyDown KeyPress KeyUp Event LostFocus MouseDown MouseMove MouseUp ka ndodh, veprimi Shfrytzuesi ndryshon tekstin n Text bo x 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).
43

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)

44

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
45

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 Fig. 1.32 Insertimi i procedurs fund End Sub. Pjesn tjetr t kodit e shtypim mes ktyre dy rreshtave. Insertimi i shpejt prmes tastaturs, bhet duke shtypur tastet: ALT+T+P, me rast prsri hapet dritarja Add Procedure.
46

Visual Basic

Procedurat

Kontrollat shtes
Pr t prdorur komponentet dhe kontrollat tjera n ndonj projekt, ather duhet hapur dritaren Components (Komponentet), (prmes menys Project-Components) dhe duhet zgjedhur komponentn e dshiruar (Fig. 1.32). Dritarja Components mund t hapet edhe duke klikuar me tastine djatht n ToolBox dhe n menyn e kontekstit q hapet me kt rast, duke zgjedhur Components. N dritaren Components selektohet (vrtetohet) check-box-i para emrit t komponentes dhe shtypet OK. Komponenta shtohet n kutin e veglave ToolBox dhe mund t prdoret si t gjitha kontrollat e brendshme, brenda projektit aktual. Pr shembull do t shtojm kontrolln pr kalendar, Microsoft Fig. 1.32 Shtimi i komponenteve Calendar Control 8.0. . 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 ekzekutohen n Internet. Visual Basic-u mund t prdoret prej shfrytzuesve edhe pr t krijuar komponente dhe kontrolla ActiveX t tyre.

47

Visual Basic

Procedurat

Ruajtja e projektit
Pr t ruajtur projektin, klikojm tastin Save n shiritin e veglave standarde ose zgjedhim n meny: File Save Project As... (pr t emrtuar projektin hern e par, ose pr ta ruajtur rishtazi, por me emt t ri). Hapet dritarja e dialogut n t ciln zgjedhet folderi ku do t ruhet projekti dhe emri me t cilindo t ruhet projekti dhe forma. Pr shembullin q realizuam do t krijohet fajlli i projektit .vbp dhe fajlli i forms .frm. Emrtojm projektin me emr t ri ose aprovojm emrin e propozuar Project1.vbp dhe klikojm tastin Save. Njsoj veprojm edhe pr fajllin e forms, duke definuar emrin ose duke aprovuar propozimin Form1.frm dhe duke klikuar Save.

Hapja e projektit
Pr t hapur projektin e ruajtur, zgjedhim n meny: File-Open Project ose klikojm tastin Open n shiritin e veglave standarde. Ngjashm, si me rastin e ruajtjes, hapet dialogu (Fig. 1.33), i cili krkon t zgjedhim folderin dhe emrin e projektit q do t hapet. Zgjedhim projektin dhe klikojm Open ose klikojm dy her emrin e projektit dhe hapet projekti. 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.

Fig. 1.33 - Open Project

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.

48

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

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

PasswordChar ScrollBars TabIndex TabStop Text

ToolTipText Top Visible Width

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.

50

Visual Basic

Llojet e t dhnave, konstantet, variablat

Fig. 1.34 Labelat dhe Tekst bokset

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.

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
51

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

Fig. 1.35 Format Editor

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

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

Fig. 1.36 - Forma n modin e ekzekutimit

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
53

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.

54

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

55

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 ua ndar vlern e zbrazt me (Pra thonjzat e hapura dhe t mbyllura pa distanc
56

Visual Basic

Llojet e t dhnave, konstantet, variablat

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 BackColor Prshkrimi 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 (0 Standard) 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.

57

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

Fig. 1.39a Forma me disa tastet komanduese Kodi dhe tiparet e tyre jan si n vijim:

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


58

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

Fig. 1.39d ToolTipText teksti udhzues

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.

59

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

Fig. 1.40 Forma n modin e dizajnimit

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

60

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 = _

61

Visual Basic
(frmLevize.Width - lblInfo.Width) / 2 lblInfo.Top = _ (frmLevize.Height - lblInfo.Height) / 2 - 200 End Sub

Llojet e t dhnave, konstantet, variablat

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"

62

Visual Basic
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

Llojet e t dhnave, konstantet, variablat

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

--------------------------------------------------------------------------------------------------

63

Visual Basic

Llojet e t dhnave, konstantet, variablat

64

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

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


66

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

67

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.

68

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 Single Numrat decimal Krkon 2 bytes 4 bytes 4 bytes Rangu i Vlerave -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 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

Double

Numrat decimal (precizitet i dyfisht, 8 bytes pika e levizhme)

Numrat deri n 15 8 bytes pr Currency shifra para dhe 4 decimalet pas presjes dhjetore String Byte Boolean Date Object Variant Informat tekstuale Numra t plot Vlera logjike Dat dhe koh Foto dhe objekte tjera Cilado nga tipet paraprake 1 byte pr karakter 1 byte 2 bytes 8 bytes 4 bytes reference 16 bytes +1 byte pr tipin

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.

69

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

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

71

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

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.

73

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.

74

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 Konverton shprehjen n Boolean Byte Currency Date Double Integer Long Single String Variant Error Integer, Long

Funksioni konvertues Cbool Cbyte Ccur Cdate CDbl Cint CLng CSng CStr Cvar CVErr Fix, Int

75

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

76

Visual Basic
'pr paraqitje t rezultatit txtShuma.Text = CStr(z) End Sub

Llojet e t dhnave, konstantet, variablat

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

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:
78

Visual Basic
Public Temp As Integer Sub Test( ) Dim Temp As Integer Temp = 2 Temp ka vlern 2

Llojet e t dhnave, konstantet, variablat

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.

79

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

80

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:

81

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

Llojet e t dhnave, konstantet, variablat

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.

82

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 Vlera 0 0 0 0 "" (blank - zbraztir) False EMPTY 0 0

83

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

84

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 bas hkuar 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 Biti n shprehjen 1 0 0 1 1 Shprehja 2 True False True False Biti n shprehjen 2 0 1 0 1 Rezultati True False False True 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 Biti n shprehjen 1 0 0 1 1 Shprehja 2 True False True False Biti n shprehjen 2 0 1 0 1 Rezultati True False True True Rezultati 1 1 0 1

85

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 Biti n shprehjen 1 0 `0 1 1 Shprehja 2 True False True False Biti n shprehjen 2 0 1 0 1 Rezultati False True True False 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.

86

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

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 Var1 = "34": Var2 = 6 Numri = Var1 + Var2 Var1 = "34": Var2 = "6" Numri = Var1 + Var2 ' Rezultati 4. ' Inicializo variablat e prziera ' Rezultati 40. ' Inicializo variablat string. ' Rezultati "346" (string concatenation).

88

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

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,
90

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

91

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.

92

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

93

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

94

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

95

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
96

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

97

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:
98

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

Fig. 2.5 Kontrollat CheckBox

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

99

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

Fig. 2.6 Fushat e tipit CheckBox

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

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
101

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

Fig. 2.8 Grupimi i kontrollave

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

102

Visual Basic
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

Llojet e t dhnave, konstantet, variablat

Kur t ekzekutohet programi, grupet e kontrollave opcionale funksionojn n mnyr t pavarur prej njra tjetrs.

103

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.

104

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.

105

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

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.

107

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

108

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.

109

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

110

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

Llojet e t dhnave, konstantet, variablat

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
111

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
112

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.

113

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.

114

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

Fig. 2.5 Vargu i kontrollave

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
115

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.

116

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

LblMuaji( )

TxtMuaji( )

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

117

Visual Basic

Llojet e t dhnave, konstantet, variablat

Fig. 2.7 Vargu i kontrollat i krijuar gjat ekzekutimit

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.

118

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

Fig. 2.8 Kontrolla PictureBox

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


119

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:

120

Visual Basic

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

Fig. 2.9 Zhvendosja n modin e ekzekutimit

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

121

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

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"

123

Visual Basic
End Sub

Llojet e t dhnave, konstantet, variablat

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

124

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

Step

(x1, y1)

Step

125

Visual Basic

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.

(x2, y2)

color

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

Fig. 2.11 Vijat n modin e ekzekutimit

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

126

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

127

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

Fig. 2.12 Input Box

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
128

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

Fig. 2.14a Shembull me InputBox

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

129

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

Fig. 2.15 - MsgBox


130

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

131

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

Fig. 2.17a Forma n modin e dizajnimit

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.

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.

132

Visual Basic

Funksionet dhe procedurat e funksioneve

Fig. 2.17b Gjendja fillestare

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
133

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.

134

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

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

136

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

137

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

138

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

139

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

140

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

Fig. 2.20 Shembulli Shkruarje/Lexim

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"

141

Visual Basic
Write #1, VarError; " sht vler e tipit Error " Close #1 ' Mbyllja e fajlit. picTabela.Cls picTabela.Print picTabela.Print strPorosia End Sub

Funksionet dhe procedurat e funksioneve

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

142

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

Fig. 5.4 Fajlli me qasje t rastit

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
143

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

144

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

145

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

146

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.

147

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:

148

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

149

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 Form1.PrintForm Printer.KillDoc Printer.EndDoc Printer.ScaleHeight, Printer.Scaleidth Printer.Orientation Prdorimi Pr t filluar shtypjen n faqe t re 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.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

150

Visual Basic
Next End Sub

Funksionet dhe procedurat e funksioneve

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, " ");

' 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

151

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.

152

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\"

153

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)

154

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

155

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 Object Iomode Prshkrimi Krkohet. Emri i File Object-it Opcional. Tregon modin hyrs/dals (input/output). Mund t jet nj prej tri konstanteve: ForReading (PrLexim), ForWriting (PrShkruarje), ose ForAppending (PrShtim). Opcional. Nj prej tri vlerave Tristate q prdoret pr t treguar formatin e fajllit t hapur. Nse nuk jepet, fajlli hapet si ASCII fajll.

Format

Konfigurimi Argumenti imode mund t ket vlerat vijuese:


Konstanta ForReading ForWriting ForAppending Vlera 1 2 8 Prshkrimi Hape fajllin vetm pr lexim. Nuk mund t shkruhet n kt fajll. Hape fajllin pr shkruarje. Nse fajlli me emr t njjt ve ekziston, prmbajtja e mparshme fshihet. 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 TristateUseDefault TristateTrue TristateFalse Vlera 2 1 0 Prshkrimi Hap fajllin duke prdorur vlerat standarde t sistemit. Hap fajllin si Unicode. 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:
156

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.

157

Visual Basic

Funksionet dhe procedurat e funksioneve

158

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


159

Visual Basic

Funksionet dhe procedurat e funksioneve

String funksionet
Disa prej funksioneve t zakonshme pr manipulim me variablat e tipit string jan:
Funksioni Chr(Int) Len(Str) Mid(Str,i,n) Left(Str,n) Right(Str,n) String(n, Str) StrReverse(Str) Trim(Str) LTrim(Str) RTrim(Str) Prshkrimi 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 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) Len(Prishtina) Mid(Prishtina,6,4) Left(Prishtina,2) Right(Prishtina,4) String(4,P) String(4,65) StrReverse(Prishtina) Trim( Pr ) Ltrim( Pr ) Rtrim( Pr ) strRezultati A 9 tina Pr tina PPPP AAAA anithsirP Pr Pr Pr

T rndsishme jan edhe funksionet vijuese:


InStr(n, Str1, Str2,Krahasimi) 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

Replace(Teksti, Str1, Str2) Str.SelLength Str.SelStart

Str.SelText

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

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

161

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

Fig. 3.3b Teksti i gjetur

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.

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:
162

Visual Basic

Funksionet dhe procedurat e funksioneve

Funksioni Int Chr Len Mid InStr

Shembull Int(2.6) Chr(65) Len(Prishtina) Mid(Prishtina,4,2) InStr(dhe n, )

Rezultati 2 A 9 sh 4

Hyrja (Input) 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.

163

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:
164

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.

165

Visual Basic

Funksionet dhe procedurat e funksioneve

Fig. 3.5 Ndarja e emrit dhe mbiemrit

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

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

Fig. 3.6 Numri m i madh 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.


167

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

168

Visual Basic

Funksionet dhe procedurat e funksioneve

Shembull: T llogaritet shprehja: S

( a i b)
i m

Fig. 3.7 Llogaritja e shums Kodi:

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.

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

169

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

170

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

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.

172

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

Fig. 3.9 Kontrollat ListBox

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

Prshkrimi Ngjyra e prapavis s kontrolls ListBox

173

Visual Basic Columns ForeColor Height IntegralHeight List


Numri i kolonave. Ngjyra e tekstit n ListBox. Lartsia e ListBox-it (n Twips).

Editori i menyve

MultiSelect

Sorted Style

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.

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 Clear List ListCount RemoveItem

Prshkrimi Shton nj element n ListBox. Largon t gjitha elementet. Vargu i stringjeve q prmban elementet prbrenda kontrolls ListBox. Numri total i elementeve. 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.
174

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.

175

Visual Basic

Editori i menyve

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

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

176

Visual Basic
Private Sub cmdPastro_Click() lstVendi.Clear txtShtuar.Text = "" txtLarguar.Text = "T gjitha elementet" End Sub

Editori i menyve

'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
177

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
178

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

Fig. 3.11 Kontrolla ComboBox

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

179

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)

180

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

Fig. 3.12 Shiritat rrshqits

181

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

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
183

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

184

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 Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub ' Cakto shtegun e folderit

' 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,
185

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.

186

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

187

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

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


189

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.

190

Visual Basic

Editori i menyve

Shembull: Insertojm n form kontrollat si n fig. 3.17. 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.

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

191

Visual Basic
'Form1.BackColor = dlgNgjyra.Color 'Pr ngjyrn e prapavis s forms End Sub

Editori i menyve

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

192

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

Fig 3.22 Kontrollat e t dhnave

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
193

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

194

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

Fig. 3.23 Kontrolla Data

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

195

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:
196

Visual Basic

Editori i menyve

Komanda Insert Object Paste Special Delete Embedded Object Delete Linked Object Create Link Create Embedded Object

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

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

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

199

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 vbMinimizedNoFocus 0 1 2 3 4 6 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

200

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

Fig. 4.1 Editori i menyve

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

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.

202

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
203

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

204

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

Editori i menyve

End Sub

Fig. 3.19a Menya e programit Shembull:

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)

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.

205

Visual Basic

Editori i menyve

Fig. 3.20 Editori i tekstit

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

206

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

207

Visual Basic
intGFCursorPos = txtFaqja.SelStart strFull = txtFaqja.Text 'Gjeje pozitn e kursorit n tekst

Editori i menyve

'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

208

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

Visual Basic

Gabimet

Fig. 3.21 Kontrolla Rich TextBox. (Shembulli: EditoriKomplet.vbp)


Option Explicit

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:

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

210

Visual Basic
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 'Menya pr dalje nga programi

Gabimet

Private Sub mnuExit_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

211

Visual Basic
Private Sub mnuPrint_Click()

Gabimet

' 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

212

Visual Basic
' 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

Gabimet

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.

213

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

Fig. 4.6a- Tiparet e kalendarit

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

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 Private Sub cmdVP_Click() Calendar1.PreviousYear End Sub 'Muaji i ardhshm

'Viti i prparshm

215

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

Fig. 4.7 MonthViw dhe DTPicker

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

216

Visual Basic
txtData.Text = DTPicker1.Value 'txtData.Text = Format(DTPicker1.Value, "dddd") End Sub

Gabimet

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

217

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

Fig. 4.8 Kontrolla ImageList

N folderin Microsoft Visual Studio, ku sht instaluar paketi n shtegun: Microsoft Visual Studio\Common\Graphics\Bitmaps ndodhen foldert t cilt prmbajn
218

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
219

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
220

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

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 rtfTeksti.SetFocus End Sub Private Sub ImageCombo2_Click() Select Case ImageCombo2.Text Case "E zez" rtfTeksti.SelColor = vbBlack Case "E kuqe" rtfTeksti.SelColor = vbRed Case "E kaltr" rtfTeksti.SelColor = vbBlue Case "E gjelbr" rtfTeksti.SelColor = vbGreen Case "Vjollce" rtfTeksti.SelColor = vbMagenta End Select rtfTeksti.SetFocus End Sub

Gabimet

Teksti Bold Teksti Italic Teksti i Nnvizuar

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

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

222

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

Fig. 4.12a Property Pages -Faqja General

Fig. 4.12b Property Pages - Faqja Tabs

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
223

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


224

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

225

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
226

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

Fig. 4.12b Tiparet e shiritit t veglave

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),
227

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 Case "Underlined" If Button.Value = vbChecked Then

' Tasti i deaktivizuar

228

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

Gabimet

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

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

Fig. 4.13a Property Pages pr kontrolln StatusBar

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

230

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

Fig. 4.13b Kontrolla StatusBar


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)

231

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

Fig. 4.14a Tiparet e kontrolls TreeView

232

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

233

Visual Basic
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

Gabimet

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)

234

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

Visual Basic

Gabimet

Fig. 4.15a- Kontrolla ListView

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

236

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

237

Visual Basic
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 ' 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 ' Emri.

Gabimet

Me rastin e ekzekutimit, do t fitohet pamja si n fig. 4.16. (Shembulli: ListView1.vbp) 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.

Fig. 4.16 Kontrolla ListView

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.

238

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

Visual Basic

Gabimet

Fig. 4.17 Kontrolla ProgressBar

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 '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 'Rreshtimi ne fund t dritares 'Ne fillim nuk shihet

'LBound - Kufiri i poshtem 'UBound - Kufiri i eperm 'Parqitet ProgressBari - shihet

(Shembulli: ProgressBar.vbp)

240

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
241

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

Fig. 4.19 Kontrolla Slider


242

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
243

Visual Basic

Gabimet

Fig. 4.20b Tiparet e grafikut

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

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 # . 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 prfshi rjen 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.

, : / \ & > < A a 9 C ? Literal

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.

245

Visual Basic

Gabimet

Shembull: Insertojm n form tri kontrolla t tipit Masked Edit dhe tri kontrolla t tipit Label, si n Fig 4.21. 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.

Fig. 4.21a Maska hyrse modi i dizajnimit

Fig. 4.21b Maska hyrse modi i ekzekutimit

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

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 Digital Audio Tape Digital video Other Overlay Scanner Sequencer Vcr AVI Videodisc ave audio Stringu CDAudio DAT DigitalVideo Other Overlay Scanner Sequencer VCR AVIVideo Videodisc Waveaudio .avi .mid Tipi i fajllit Prshkrimi CD audio player Digital audio tape player Digital video n dritare (jo GDI) Pajisje MCI e padefinuar Pajisje Overlay Skener Musical Instrument Digital Interface (MIDI) sequencer Video recorder ose Video player Audio Visual Interleaved video. Videodisc player Pajisje Wav pr ekzekutim t fajllave t tipit .wav (fajllat me forma valore t digjitalizuara).

.wav

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

247

Visual Basic
Prev Next Seek Record Eject Save MCI_SEEK 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.

Fig. 4.22 Kontrolla MultiMedia

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

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

248

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.

249

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

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

251

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

252

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

Fig. 5.1 Trajtimi i gabimeve 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 t ek 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

253

Visual Basic
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

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

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

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

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
255

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

Fig. 5.3b Vendosja e piks s ndrprerjes

Fig. 5.3c Ndalja n pikn e ndrprerjes

Nse n program nuk sht dhn urdhri Debug.Print, n dritaren direkte nuk shtypen fare vlerat. 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).

Fig. 5.3d Shtypja n dritaren Immediate

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

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

Fig. 5.3f Dritarja Watch

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
257

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.

258

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.

259

Visual Basic

Gabimet

260

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
261

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
262

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
263

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
264

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
265

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.

266

Visual Basic

Puna me bazat e t dhnave

Fig. 5.5 Property Pages

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
267

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*

268

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
269

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

Fi. 5.7a Lidhja me tabeln Studentet, baza


270

Visual Basic

Puna me bazat e t dhnave

Fakulteti.mdb

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

Fig. 5.7b Prcaktimi i tipareve DataSource dhe DataField

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.

271

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
272

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

Fig. 5.8 Lvizja npr rekorde

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

273

Visual Basic
Private Sub cmdIFundit_Click() 'Kalo n rekordin e fundit adoStudentet.Recordset.MoveLast End Sub

Puna me bazat e t dhnave

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:
274

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.


275

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


276

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

Fig. 5.10a Prdorimi i Visual Data Manager-it

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
277

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

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

Fig. 5.10c Add Field shtimi dhe dizajnimi i fushave t tabels

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
279

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

DBGrid

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

Visual Basic

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. Fig. 5.11a Query Builder 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.

281

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

Fig. 5.12a Data Form Designer

282

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

Fig. 5.11b Dizajni i forms

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.

283

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

Fig. 5.12a Forma frmTelefonat 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

284

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", vbInformati on, "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

285

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
286

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
287

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,
288

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

289

Visual Basic
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

Format MDI

Option1.Value = True DataList1.Visible = True DataCombo1.Visible = False End Sub Private Sub Datalist1_Click() ' Deklaro variabln stringun e cila do t prmbaj pyetsin e ri. ' Pyetsi i ri prmban tiparin BoundText t kontroll DataList1 ' pr t prcaktuar vlern e Numrit t indeksit. Pyetsi i ri ' gjen t gjitha fletparaqitjet me Numr t njjt t indeksit (Nr i Indeksit). ' Pyetsi i ndahet tiparit RecordSource (Burimi i t dhnave) t kontrolls ADO ' t emrtuar adoFletparaqitjet. Pas rifreskimit t kontrolls, ' rrjeta/tabela DataGrid azhurohet me Recordset-in e ri t t gjitha ' fletparaqitjeve q kan at numr t indeksit Dim strQuery As String 'strQuery = "SELECT * FROM Fleteparaqitjet WHERE [Nr i Indeksit] = '" _ '& DataList1.BoundText & "'" strQuery = "SELECT * FROM Studentet INNER JOIN Fleteparaqitjet ON " _ & "Studentet.[Numri i Indeksit]=Fleteparaqitjet.[Nr i Indeksit] " _ & " WHERE [Nr i Indeksit] = '" & DataList1.BoundText & "'" Wiew adoFleteparaqitjet .RecordSource = strQuery .Refresh End Wiew Wiew DataGrid1 .ClearFields .ReBind End With End Sub Private Sub DataCombo1_Change() Dim strQuery As String strQuery = "SELECT * FROM Fleteparaqitjet WHERE [Nr i Indeksit] = '" _ & DataCombo1.BoundText & "'" 'strQuery = "SELECT * FROM Studentet INNER JOIN Fleteparaqitjet ON " _ '& "Studentet.[Numri i Indeksit]=Fleteparaqitjet.[Nr i Indeksit] " _ '& " WHERE [Nr i Indeksit] = '" & DataCombo1.BoundText & "'"

290

Visual Basic

Format MDI

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


291

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
292

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

293

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

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

Fig. 5.15a DataEnvironment

Fig. 5.15b Dritarja Project Explorer

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.

295

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
296

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

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

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


299

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

300

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


301

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;

302

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

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

304

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

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

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

307

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). 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.7a Data Project

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.

308

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

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.

310

Visual Basic

Format MDI

Fig. 6.8i Ruajtja e profilit

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.

Fig. 6.8k Aplikacioni i krijuar

311

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

312

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.

313

Visual Basic

Format MDI

Fig. 6.9g Ruajtja e profilit

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.

314

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:
315

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
316

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

317

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
318

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

Visual Basic

Modulet

Fig. 6.11b Add Module

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

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

Fig. 6.12 Forma e projektit Kodi i modulit Shuma.bas:

321

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.

322

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.

323

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

Fig. 6.13 Kontrolla ActiveX

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

324

Visual Basic
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

Modulet

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

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

326

Visual Basic

Modulet

4. Zgjedhim kontrolln DataRepeater1 dhe n dritaren Properties klikojm tiparin DataSource dhe zgjedhim Adodoc1, si burim t t dhnave. 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.

Fig. 6.13d RepeatedControlName

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

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

328

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
329

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

330

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

Fig. 6.14a Krijimi i modulit t klass

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
331

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

Visual Basic

Ndihma

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

333

Visual Basic

Ndihma

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

Fig. 6.14c Kontrollat n form


Pjesa General Declarations Private Stud As CStudent Private Sub Form_Load() Set Stud = New CStudent

334

Visual Basic

Ndihma

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

Visual Basic
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

Ndihma

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 Public Property Let EmriProcedures(ByVal vVleraeRe as Tipi) m_EmriVariables = vVleraeRe (kodi tjetr opcional) End Property

336

Visual Basic

Ndihma

Pasi variablat antare deklarohen si Private, ato nuk kan qasje nga jasht por vetm prmes procedurave Property, t cilat jan t afta q t ndrmarrin edhe hapa t tjer t nevojshm prmes ndryshimeve n variabln antare. 7. Pr seciln metod n hapin 2, krijo procedurn Sub ose Function pr t kryer ndonj veprim. - Prmes urdhrit,
Set varObject = Nothing

variabla e objektit ndahet nga objekti aktual dhe liron memorjen e prdorur. Variabla e objektit, e deklaruar prbrenda procedurs pushon s ekzistuari dhe efekti sht i njjt sikur kur variabla bhet Nothing (asgj), prmes urdhrit t prmendur. - Programi me modul t klass ka s paku tri komponente: formn, kodin e forms dhe kodin e modulit t klass. Edhe pse menya View ofron qasje n form (Alt+V/B) dhe n kodin e forms (Alt+V/C), vetm prmes dritares Project Explorer sigurohet qasja n t trija. Pr t shikuar kodin e modulit t klass, klikoni dy her n emrin e klass n Project Exlporer. - Pr t insertuar ndonj modul ekzistues t klass n program, n menyn Project zgjedhet Add Class Module, e pastaj n dritaren Add Class Module (Fig. 6.14a) zgjedhet faqja Existing (ekzistues) dhe zgjedhet fajlli i prkats modulit t klass (*.cls). - Pr t fshir klasn prej programit, n dritaren Project Explorer klikohet me t djathtn dhe n menyn q hapet zgjedhet Remove EmriKlass. - Bashksia e tipareve, metodave dhe ngjarjeve t klass quhet interfejs i klass (Class Interface). Mund t ekzistojn dy klasa t cilat kan interfejs t njjt, edhe pse kryejn veprime t caktuara n mnyra t ndryshme. Kjo veti e klasave, kur dy klasa kan sjellje (veprime) t cilat jan t emrtuara njsoj dhe kan n esenc qllim t njjt por implementim t ndryshm, njihet si Polimorfizm (Polymorphism). - Kur sht n pyetje vendimi pr zgjedhje t elementit t caktuar t interfejsit, se a duhet t jet metod apo tipar (Property), si rregull vlen q, tiparet duhet ti qasen t dhnave kurse metodat kryejn veprime n to. - Fjala ByVal (shkurtesa pr By Value - sipas vlers), e cila insertohet automatikisht para parametrave n urdhrat Property Let kur ata krijohen prmes menys Tools, sht opcionale. Mnyra standarde e prcjelljes s argumenteve n 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.
337

Visual Basic

Ndihma

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

Visual Basic
EmriKoleksionit.Count

Ndihma

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 (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):

339

Visual Basic
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

Ndihma

Shembull: Duke u bazuar n shembullin paraprak (forma, kontrollat dhe kodi i njjt), realizojm nj projekt t ri, n t cilin do t krijojm koleksion t objekteve Stud (studentve). Kodi i modulit t klass mbetet i njjt si n shembullin e kaluar, vetm se emrtojm CStudent3 (Studnet3.cls), kurse n kodin e forms duhet br ndryshimet vijuese:
Dim Koleksioni As New Collection Private Sub cmdInserto_Click() Dim Stud As Object Set Stud = New CStudent3 'Lexo vlerat e ruajtura ne Text-Box-e Stud.NrIndeksit = txtNrIndeksit Stud.Emri = txtEmri Stud.Mbiemri = txtMbiemri Stud.PShkrim = Val(txtPShkrim) Stud.PGoje = Val(txtPGoje) 'Shto elementin n koleksion Koleksioni.Add Stud 'Pastro Tekst-bokset txtNrIndeksit.Text = "" txtEmri.Text = "" txtMbiemri.Text = "" txtPShkrim.Text = "" Pjesa General - Declarations

'Stud si objekt 'Krijo objekt t ri

340

Visual Basic
txtPGoje.Text = "" picNota.Print "Rekordi i studentit u regjistrua" End Sub

Ndihma

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

341

Visual Basic
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

Ndihma

Pasi t regjistrohen t dhnat pr disa student (duke plotsuar fushat dhe duke klikuar tastin Inserto t dhnat), pr t paraqitur rezultatin pr studentin e caktuar, klikojm tastin Paraqite rezultatin e studentit t caktuar (cmdStudenti) dhe n ekran do t paraqitet InputBox-i i cili krkon t jipet numri i indeksit. Pasi t jipet vlera dhe t shtypet OK, n ekran do t paraqitet rezultati i studentit me numrin e dhn t indeksit. (Shembulli: Studentet-Koleksioni-Key.vbp).

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.

342

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:


343

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.


344

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.

345

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

346

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

Fig. 6.15a Add Form Log in Dialog

Fig. 6.15b Forma frmLogin

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

347

Visual Basic
LoginSucceeded = False Me.Hide End Sub

Ndihma

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

348

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.

349

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:
350

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

351

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

352

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 .

353

Visual Basic

Ndihma

Dritarja kryesore

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.

354

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

Fig. 6.3a Dritarja Make Project

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

Fig 6.4a Package & Deployment Wizard

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
356

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

357

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

358

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 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. 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.4h Lokacioni i instalimit Me Next, vazhdohet n hapin e ardhshm.

Fig. 6.4i Fajllat e prbashkt


359

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

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 Kontrolla TreeView ListView Slider ImageList ImageCombo Toolbar StatusBar ProgressBar TabStrip Animation UpDon MonthView DateTimePicker FlatScrollBar

MsComct2.ocx

361

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

Fig. 6.16 Kontrolla WebBrowser 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

362

Visual Basic
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

Prmbajtja

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

363

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

Fig. 6.16b Moduli dhe DHTML dizajneri n dritaren ProjectExplorer

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
364

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

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

366

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.

367

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
368

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.

369

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

370

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 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.18b Insertimi i kontrollave

Fig. 6.18c Definimi i tipareve t kontrolls

371

Visual Basic

Prmbajtja

Fig. 6.18d Kodi pr objektin e insertuar

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

Fig. 6.18e Faqja n dritaren e Internet Explorerit

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>

372

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.

373

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

Fig. 7.1a Ndihma n Word

Fig. 7.1b Ndihma n Excel


374

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

Fig. 7.3 Incizimi i makros

375

Visual Basic

Prmbajtja

Fig. 7.4a Incizimi i makros n Word

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

Fig. 7.4a Incizimi i makros n PowerPoint

376

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

Fig. 7.5 Dritarja Macros

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.

377

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

378

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

Visual Basic

Prmbajtja

Fig. 7.7b Control Toolbox

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

Fig. 7.8 Modi i dizajnimit

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.

380

Visual Basic

Prmbajtja

Fig. 7.9a Dritarja e tipareve Properties

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

381

Visual Basic
.Font.Name = "Arial" .Font.Size = 24 .InsertParagraphAfter End With ActiveDocument.PrintOut End Sub

Prmbajtja

Shtypja

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.

382

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

383

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

Prmbajtja

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 'Formati i faqes

384

Visual Basic
'ActiveSheet.PrintOut 'Shtypja

Prmbajtja

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.

385

Visual Basic

Prmbajtja

Fig. 7.11 Dritarja Properties, faqja Events

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

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

386

Visual Basic
MsgBox "Jepni numrin e indeksit" DoCmd.Close End If Filtri = "[Numri i Indeksit]=""" & NrIndx & """ " DoCmd.OpenForm "Forma Studentet", acNormal, , Filtri End Sub

Prmbajtja

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.

387

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

388

Visual Basic
67 68 70 71 74 75 76 91 92 93 94 97

Prmbajtja

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

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

389

Visual Basic
393 394 400 402 419 422 423 424 425 429 430 432 438 440 442

Prmbajtja

443 445 446 447 448 449 450 451 452 453 454 455 457 458 459 460 461

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

390

Visual Basic
462 463 480 481 482 483 484

Prmbajtja

485 486 520 521 735 744 746 31001 31004 31018 31027 31032 31036 31037

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

391

Visual Basic

Prmbajtja

Shtojca B
Konstantet pr kontrollat CommonDialog
File Open/Save Dialog Box Flags
Konstanta - Constant CdlOFNAllowMultiselect Vlera - Value &H200 Prshkrimi - Description 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. 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 . Prdor dialog-box-in e ngjashm me Explorer-in. Tregon se ekstenzioni i emrit t kthyer t fajllit sht i ndryshm prej ekstenzionit t definuar me tiparin DefaultExt. Specifikon se shfrytzuesi mund t jap vetm emrat e fajllave ekzistues. Nse jepet emr i gabuar lajmrohet vrejtja. Ky flag, automatikisht definon flagun CdlOFNPathMustExist. Bn q dialog-box-i t paraqes tastin Help (Ndihma) Fsheh fushn pr zgjedhje (Check-Box-in) Read Only (Vetm pr lexim) Prdori emrat e gjat. Detyron dialog-box-in, q t vendos folderin aktual n folderin q ishte kur u hap dialog-box-i. Mos i dereferenco lidhjet e shell-it. Mos i prdor emrat e gjat.

cdlOFNCreatePrompt

&H2000

cdlOFNExplorer CdlOFNExtensionDifferent

&H80000 &H400

CdlOFNFileMustExist

&H1000

CdlOFNHelpButton cdlOFNHideReadOnly CdlOFNLongNames CdlOFNNoChangeDir

&H10 &H4 &H200000 &H8

CdlOFNNoDereferenceLinks cdlOFNNoLongNames

&H100000 &H40000

392

Visual Basic
CdlOFNNoReadOnlyReturn &H8000

Prmbajtja
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. Specifikon se dialog lejon karakteret invalide n emrin e kthyer t fajllit. Bn q dialogu Save As t gjeneroj MsgBox nse fajlli i zgjedhur veq ekziston. Shfrytzuesi duhet t vrtetoj a t bhet mbishkrimi i fajllit. 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. 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. Specifikon q gabimet e prdorimit t prbashkt, t injorohen (sharing violation errors).

cdlOFNNoValidate cdlOFNOverritePrompt

&H100 &H2

cdlOFNPathMustExist

&H800

CdlOFNReadOnly

&H1

CdlOFNShareAware

&H4000

Color Dialog Box Flags


Konstanta - Constant CdlCCFullOpen CdlCCShowHelp CdlCCPreventFullOpen Vlera - Value &H2 &H8 &H4 Prshkrimi - Description Paraqitet tr dialogu, duke prfshir edhe seksionin Define Custom Colors. Bn q dialogu t paraqes tastin Help. Deaktivizon tastin Define Custom Colors dhe pengon shfrytzuesin q t definoj ngjyra t zakonshme. Cakton vlern fillestare t ngjyrs pr dialog-box.

CdlCCRGBInit

&H1

393

Visual Basic

Prmbajtja

Fonts Dialog Box Flags


Konstanta - Constant cdlCFANSIOnly Vlera - Value &H400 Prshkrimi - Description 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. Mundson tastin Apply (aplikoji) n dialog. 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. Specifikon se dialogu mundson efektet Strikethrough (i bie teksit me vij), underline (nnvizimi) dhe efektet e ngjyrs. Specifikon se dialogu zgjedh vetm fontet me latrsi fikse. Specifikon se mesazhi i gabimit paraqitet nse shfrytzuesi tenton t zgjedh fontin ose stilin q nuk ekziston. Bn q dialogu t paraqes tastin Help. Specifikon se dialogu zgjedh vetm fontet n rangun e madhsis t definuar me tiparet Min dhe Max. Ssht zgjedhur emri i fontit. Specifikon se dialogu nuk lejon GDI (graphic device interface) simulimet e fonteve Ssht zgjedhur madhsia e fontit. Ssht zgjedhur stili i fontit. Specifikon se dialogu nuk lejon zgjedhje t fonteve vektoriale. Bn q dialogu t listoj vetm fontet e prkrahura prej shtypsit (printerit), t specifikuara me tiparin hDC. Specifikon se dialogu lejon vetm zgjedhjen e fonteve q mund t shkallzohen. Bn q dialogu t listoj vetm fontet e ekranit t prkrahura prej sistemit.

CdlCFApply CdlCFBoth

&H200 &H3

CdlCFEffects

&H100

cdlCFFixedPitchOnly cdlCFForceFontExist

&H4000 &H10000

cdlCFHelpButton cdlCFLimitSize

&H4 &H2000

cdlCFNoFaceSel cdlCFNoSimulations cdlCFNoSizeSel cdlCFNoStyleSel cdlCFNoVectorFonts cdlCFPrinterFonts

&H80000 &H1000 &H200000 &H100000 &H800 &H2

cdlCFScalableOnly cdlCFScreenFonts

&H20000 &H1

394

Visual Basic
CdlCFTTOnly CdlCFWYSIWYG &H40000 &H8000

Prmbajtja
Specifikon se dialogu lejon zgjedhjen vetm t fonteve TrueType Fonts. 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 cdlPDAllPages CdlPDCollate Vlera Value &H0 &H10 Prshkrimi - Description Kthen ose cakton gjendjen e opcionit All Pages (t gjitha faqet). Kthen ose cakton gjendjen e Check-Box-it Collate (Mbledh, sistemo). Pamundson Check-box-in Print To File. Bn q dialogu t paraqes tastin Help. Fsheh Check-Box-in Print To File. Pamundson opcionin Pages dhe kontrolln e shoqruar Edit. Pamundson opcionin Selection. Pengon mesazhin e vrejtjes q paraqitet kur nuk ekziston printeri default. Kthen ose cakton gjendjen e opcionit Pages. Bn q sistemi t paraqes dialogun Print Setup n vend t dialogut Print. Kthen ose cakton gjendjen e check-box-it Print To File. Kthen tiparin Device Context pr zgjedhjen e printerit, t br n dialog. Tipari kthehet n dialog-box-in hDC. Kthen emrat e printerve standard. 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.

cdlPDDisablePrintToFile &H80000 cdlPDHelpButton cdlPDHidePrintToFile cdlPDNoPageNums cdlPDNoSelection CdlPDNoWarning cdlPDPageNums cdlPDPrintSetup cdlPDPrintToFile cdlPDReturnDC &H800 &H100000 &H8 &H4 &H80 &H2 &H40 &H20 &H100

cdlPDReturnDefault cdlPDReturnIC

&H400 &H200

395

Visual Basic
cdlPDSelection &H1

Prmbajtja
Kthen ose cakton gjendjen e opcionit Selection. Nse nuk jan zgjedhur as cdlPDPageNums as cdlPDSelection, opcioni All sht i zgjedhur. 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.

CdlPDUseDevModeCop ies

&H40000

Help Constants
Kontanta - Constant cdlHelpCommandHelp CdlHelpContents CdlHelpContext cdlHelpContextPopup CdlHelpForceFile cdlHelpHelpOnHelp CdlHelpIndex CdlHelpKey cdlHelpPartialKey CdlHelpQuit cdlHelpSetContents cdlHelpSetIndex Vlera - Value &H102 &H3 &H1 &H8 &H9 &H4 &H3 &H101 &H105 &H2 &H5 &H5 Prshkrimi - Description Paraqite ndihmn pr nj komand t veant. Paraqet pikn e kontekstit n Help Fajllin aktual. Paraqet ndihm pr nj pik t veant. Paraqet pikn e identifikuar me context number (numrin e kontekstit) Krijon Help file i cili paraqet tekstin vetm n nj font. Paraqet ndihm pr prdorimin e vet Help aplikacionit. Paraqet indeksin e Help File-it t specifikuar. Paraqet ndihm pr tastier t veant. Thrret search engine n Windows Help Lajmron Help aplikacionin q Help File i specifikuar nuk prdoret m. Cakton temn e caktuar si prmbajtje. Cakton indeksin aktual pr multi-index Help

396

Visual Basic

Prmbajtja

Shtojca C
Konstantet e Visual Basic-ut
Ngjyrat Kontanta - Constant vbBlack vbRed vbGreen vbYellow vbBlue vbMagenta vbCyan vbWhite 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) Vlera - Value &H0 &HFF &HFF00 &HFFFF &HFF0000 &HFF00FF &HFFFF00 &HFFFFFF Prshkrimi - Description E zez - Black E kuqe - Red E gjelbr - Green E verdh - Yello E kaltr - Blue E purpurt - Magenta E kaltr e qel - Cyan E bardh - White

Ngjyra Yellow Brown Blue Purple Cyan Black Magenta Navy blue Red Gray Olive Green

E verdh E kaft E kaltr E purpurt E kaltr e qelt E zez E vjollce E kaltr marine E kuqe E hirt E ullirit E gjelbr

Ngjyrat e fituara me funksionin QBCOlor


Numri 0 1 2 3 4 Ngjyra Black e zez Blue e kalt%r Green e gjelbr Cyan cian Red e kuqe Numri 8 9 10 11 12 Ngjyra Gray ngjyr hiri Light Blue e kaltr e qelt Light Green e gjelbr e qelt Light Cyan Cian e qelt Light Red e kuqe e qelt

397

Visual Basic
5 6 7 Magenta magjenta Yellow e verdh White e bardh 13 14 15

Prmbajtja
Light Magenta magjenta e qelt Light Yellow e verdh e qelt Bright White e bardh e kthjellt

Ngjyrat e sistemit Kontanta - Constant vbScrollBars vbDesktop vbActiveTitleBar vbInactiveTitleBar vbMenuBar vbWindowBackground vbWindowFrame vbMenuText vbWindowText vbTitleBarText vbActiveBorder vbInactiveBorder vbApplicationWorkspace vbHighlight vbHighlightText vbButtonFace vbButtonShadow vbGrayText vbButtonText Vlera - Value &H80000000 &H80000001 &H80000002 &H80000003 &H80000004 &H80000005 &H80000006 &H80000007 &H80000008 &H80000009 &H8000000A &H8000000B &H8000000C &H8000000D &H8000000E &H8000000F &H80000010 &H80000011 &H80000012 Prshkrimi - Description Njgyra e shiritit rrshqits Ngjyra e desktop-it Ngjyra e shiritit t titullit pr dritaren aktive Ngjyra e shiritit t titullit pr dritaren joaktive Ngjyra e prapavis s menys Ngyra e prapavis s dritares Njgyra e kornizs s dritares Ngjyra e tekstit n meny Njgyra e tekstit n dritare Ngjyra e tekstit n tiparin Caption, Size-Box dhe shigjetn rrotulluese Ngjyra e kufirit t dritares aktive Ngjyra e kufirit t dritares joaktive Ngjyra e prapavis s aplikacioneve MDI Ngjyra e parapvis s elementeve t zgjedhura n kontroll Ngjyra e tekstit t elementeve t zgjedhura n kontroll Ngjyra ose hija n faqe (fytyr) t tasteve komanduese Ngjyra e hijes n skaje t tastit komandues Teksti i deaktivizuar (i hirsuar) Ngjyra e tekstit n tastet e shtypura

398

Visual Basic
vbInactiveCaptionText vb3DHighlight vb3DDKShadow vb3DLight vb3DFace vb3Dshadow vbInfoText vbInfoBackground &H80000013 &H80000014 &H80000015 &H80000016 &H8000000F &H80000010 &H80000017 &H80000018

Prmbajtja
Ngjyra e tekstit n tiparin Caption joaktiv Ngjyra theksuese pr elementet me paraqitje 3D Ngjyra e hijs m t errrt pr elementet me paraqitje 3D Ngjyra e e dyt m e qelt 3D pas vb3Dhighlight Ngjyra e faqs *fytyrs) s tekstit Ngjyra e hijs s tekstit Ngjyra e tekstit n ToolTips Ngjyra e prapavis n ToolTips

399

Visual Basic

Prmbajtja

Konstantet e forms - Form Constants


Parametrat e paraqitjes - Show Parameters Konstatna - Constant VbModal vbModeless Vlera - Value 1 0 Prshkrimi - Description Form modale - Modal form Form jo modale - Modeless form

Metoda Arrange pr format MDI - Arrange Method for MDI Forms Konstatna - Constant VbCascade VbTileHorizontal VbTileVertical VbArrangeIcons Vlera - Value 0 1 2 3 Prshkrimi - Description N kaskad (MDI format fmij, t paminimizuara) Horizontalisht (MDI format fmij, t paminimizuara) Vertikalisht (MDI format fmij, t paminimizuara) Rregulloi ikonat (n form rrjete) (pr MDI format fmij t minimizuara)

Tipari gjendja e dritares - WindowState Property Konstatna - Constant vbNormal vbMinimized vbMaximized Vlera - Value 0 1 2 Pwrshkrimi Description Normale Normal E minimizuar Minimized E maksimalizuar Maximized

Konstantet e grafiks - Graphics Constants


Tipari i stilit t mbushjes - FillStyle Property Konstatna - Constant vbFSSolid vbFSTransparent vbHorizontalLine vbVerticalLine vbUpwardDiagonal vbDownwardDiagonal vbCross Vlera - Value 0 1 2 3 4 5 6 Prshkrimi Description E plot - Solid E tejdukshme - Transparent Vij horizontale - Horizontal line Vij vertikale - Vertical line Diagonale e eprme - Upard diagonal Diagonale e poshtme - Donard diagonal Kryq - Cross

400

Visual Basic
vbDiagonalCross 7 Kryq diagonal - Diagonal cross

Prmbajtja

Tipari ScaleMode - ScaleMode Property Konstatnat - Constant VbUser VbTwips VbPoints VbPixels VbCharacters VbInches VbMillimeters VbCentimeters VbHiMetric VbContainerPosition VbContainerSize Vlera - Value 0 1 2 3 4 5 6 7 8 9 10 Prshkrimi - Description I/E shfrytzuesit - User Twip - Tips Pika - Points Piksela - Pixels Karaktere - Characters Ina - Inches Milimetra - Millimeters Centimetra - Centimeters HiMetric Njesi e prdorur prej bartsit (kontejnerit) t kontrolls pr t prcaktuar pozitn e kontrolls Njesi e prdorur prej bartsit (kontejnerit) t kontrolls pr t prcaktuar madhsin e kontrolls

Tipari PaletteMode - PaletteMode Property Kontanta - Constant VbPaletteModeHalfTone VbPaletteModeUseZOrder VbPaletteModeCustom VbPaletteModeContainer VbPaletteModeNone VbPaletteModeObject Vlera - Value 0 1 2 3 4 5 Prshkrimi Description Paleta Halftone (gjysm toni) e sistemit Prdore paletn e kontrolls m t lart q ka palet Prdore paletn e prcaktuar n tiparin Palette Prdore paletn e bartsit pr bartsit q prkrahin tiaprin Palette t ambientit Mos prdor ndonj palet Prdore paletn e dizajnerit ActiveX

401

Visual Basic

Prmbajtja

Konstantet e vizatimit - Drawing Constants


Tipari DrawStyle - DrawStyle Property Kontanta - Constant VbSolid VbDash VbDot VbDashDot VbDashDotDot VbInvisible VbInsideSolid Vlera - Value 0 1 2 3 4 5 6 Prshkrimi - Description Vij e plot - Solid E ndrprer - Dash Pika Dot Viz-pik Dash-dot Viz-pik-pik - Dash-dot-dot E padukshme - Invisible I plot prbrenda - Inside solid

Konstantet e rreshtimit - Alignment Constants


Tipari Align (rreshto) - Align Property Kontanta - Constant VbAlignNone VbAlignTop VbAlignBottom VbAlignLeft VbAlignRight Vlera - Value 0 1 2 3 4 Prshkrimi - Description Madhsia dhe pozita t caktuara n modin e dizajnimit ose n kod Rreshto kontrollat n krye t forms Rreshto kontrollat n fund t forms Rreshto kontrollat n ann e majt t forms Rreshto kontrollat n ann e djatht t forms

Tipari Alignemnet (rreshtimi) - Alignment Property Kontanta - Constant vbLeftJustify vbRightJustify vbCenter Vlera - Value 0 1 2 Prshkrimi Description Rreshtimi majtas - Left align Rreshtimi djathtas - Right align Qendr - Center

402

Visual Basic

Prmbajtja

Konstantet e tiparit Stili i kufirit - BorderStyle Property Constants


Tipari BorderStyle i forms - BorderStyle Property (Form) Kontanta - Constant vbBSNone vbFixedSingle vbSizable vbFixedDialog vbFixedToolWindow vbSizableToolWindow Vlera - Value 0 1 2 3 4 5 Prshkrimi Description Pa kufi - No border Nj, i fiksuar - Fixed single I ndryshuashm (vetm format) - Sizable (forms only) Dialog, i fiksuar - Fixed dialog (forms only) Dritarja e veglave t fiksuara - Fixed tool indo Dritarja e veglave t ndryshueshme - Sizable tool window

Tipari BorderStyle i kontrollave Shape dhe Line BorderStyle Property (Shape and Line) Kontanta - Constant vbTransparent vbBSSolid vbBSDash vbBSDot vbBSDashDot vbBSDashDotDot vbBSInsideSolid Vlera - Value 0 1 2 3 4 5 6 Prshkrimi Description I tejdukshm - Transparent I plot - Solid Viz - Dash Pik - Dot Viz-pik Dash-dot Viz-pik-pik - Dash-dot-dot E padukshme - Invisible

Konstantet e objektit Clipboard - Clipboard Object Constants


Kontanta - Constant vbCFRTF vbCFLink vbCFText vbCFBitmap Vlera - Value -16639 -16640 1 2 Prshkrimi - Description Rich Text Format (.rtf file) Informat pr bisd DDE - DDE conversation information Text (.txt file) Bitmap (.bmp file)

403

Visual Basic
vbCFMetafile vbCFDIB vbCFPalette vbCFEMetaFile vbCFFiles 3 8 9 14 15 Metafile (.mf file) Device-independent bitmap Color palette Enhanced metafile (.emf file)

Prmbajtja

Lista e fajllave prej indos Explorer-it - File list from indos Explorer

Konstantet e kontrollave - Control Constants


Kontrolla ComboBox Kontanta - Constant VbComboDropdown VbComboSimple VbComboDropdownList Kontrolla CheckBox Kontanta - Constant VbUnchecked VbChecked VbGrayed Kontrolla ListBox Kontanta - Constant vbListBoxStandard vbListBoxCheckBox vbMultiSelectNone vbMultiSelectSimple vbMultiSelectExtended Kontrolla ScrollBar Kontanta - Constant VbSBNone Vlera - Value Prshkrimi Description 0 Asnjra - None Vlera - Value Prshkrimi Description 0 1 0 1 2 Standard Windows ListBox Vlerat nw ListBox prmbajnw CheckBox-a t selektueshwm Pa zgjedhje t shumfisht Selektimi i shumfisht i thjesht Selektimi i shumfisht i zgjeruar Vlera - Value Prshkrimi Description 0 1 2 I/E pazgjedhur - Unchecked I/E zgjedhur - Checked I/E deaktivizuar (hirsuar) - Grayed Vlera - Value Prshkrimi Description 0 1 2 Combo me list rnse - Dropdown Combo Comnbo i thjesht - Simple Combo List rnse - Dropdown List

404

Visual Basic
VbHorizontal VbVertical vbBoth Kontrola Shape Kontanta - Constant vbShapeRectangle vbShapeSquare VbShapeOval VbShapeCircle vbShapeRoundedRectangle vbShapeRoundedSquare Vlera - Value Prshkrimi - Description 0 1 2 3 4 5 Drejtkndsh - Rectangle Katror - Square Elips - Oval Rreth - Circle 1 2 3 Horizontal Vertical T dyja - Both

Prmbajtja

Drejtkndsh i rrumbullaksuar - Rounded rectangle Katror i rrumbullaksuar - Rounded square

Konstantet e kontrolls Data - Data Control Constants


Konstantet e ngjarjes Error - Error Event Constants Kontanta - Constant VbDataErrContinue VbDataErrDisplay Vlera - Value Prshkrimi Description 0 1 Vazhdo - Continue Standard, paraqite mesazhin e gabimit (Default) Display the error message

Konstantet e veprimit t ngjarjes Verifikimi i vlefshmris


Validate Event Action Constants Kontanta - Constant VbDataActionCancel VbDataActionMoveFirst VbDataActionMovePrevious VbDataActionMoveNext VbDataActionMoveLast VbDataActionAddNew Vlera - Value 0 1 2 3 4 5 Prshkrimi Description Anulo veprimin kur dilet prej procedurs Metoda kalo tek i pari - MoveFirst method Metoda kalo tek i prparshmi - MovePrevious method Metoda kalo tek i ardhshmi - MoveNext method Metoda kalo tek i fundit - MoveLast method Metoda shto t ri AddNew method

405

Visual Basic
VbDataActionUpdate VbDataActionDelete VbDataActionFind VbDataActionBookmark VbDataActionClose VbDataActionUnload 6 7 8 9 10 11

Prmbajtja
Veprimi azhuro (jo azhuro rekordin) Update operation (not UpdateRecord) Metoda fshije - Delete method Metoda gjeje - Find method Tipari Bookmark sht definuar - The Bookmark property is set Metoda mbylle - Close method Forma po mbyllet (shkarkohet) - The form is being unloaded

Konstantet pr veprimin Fillimi i fajllit - Beginning-Of-File Action Constants Kontanta - Constant VbMoveFirst VbBOF Vlera - Value 0 1 Prshkrimi Description Kalo tek rekordi i par - Move to first record Kalo n fillim t fajllit - Move to beginning of file

Konstantet e veprimit Fundi i fajllit - End-Of-File Action Constants Kontanta - Constant VbMoveLast VbEOF VbAddNew Vlera - Value 0 1 2 Prshkrimi Description Kalo tek rekordi i fundit Move to last record Kalo n fund t fajllit - Move to end of file Shto rekord t ri n fund t fajllit - Add new record to end of file

Konstantet e tipit Recordset - Recordset-Type Constants Kontanta - Constant vbRSTypeTable vbRSTypeDynaset vbRSTypeSnapShot Vlera - Value 0 1 2 Prshkrimi Description Rekordset i tipit Tabel - Table-type recordset Rekordset i tipit Dynaset - Dynaset-type recordset Rekordset i tipit Snapshot - Snapshot-type recordset

406

Visual Basic

Prmbajtja

Konstantet e kodit t tasteve - Key Code Constants


Kodet e tasteve - Key Codes Kontanta - Constant vbKeyLButton vbKeyRButton vbKeyCancel vbKeyMButton vbKeyBack vbKeyTab vbKeyClear vbKeyReturn vbKeyShift vbKeyControl vbKeyMenu vbKeyPause vbKeyCapital vbKeyEscape vbKeySpace vbKeyPageUp vbKeyPageDown vbKeyEnd vbKeyHome vbKeyLeft vbKeyUp vbKeyRight vbKeyDown vbKeySelect vbKeyPrint vbKeyExecute Vlera - Value 1 2 3 4 8 9 12 13 16 17 18 19 20 27 32 33 34 35 36 37 38 39 40 41 42 43 Prshkrimi - Description Tasti i majt i mausit - Left mouse button Tasti i djatht i mausit - Right mouse button Tasti Cancel - CANCEL key Tasti i mesm i mausit - Middle mouse button Tasti Backspace Tasti Tab Tasti Clear Tasti Enter Tasti Shift Tasti CTRL Tasti MENU Tasti PAUSE Tasti CAPS LOCK Tasti ESC Tasti SPACEBAR (Hapsira) Tasti PAGE UP Tasti PAGE DON Tasti END Tasti HOME Shigjeta majtas Shigjeta lart Shigjeta djathtas Shigjeta posht Tast SELECT Tasti PRINT SCREEN Tasti EXECUTE

407

Visual Basic
vbKeySnapshot vbKeyInsert vbKeyDelete vbKeyHelp vbKeyNumlock 44 45 46 47 144 Tasti SNAPSHOT Tasti INS Tasti DEL Tasti HELP Tasti NUM LOCK

Prmbajtja

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 vbKeyA vbKeyB vbKeyC vbKeyD vbKeyE vbKeyF vbKeyG vbKeyH vbKeyI vbKeyJ vbKeyK vbKeyL vbKeyM vbKeyN vbKeyO vbKeyP vbKeyQ vbKeyR vbKeyS vbKeyT vbKeyU Vlera - Value 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 Prshkrimi - Description A B C D E F G H I J K L M N O P Q R S T U

408

Visual Basic
vbKeyV vbKeyW vbKeyX vbKeyY vbKeyZ 86 87 88 89 90 V W X Y Z

Prmbajtja

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 vbKey0 vbKey1 vbKey2 vbKey3 vbKey4 vbKey5 vbKey6 vbKey7 vbKey8 vbKey9 Vlera - Value 48 49 50 51 52 53 54 55 56 57 Prshkrimi - Description 0 1 2 3 4 5 6 7 8 9

Tastet n tastiern numerike - Keys on the Numeric Keypad Kontanta - Constant vbKeyNumpad0 vbKeyNumpad1 vbKeyNumpad2 vbKeyNumpad3 vbKeyNumpad4 vbKeyNumpad5 vbKeyNumpad6 vbKeyNumpad7 vbKeyNumpad8 Vlera - Value Prshkrimi - Description 96 97 98 99 100 101 102 103 104 0 1 2 3 4 5 6 7 8

409

Visual Basic
vbKeyNumpad9 vbKeyMultiply vbKeyAdd vbKeySeparator vbKeySubtract vbKeyDecimal vbKeyDivide 105 106 107 108 109 110 111 9 Shenja e shumzimit (*) Shenja PLUS (+) ENTER Shenja MINUS (-) Pika dhjetore (.) Shenja e pjestimit (/)

Prmbajtja

Tastet funksionale - Function Keys Kontanta - Constant vbKeyF1 vbKeyF2 vbKeyF3 vbKeyF4 vbKeyF5 vbKeyF6 vbKeyF7 vbKeyF8 vbKeyF9 vbKeyF10 vbKeyF11 vbKeyF12 vbKeyF13 vbKeyF14 vbKeyF15 vbKeyF16 Vlera - Value Prshkrimi - Description 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16

410

Visual Basic

Prmbajtja

Konstantet e objektit Picture - Picture Object Constants


Kontanta - Constant VbPicTypeNone vbPicTypeBitmap vbPicTypeMetafile VbPicTypeIcon vbPicTypeEMetaFile Vlera - Value Prshkrimi - Description 0 1 2 3 4 Tipi Icon Tipi Bitmap Tipi Metafile Tipi Icon Tipi Enhanced metafile

Konstantet e tipit Variant - Variant Type Constants


Kontanta - Constant VbVEmpty VbVNull VbVInteger VbVLong vbVSingle vbVDouble vbVCurrency vbVDate vbVString Vlera - Value Prshkrimi - Description 0 1 2 3 4 5 6 7 8 E zbrazt (e painicializuar) Empty (uninitialized) Null (pa t dhna t vlefshme) Null (no valid data) Integer Long integer Tipi Single-precision me pik t lvizshme Tipi Double-precision me pik t lvizshme Currency (scaled integer) data type Dat String

Konstantet VarType (Tipi i variablave)


Konstantet vijuese mund t prdoren n program n vend t vlerave aktuale
Kontanta - Constant vbEmpty vbNull vbInteger vbLong vbSingle Vlera - Value Prshkrimi - Description 0 1 2 3 4 Variabla e painicializuar (standard) Nuk prmban t dhna t vlefshme Integer Numra t plot Long integer Numr me pik t lvizshme - precizitet

411

Visual Basic
Single vbDouble vbCurrency vbDate vbString vbObject vbError vbBoolean vbVariant vbDataObject vbDecimal vbByte vbUserDefinedType 5 6 7 8 9 10 11 12 13 14 17 36

Prmbajtja

Numr me pik t lvizshme - precizitet Doube Valut Dat String (ndryshore tekstuale) Objekt Gabim Boolean Variant (prdoret vetm pr vargje t konstantave) Data access object Objekt pr qasje n t dhna Decimal shifr decimale Byte Bajt Variants that contain user-defined types Varianta q prmbajn tipe t definuara prej shfrytzuesit Array varg

vbArray

8192

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 vbCrLf vbCr vbLf vbNullChar vbNullString Vlera - Value Chr(13) + Chr(10) Chr(13) Chr(10) Chr(0) String having value 0 Prshkrimi - Description Kombinimi Enter rresht i ri Karakteri pr Enter Karakteri rresht i ri Karakter me vler 0 Jo njsoj si string zero (), prdoret pr thirrjen e procedurave t jashtme

412

Visual Basic
vbObjectError -2147221504

Prmbajtja
Numrat e definuar prej shfrytzuesit duhet t jen m t mdhnj se kjo vler. P.sh:

Err.Raise Number = vbObjectError + 1000


vbTab vbBack Chr(9) Chr(8) Tab character Karakteri Tab Backspace character Karakteri BackSpace

413

Visual Basic

Prmbajtja

414

Visual Basic

Prmbajtja

PRMBAJTJA:
PARATHNIE ............................................................................................. 1 HYRJE .......................................................................................................... 3 INSTALIMI ................................................................................................... 4 Visual Basic 6.0 .................................................................................. 4 FILLET E VISUAL BASIC-UT ......................................................................... 5 Versionet e VB ................................................................................... 7 DRITARJA E VISUAL BASIC-UT ........................................................... 9 Menyt .................................................................................................. 11 Menya File ........................................................................................ 11 Menya Edit ....................................................................................... 12 Menya View ..................................................................................... 13 Menya Project................................................................................... 14 Menya Format .................................................................................. 14 Menya Debug ................................................................................... 15 Menya Run ....................................................................................... 15 Menya Tools ..................................................................................... 15 Menya Add-Ins ................................................................................. 15 Menya Window ................................................................................ 16 Menya Help ...................................................................................... 16 Shiritat e veglave .............................................................................. 16 Kutia e veglave (Toolbox)................................................................ 18 Dritarja Project Explorer .................................................................. 20 Dritarja Properties ............................................................................ 21 Dritarja Form Layout........................................................................ 23 Prshtatja e hapsirs punuese ......................................................... 24 Projekti i par ....................................................................................... 25 Struktura e aplikacionit n VB ......................................................... 26
i

Visual Basic

Prmbajtja

Hapat e zhvillimit t aplikacionit ..................................................... 27 Procesi i programimit ....................................................................... 29 Dritarja e forms - vendi ku ndodh do gj .................................... 29 Madhsia dhe njsia matse ............................................................. 30 Vendosja e kontrollave n form...................................................... 31 Zgjedhja e kontrolls (Objektit) ....................................................... 32 Ekzekutimi........................................................................................ 32 Ndryshimet n modin e dizajnit ....................................................... 33 Ndryshimet n modin e ekzekutimit Editori i kodit ...................... 36 Plotsimi automatik i fjalve ............................................................ 39 Object Browser ................................................................................. 40 Procedurat ............................................................................................ 41 Procedurat e prgjithshme ................................................................ 41 Procedurat e ngjarjeve ...................................................................... 41 Thirrja e procedurave ....................................................................... 43 Thirrja e procedurs prej modulit tjetr ............................................ 44 Prcjellja e argumenteve .................................................................. 45 Emrtimi i kontrollave...................................................................... 45 Insertimi i procedurs prmes menys ............................................. 46 Kontrollat shtes ............................................................................... 47 Ruajtja e projektit ............................................................................. 48 Hapja e projektit ............................................................................... 48 Kontrollat e brendshme ........................................................................ 49 Kontrolla Label................................................................................. 49 Kontrolla TextBox ............................................................................ 49 Formatizimi i kontrollave ................................................................. 52 Fokusi i kontrollave dhe renditja TabIndex dhe TabStop ............. 53 Tasti Komandues kontrolla CommandButton ............................... 56 Komandimi prmes tastiers ............................................................ 60 Zhvendosja e forms gjat kohs s ekzekutimit ............................. 60 LLOJET E T DHNAVE, KONSTANTET, VARIABLAT ............... 65 Llojet e t dhnave ........................................................................... 65 Deklarimi i variablave ...................................................................... 66 Fjalt e rezervuara ............................................................................ 66 Emrtimi i variablave ....................................................................... 66 Zgjedhja e tipit t variabls .............................................................. 68 Llojet e t dhnave q ruajn variablat ............................................. 69 Vlera e zbrazt (Empty) ................................................................... 69
ii

Visual Basic

Prmbajtja

Vlera Null ......................................................................................... 70 Vlera Error ........................................................................................ 70 Konstantet ......................................................................................... 70 Deklarimi eksplicit ........................................................................... 71 Deklarimi implicit ............................................................................ 72 Prapashtesat e variablave.................................................................. 73 Prdorimi i variablave tekstuale String ......................................... 74 Stringu me gjatsi t ndryshueshme dhe me gjatsi fikse ................ 77 Prcaktimi i domenit t variablave ................................................... 77 Variablat globale .............................................................................. 78 Variablat publike dhe variablat lokale.............................................. 78 Variablat statike ................................................................................ 79 Krijimi i konstanteve t shfrytzuesit ............................................... 81 Urdhri pr ndarjen e vlerave ........................................................... 81 Gabimi TypeMismatch ..................................................................... 82 Vlerat standarde ................................................................................ 83 Operatort ............................................................................................ 84 Prioriteti i operacioneve ................................................................... 87 Eksponenti ........................................................................................ 87 Bashkimi i stringjeve ........................................................................ 88 Urdhrat pr kushtzim ........................................................................ 89 Urdhri If ... Then ............................................................................. 89 If ... Then n nj rresht ..................................................................... 89 If .. Then me shum urdhra............................................................. 90 Urdhri If...Then...Else ..................................................................... 90 Dritarja Immediate ........................................................................... 91 Urdhrat e ndrlidhur If .................................................................... 92 Urdhri If i shumfisht ..................................................................... 94 Kombinimi i kushteve me Dhe dhe me Ose .............................. 95 Urdhri Select Case .......................................................................... 95 Kalimi i detyrueshm ....................................................................... 96 Kontrollat CheckBox dhe OptionButton .......................................... 98 Kontrolla CheckBox ......................................................................... 98 Kontrolla OptionButton .................................................................. 100 Kontrolla Frame ............................................................................. 101 Urdhrat pr prsritje - Unazat........................................................ 104 Unaza For...Next ............................................................................ 104 Ndrprerja e unazs For...Next ....................................................... 106 Unazat Do ... Loop ......................................................................... 106
iii

Visual Basic

Prmbajtja

Unaza Do ... While ......................................................................... 106 Unaza While ... Wend .................................................................... 107 Unaza Do ... Until ........................................................................... 108 Ndrthurrja e unazave .................................................................... 109 Vargjet ................................................................................................ 110 Deklarimi i vargjeve ....................................................................... 110 Deklarimi i vargut me fjaln e rezervuar To .................................. 111 Ridimensionimi i vargut ................................................................. 111 Vargjet shumdimensionale ........................................................... 112 Prdorimi i Unazave pr prshkimin e vargjeve ............................ 114 Vargjet e kontrollave ...................................................................... 115 Krijimi i vargut t kontrollave n modin e dizajnimit .................... 115 Krijimi i vargut t kontrollave gjat ekzekutimit ........................... 116 Prdorimi i fotografive dhe grafiks .................................................. 119 Kontrolla PictureBox ...................................................................... 119 Kontrolla Image .............................................................................. 122 Kontrolla Shape dhe kontrolla Line ............................................... 124 Vizatimi i vijave dhe drejtkndshave n modin e ekzekutimit ...... 125 Hyrjet dhe daljet ................................................................................. 128 InputBox ......................................................................................... 128 MsgBox .......................................................................................... 130 Format dhe dritaret modale pr dialog ........................................... 133 Leximi i t dhnave prej fajllit qasja sekuenciale ....................... 135 Hapja e fajllit pr qasje sekuenciale ............................................... 135 Leximi i t dhnave ........................................................................ 135 Leximi i rreshtit Line Input # ...................................................... 140 Shkruarja e t dhnave n fajll ....................................................... 140 Fajllat me qasje t rastit .................................................................. 143 Variablat e defininuara prej shfrytzuesit ........................................ 143 Shkruarja dhe leximi i fajllave me qasje t rastit ........................... 145 Formatizimi i shtypjes .................................................................... 148 Funksioni Tab ................................................................................. 148 Karakteri pr vazhdim t rreshtit .................................................... 149 Shtypja n Printer ........................................................................... 150 Objekti FileSystemObject .............................................................. 153 Metoda OpenAsTextStream ........................................................... 156 FUNKSIONET DHE PROCEDURAT E FUNKSIONEVE ..................................... 159 Funksionet numerike ...................................................................... 159 String funksionet ............................................................................ 160
iv

Visual Basic

Prmbajtja

Procedurat e funksioneve ............................................................... 162 Thirrja e funksionit ......................................................................... 164 Dokumentimi i procedurave dhe funksioneve................................ 170 Prcaktimi i piks hyrse t programit ........................................... 171 Kontrolla ListBox ........................................................................... 173 Kontrolla ComboBox ..................................................................... 177 Shiritat rrshqits ............................................................................ 181 Kontrolla Timer .............................................................................. 182 Kontrollat DriveListBox, DirListBox dhe FileListBox ................. 185 App.Path ......................................................................................... 186 Dritaret pr dialog .......................................................................... 187 Kontrolla CommonDialog .............................................................. 187 Kontrolla Data ................................................................................ 193 Kontrolla OLE ................................................................................ 196 Lidhja me bazn e t dhnave ........................................................ 197 Krijimi i objekteve n kohn e ekzekutimit ................................... 198 Ekzekutimi i aplikacioneve ............................................................ 200 EDITORI I MENYVE .................................................................................. 201 KOMPONENTET KONTROLLAT SHTES .................................................. 209 Kontrolla Rich TextBox ................................................................. 209 Kalendari ........................................................................................ 214 Kontrollat MonthView dhe DTPicker ............................................ 216 Kontrolla UpDown ......................................................................... 217 Kontrolla ImageList ....................................................................... 218 Kontrolla ImageCombo .................................................................. 219 Kontrolla TabStrip .......................................................................... 223 Kontrolla Toolbar ........................................................................... 226 Kontrolla StatusBar ........................................................................ 229 Kontrolla TreeView ........................................................................ 232 Kontrolla ListView ......................................................................... 235 Kontrolla Chart ............................................................................... 243 Kontrolla Masked Edit Control ...................................................... 244 Kontrolla MultiMedia..................................................................... 246 GABIMET ................................................................................................. 249 Gjetja dhe evitimi i gabimeve t kohs s ekzekutimit .................. 250 Procedura e prgjithshme pr trajtimin e gabimeve ....................... 251 Gabimet logjike .............................................................................. 254 Ekzekutimi hap pas hapi (Single Stepping) ................................... 258
v

Visual Basic

Prmbajtja

Ekzekutimi i procedurs (Step Over) ............................................. 258 Dalja prej funksiont (Step Out) ...................................................... 259 Mnyrat e detektimit t gabimit ..................................................... 259 PUNA ME BAZAT E T DHNAVE.................................................... 261 Modeli i objektit ADO ................................................................... 262 Kontrolla ADO ............................................................................... 263 Vendosja e lidhjes .......................................................................... 264 Prcaktimi i tabelave ...................................................................... 267 Kontrollat q lidhen n t dhna..................................................... 269 Lvizja npr rekorde (navigimi) dhe krkimi ............................... 272 Kontrollat e vetdijshme pr t dhnat ........................................... 286 Kontrolla DataList .......................................................................... 286 Kontrolla DataCombo .................................................................... 287 Kontrolla DataGrid ......................................................................... 288 Kontrolla MSHFlexGrid................................................................. 292 Data Environment........................................................................... 294 Dizajnimi i objektit DataEnvironment ........................................... 294 Data View ....................................................................................... 298 Dizajneri i pyetsve ........................................................................ 298 Paraqitja hierarkike......................................................................... 301 DataReport...................................................................................... 305 Krijimi automatik i projektit pr t dhna ...................................... 308 VB Application Wizard .................................................................. 308 Data Form Wizard .......................................................................... 312 Format MDI ....................................................................................... 315 MODULET ................................................................................................ 318 Modulet e formave ......................................................................... 318 Modulet standarde .......................................................................... 318 Modulet e klasave ........................................................................... 319 Kontrolla DataRepeater .................................................................. 323 OBJEKTET DHE KLASAT ........................................................................... 329 Programimi i orientuar n objekte .................................................. 329 Koleksionet ..................................................................................... 338 Identifikimi i elementeve t koleksionit ......................................... 341 Procedura Initialize Event .............................................................. 342 Ngjarjet ........................................................................................... 343 Shtimi i ngjarjes n form .............................................................. 343 Relacionet mes klasave .................................................................. 346
vi

Visual Basic

Prmbajtja

Forma pr lajmrim ........................................................................ 347 NDIHMA .................................................................................................. 349 Krijimi i Help Text File .................................................................. 349 Krijimi i fajllit ekzekutiv ..................................................................... 355 PAKETIMI DHE SHPRNDARJA E PROJEKTIT .............................................. 356 VISUAL BASIC-U DHE INTERNETI............................................................. 362 Faqet me DHTML .......................................................................... 364 Ngjarjet DHTML ............................................................................ 368 VBScript ......................................................................................... 369 VISUAL BASIC-U PR APLIKACIONE ............................................. 374 Makrot ............................................................................................ 375 Insertimi i formave dhe kontrollave ............................................... 379 Visual Basic-u dhe Accessi ............................................................ 385 SHTOJCAT .............................................................................................. 388 Shtojca A............................................................................................. 388 Tabela e numrave t gabimeve dhe mesazheve t gabimeve ......... 388 Shtojca B............................................................................................. 392 Konstantet pr kontrollat CommonDialog ..................................... 392 Shtojca C ............................................................................................ 397 Konstantet e Visual Basic-ut .......................................................... 397 Konstantet e forms - Form Constants ........................................... 400 Konstantet e grafiks - Graphics Constants ................................... 400 Konstantet e vizatimit - Drawing Constants................................... 402 Konstantet e rreshtimit - Alignment Constants .............................. 402 Konstantet e tiparit Stili i kufirit ................................................. 403 Konstantet e objektit Clipboard - Clipboard Object Constants ...... 403 Konstantet e kontrollave - Control Constants ................................ 404 Konstantet e kontrolls Data - Data Control Constants ................. 405 Konstantet e veprimit t ngjarjes Verifikimi i vlefshmris .......... 405 Konstantet e kodit t tasteve - Key Code Constants ...................... 407 Konstantet e objektit Picture - Picture Object Constants ............... 411 Konstantet e tipit Variant - Variant Type Constants ...................... 411 Konstantet VarType (Tipi i variablave) ......................................... 411 Konstante t ndryshme ................................................................... 412

vii

Visual Basic

Prmbajtja

viii

You might also like