visual basic és excel programozás

Upload: varga-sandor

Post on 11-Jul-2015

986 views

Category:

Documents


2 download

TRANSCRIPT

  • 5/11/2018 Visual Basic s Excel programozs

    1/92

    P ro fess iona ifo lyamokV is u a l S tu d ioExchang~ . Q . 5

    m ok

    k , v iz sg a k IS09001 'V IS UA L B AS IC~E S E XCE L

    PROGRAMOZAS

    a da tb azls -k eze le s . ~ p ro gra rn ny elve ks z6 v~ gs ze tk es zte s ~ ta bla za tk eze le se le ktre nik us le ve le ze s ~ IN TE RN ET

    I I ,s tb. vizsgakhozl je k o zt at 6 n k a t!K N E L i s m e g t a rt ju k ! r--- ___

    C S ,a lo g an y u tc a 2 3 .457 - 6920

  • 5/11/2018 Visual Basic s Excel programozs

    2/92

    BALOGH GABOR

    VISUAL BASIC,ES EX CEL ,PROGRAMOZAS

    COMPUTERBoOKSBUDAPEST,2004

  • 5/11/2018 Visual Basic s Excel programozs

    3/92

    A konyvkeszi tese soran a K iad6 e s a Szerzo a l egnagyobb gondossaggal j ar ta k e! .Ennek ellenere hibak elofordulasa nem kizarhato.Az i smeret anyag felha sznala sanak kovetkezmenye ier t sem a Sze rzo , sem a Kiad6felelosseget nem vallal.Minden jog fenntartva. Jelen konyvet vagy annak reszletei t a Kiad6 engedelye nelkulbarmilyen formatumban vagy eszkozzel reprodukalni, tarolni es kozolni tilos.

    Balogh Gabor, 2000, I ,Budapesti Ko~gazdasagtudomany, es.Allamigazgatasi Egyetem Tankonyve

    Keszult a BKAE Szamftastudomanyi .Tanszek gondozasabanSorozatszerkeszto: Dr. Tarl6s Bela, kandidatus, tanszekvezetoLektor: Dr. Quittner Pal, egyetemi tanar

    Elso kiadas, 2000. februar

    ISBN: 963 618 229 9Kiad6: ComputerBooks Kiad6 Kft .

    1126 Bp. , Tartsay Vilmos u. 12.Telefon: 375-1564; TelIFax: 375-3591E-mail: [email protected]://www.computerbooks.hu

    Felelos kiad6: ComputerBooks Kft. UgyvezetojeBorft6terv: Szekely EdithNyomdai munkak: Pressman Bt. Dabas

    TartalomjegyzekA szerzo eloszava , 11. Bevezetes a programozasba ................................................................................................ 3

    1.1. A programozasrol altalaban 31.2. A programfejlesztes lepesei 3

    1.2.1. A program megtervezese 41.2.2. A program epftese .41.2.3. A program tesztelese 5

    1.3. Programfejleszto r endszerek 51.4. A Windows operacios rendszer mukodese 6

    1.4.1. Ablakok 61.4.2. Esemenyek es iizenetek 61.4.3. Proceduralis kontra esemeny-vezerelt programok : 71.4.4. A Visual Basic mukodesi elve 7

    1.5. A Visual Basic Integralt Fejlesztoi Kornyezet (VB IDE) 81.5.1. A Visual Basic lehetosegei.. 81.5.2. A Visual Basic (azaz a VB IDE) indftasa 91.5.3. A VB fejleszto komyezetenek elohivasa es kinezete ~ 91.5.4. A VB fejleszto kornyezetenek megjelenftesi m6djai 101.5.5. A VB fejleszto kornyezetenek elemei.. ll

    1.6. Mintapelda: Az elso program 141.7. A Visual Basic objektum-modellje 16

    1.7.1. A Visual Basic objektumai : 161.7.2. Objektumtfpusok- objektumok 181.7.3. A Visual Basic esemenyek 181.7.4. A f6kusz 191 .7. 5. VB esemenyek illobjektumok esemeny-eljarasainak azonosftas a 19

    2. A fejlesztokomyezet hasznalata 212.1. A Visual Basic alkalmazasok strukniraja ,, 12.1.1. Fornfok " ,_1

    2.1.2. Standard modulok ' ,222.1.3. Projekt informaciok ",2.1.4. Objektum-tulajdonsagok beallftasa es a VB projekt f ajlstrukturaja 23A Visual Basic fomenuje ,.252.2.1. File menii 252.2.2., P roject menii . 262.2.3. Edit menii , " 282.2.4. View menii , 29; : ; : ~ : ~ ~ ~ I s r r ; : : ; : t i: : : : : : :: : : : : : :: : : : : : :: : : : :: : : :: : : : : : :: : : : : : :: : : : : : :: : : : : : :: : : : : : :: : : : : : :: : : : : : :: : : : : : :: : : : ~ ~2.2.7. Add-Ins menii ,..;,' 30

    2.2.

    mailto:[email protected]://www.computerbooks.hu/http://www.computerbooks.hu/mailto:[email protected]
  • 5/11/2018 Visual Basic s Excel programozs

    4/92

    TARTALOMJEGYzEK

    2.3. Az IDE hasznalata , 312.3.1. Mintapelda: A program specifikacioja es m egtervezese 312.3.2. Mintapelda (folytatas): A VB projekt letrehozasa 332.3.3. A felhasznaloi interfesz form keszftese 342.3.4. Mintapelda (folytatas ): A projekt es az interfesz form elkeszf tese , .402.3.5. A program-k6d frasa .432.3.6. Az esemeny-kezelo eljarasok elnevezese .452.3.7. Mintapelda (2.3.4 folytatasa): A program-k6d elkeszitese .45~.3.8. A strukturalt programozas kodolas-technikaja .48

    2.4. Altalanos elnevezesi szabalyok .483. A form e s az alapveto vezerlesek .................................................................................... 49

    3.1. Az ertekado utasftas .493.2. Met6dus vegrehajtasa ("hfvasa") 513.3. A kodolas formai szabalyai 513.4. Altalanos tulajdonsagok 513.5. Form (~iirlap) 52

    3.5.1. A formok fobb tulajdonsagai 543.5.2. A formrnal kapcsolatos lenyegesebb esemenyek 553.5.3. A form lenyegesebb met6dusai; utasftasok 56

    3.6. Label (- cfmke) vezerles 563.7. CommandButton (- nyom6gomb) vezerles 573.8. Frame (- keret) vezerles 583.9. PictureBox (- kep) vezerles 583.10. Image (- abra) vezerles 593.11. CheckBox (~jelolo) vezerles 593.12. OptionButton (- valaszto) vezerles 603.13. Az egerrel kapcsolatos esemenyek 623.14. TextBox (- szoveg) vezerles 64

    3.14.1. A f6kusszal kapcsolatos esemeny-tfpusok 653.14.2. A szoveg-mezo fontosabb tulajdonsagai., 70

    3.15. ListBox (-lista) vezerles .......................................................................................... 703.16. ComboBox (- kombinalt l ista) vezerles 733.17. DriveListBox (- meghajt6) vezerles 743.18. DirListBox (- konyvtar) vezerles 753.19. FileListBox (- raj I) vezerles 763.20. CommonDialog (- altalanos dial6gus) vezerles 773.21. Timer (~idozito) vezerles 793.22. Objektum-tombok 80

    3.22.1. Tombbe foglalt valaszto-mezok hasznalata 823.22.2. Pelda mas tfpusti objektum-tomb hasznalatara ;' 82

    4. A Visual Basic programuyelve ................................................................................. 834.1. Programozasrol a l ta l aban 83

    4.1.1. Programozunk, tehat hibazunk 834.1.2. A program celja, szervezodese 844.1.3. A program objektumai 85

    11

    TARTALOMJEGYzEK

    4.2. Az azonosft6k hasznalata 864.2 .1 . Azonosft6k Iathatosaga 864.2.2. Azonosft6k elettartama 86

    4.3. Valtozok es konstansok hasznalata 874.3.1. Valtozok fogalma; deklaralasuk 874.3.2. Allandok fogalma; deklaralasuk 894.3.3. Alapveto adattipusok 904.3.4. Adatkonverzi6 924.3.5. A t ombok; deklaralasuk es h asznalatuk : 93

    4.4. A Bas ic alapveto nyelvi szerkezetei 964.4.1. Muvel et ek es opera tora ik 964.4.2. Kifejezesek 98

    4.5. Vegrehajthato utasftasok 984.5.1. Ertekad6 (- assignment) utasftas 984.5.2. Hivatkoz6 (- reference) utasftas 994.5.3. Csoporthivatkoz6 utasftas 994.5.4. Felteteles (- conditional) utasftasok 1004.5.5. Ciklusszervezo ut asi tasok 101

    4.6. Programstrukturalas 1054.6.1. A program-struktura lo ut asf tasok 1054.6.2. Eljarasok 1054.6.3. Fuggvenyek 107

    5. Hibakereses es -kezeles ................................................................................095.1. A VB IDE hibakeresest tamogato eszkozei 110

    5.1.1 A program-hibak fajtai 1105.1.2. A program-logikai hibak felderftesenek m6djai.. 1115.2. Hi bakez e lok : a f u ta s ko zb eni h ib ak keze le s en ek e s zkoze i .; 1175.2.1. A hibakezelessel kapcsolatos opci6k 1175 .2 .2 . A h ibake ze les i m6d be al lf tasa: a z On Error utasftas 1185 .2 .3 . Hiba- in fo rmaciok : az Err objektum 1185.2.4. Hiba-analfzis 1195.2.5. Hiba-e l lenorzesse l vegzet t kezeles 1195.2.6. Kozponti hibakezelovel vegzett kezeles 1205.2.7. A Resume utasftas 1215.2.8. A kozponti hibakezelo formaja , ,.., 121

    5.3. Mintapelda (2.3.7 folytatasa): Hibas a program! 1226. Alapveto algoritmusok .............................................................................................. 123

    6.1.1. Osszegzes, , 1236.1.2. Minimum-kereses 1246.1.3. Kivalogatas , ; 1246.1.4. Eldontes 1256.1.5. Ker eses ............................................................................. .......................... 1266.1.6. Rendezes 127

    iii

  • 5/11/2018 Visual Basic s Excel programozs

    5/92

    TARTALOMJEGYzEK

    7. Tovabbi programozasi lehetosegek ............................................................................. 1297.1. Menukezeles 1307.1.1. AMenii Editor hasznalata., 1307.1.2. Menu-esemenyek programbeli feldolgozasa ~; ~ 1327.1.3. A gyorsmenii aktivalasa :..1337.1.4. Meniik hasznalatat bemutat6 peldak ; 1337.2. Adatbazis-kezeles 1347.2.1. Adatbazisokrol altalaban 1347.2.2. Relacios adatbazisok 134

    7.2.3. Az adatbazis-kezeles technologiaja 1357.2.4. AMicrosoft Jet adatbazis-motor 1367.2.5. A RecordSet objektum-tfpus 1367.2.6. Data (- adat) vezerles 1377.2.7. Data-bound ( - adat-fogad6) vezerlesek 1387.2.8. MS Access adatbazis elerese 139Tablazat hasznalata 139RecordSet hasznalata 1397.2.9. MS Excel adatbazis elerese 1408. Az Excel programozasa .......................................................................41

    8.1. Az Excel programozasi fejlesztokornyezete 1418.2. Az Excel objektumai 1428.2.1. Az Application objektum ; 1438.2.2. AWorkBooks objektum 1458.2.3. AWorkSheets objektum 1468.2.4. A DialogSheets objektum 1468.3. A parbeszedes vezerlo-elemek programozasa 1488.4. UserFormok keszftese , : 1518.5. Esemenyek, esemenykezelesi eljarasok 1528.6. Beepftett- es felhasznaloi fuggvenyek 1548.6.1. Beepftett fuggvenyek hivatkozasa programban 1548.6.2. Felhasznaloi fuggvenyek hivatkozasa munkalapon ; 1558.7. Eljaras / fuggveny - gyujtemenyek 1558.8. Mintapelda: az Excel programozasa : 156

    1. Melleklet: Elnevezesi konvenci6k 1572. Melleklet: Visual Basic "Szaksz6tar" 159

    "3. Melleklet: Fontosabb Visual Basic beepitett fiiggvenyek ..................................... 161

    Irodalomjegyzek ............................................................................................ 165Targymutatd ..............................................................................67

    -iv

    A szerzd eldszavaE konyv e lsosorban a Budapesti Kiizgazdasdgtudomdnyi is AUamigazgatasi Egyetemelsoeves hallgatoi szamara keszult, hogy az Informatika alapjai c. a laptantargynak aprogramozasba bevezeto, gyakorlat i re szehez segedanyagul szo lgal jon . A konyv aMS Visual Basic 6 programnyelven torteno programozas alapjaival foglalkozik, majde rre tamaszkodva beveze te st nyi ij t a MS Excel tablazatkezelo programozasaba,Semmilyen specialis e lokepzettseget nem igenyel (csak nemiJPE-t), ezert haszonnalforgathatja barki, aki a Windows programozasaba torteno gyors bevezetest 6hajt.Sokszor felvetodik a kerde s, hogy egy koz ga zdasz -hall ga tona k igaza bol va n-eszuksege a programoz as-, e s kivaltke pp a Visual Basic-ben torteno programozastanulasara . A valasz: egyertelmt ien igen. Bar a programozds tanuldsa altalaban- kulonosen az abszolut kezdoknek - e le in te fa radsagos, azonban semmikeppen semhatranyos, sot tobb szempontbol is hasznos: a programozas - barmilyen nyelven torten jenis - logikus gondolkodasra nevel ; az .objektum- es/vagy esemeny orientalt programok keszfteset tamogato

    fejlesztoeszkozokkel tor teno munka hatekonyan fejleszti a rendszerszemleletfia ttekintdkepesseget, igy barmelyik ilyen fejlesztoeszkoz (peldaul aVisual Basic,Visual C, Delphi, C++ Builder, Java vagy C++) hasznalatanak megismere se e sproblemak altala torteno megoldasa e kepesseg fejleszteseben igen hasznos lehet;

    a Visual Basic fejlesztorendszere az alapja aMicrosoft Office programokba (Word,Excel, Access, Power Point, stb) szervesen beepitett programfejleszto eszkozeknek(ami a beep itet t p rogramnye lvek es a fej le sz tokornyeze tek tel je s azonossaga t,valamint az objektumok hasznalatanak nagyrnervu hasonlosagat jelenti).

    A kiinyv szerkesztesekor az alabbi szempontokat yettem figyelembe: a programozasban jaratlanok szamara is megfele lo bevezetest kell nyujtania ; az Olvasonak kepesse kell valnia egyszer iibb, azMS Windows operacios rendszer

    ( -" Windows) ala tt mukodo programoknak a Microsoft Y.isual !1asic 6 fejleszto-rendszer (- VB) hasznalataval torteno keszitesere;

    a konyvnek kepet kell adnia, hogy rnilyen celok erdekeben sziikseges vagye rdemes k iegesz iten i az Excel '97 (- Excel) hasznalataval keszftett tablazatatsajat p rogramkoddal , e s hogy ezt rni lyen medon kel l tenn i a programba epftet tY.isual !1asicfor dpplications (- VBA) programfejleszto kornyezetben;

    a konyvnek a targyal t a lapveto e szkozok es fogalmak refe renc ia szer iien pontosIeirasat kell adnia, felhasznalasuk technikajat peldakon keresztiil ismertetve;

    az Olvaso a "gyakorla t talajan allva" legyen kepes megismerkedni, vagy - ha helyhijan tobbre nem isfutja - legalabb raeremi modern szamftastechnikai fogalmakra. J P E = j6zan "paraszti" esz (az ember velesziiletet t logikus gondolkodasra val6 hajlama) A - utani szoveg vagy a megelozo fogalom konyvbeli roviditese vagy egy masik nyelvbeli megfeleloje

  • 5/11/2018 Visual Basic s Excel programozs

    6/92

    A S ZE RZ O E LO SZ A V A

    Ennek megfeleloen a konyv tobb kiilonallo, de azert tartalmilag egymashozkapcsol6d6 reszbol all: . az elso ket fejezet a programozas es a Windows .Jelkivilaganak" bevezetojeul

    szolgal, es attekinti a Visual Basic programfejleszto kornyezetenek elemeit; a konyv j ele nt os resz eben a Visual Basic nyelvii programozas alapjait targyalja; vegul az utolso fejezet - az elobbi fejezetekben megismert eszkozokre es

    foga lmakra a lapozva - azExcel-be epftett Visual Basic for Applications fejleszto-rendszerben torteno programozashoz nyiijt rovid bevezetest,

    A konyv Irasahoz a h ivatkozo tt p rogramok angol nye lvu va ltozatai t hasznal tam,azonban a nem egyerte lmuen fordithato vagy egyszenien csak fontosnak tar tott angol. szakkifejezesek magyar megfeleloit kulon is kigytijtottem (Iasd: 2.MelLeklet). .A konyv lemezme llek le te a konyvben reszletezet t vagy csak h ivatkozo tt peldaka tboseges kod-magyarazatokka l e s vegreha jtha to programjukkal egyli tt tomori te ttfo rrnaban tar ta lmazza . Az ins ta llalasukra e s a hasznalatukra vonatkoz6 reszletesutasftasok a lemez ReadMe fajljaiban - akar editor programmal is - olvashat6k.A konyv nem sze plrodal om, amit egyhuz amban vegigolvasva a z embe r mindentitkok tudojava valik, Igenyli az Olvas6 akt iv kdzremfikddese t, a bemutatot t vagy acsak h ivatkozo tt , de a lemezme llek le t a ltal komple tten tar ta lmazot t min tape ldakmukodesenek es az oket megval6sf t6 programok k6djanak szamitogepen, fejleszto-kornyez etben tOrteno ala pos tanulmanyoz asat es a z onallo kidolgozasra a dottfeladatok megoldasat, A programozas gyakorlati "tudomany", amire fokozottan igaz,hogy a tudas a reszletekben rejlik. Csa16dni fog az, aki nehany napos intenzfvmunkaval akarja .Jerovidfteni" a tanulas folyamatat: a rendszeresseg tobbet er. Mintminden gondolkodason a lapu16 tudomany, a programoz as ta nulasa is igenyli atapasztalatok leszurodese t. Legyen ra felke szulve , hogy - kulonosen kezde tben -alapveto (es esetleg elkedvetlenito) hibakat fog veteni; azonban ezert az idoszakertkesobb feltehetoen kello karpotlasul fog szolgalni a kreativ munka orome,A konyv a szukre szabott ter jedelme miatt igen "velosen" Irodott, nem sokat ismetel.A konyv szovegeben es a programokban - kulonosen a konyv elsf feleben -elofordulhatnak olyan dolgok, amiket csak kesobb targyalunk kimeritoen; ilyenkor alabjegyzetek es a kommentek magyarazzak ugyan a dolog lenyeget, azonban erdemesfeljegyezni oket, es kristalytiszta megertesuk erdekeben visszaterni hozzajuk.Vegul koszonetet mondok mindazoknak, akik a konyv szuletese korul babaskodtak:Baldzsne Mocsai Andreanak az alapveto algoritmusokr61 sz616 fejezet anyagaert;dr Quittner Pallektornak a szinte mindenre kiterjed6 gondossagaert; Vadnai Szabolcsbaratomnak es Juhasz Peter kozgazdanak eszreveteleikert es tanacsaikert; hallgat6imkozul kulonosen T6th Peternek az altala igen szepen kidolgozott Tdzsdejdtek programkozreadasaert; es vegul tanszeki kollegaimnak, akik rigolyaimat elviseltek,

    a Szerzoe-mail: [email protected]

    2

    1. Bevezetes a programozasbaNe hagyjon ki egy patk6sziiget sem:

    ha meg nem tet te volna, mos t olvas sa e laz e l/ is zot!

    1.1. A programozasrol altalabanA szamitogep-program celja altalaban valamilyen, a felhasznaloja szamara hasznosfeladat e lvegzese , E vegrehajtando alkalmazasi feladatok (roviden: alkalmazdsok; .angolul: applications) az igen egyszeniektol (pI egy fiz ikai mennyiseg ertekenek masmertekegysegbe tor teno atszamitasa) a legbonyolultabbakig (pI egitestek palyajanaka meghatarozasa) igen sokfelek lehetnek. A legkulonbozobb celu, "testre szabhat6"kesz programok nagy valasztekban vannak a piacon, ezert mindig j61 meg kellgondolni, hogy mege ri -e egy saja t program kifejl eszrte jtese . Egy uj programkifejlesztese osszessegeben altalaban hosszabban tart6 folyamat es tobb koltseggel jar,mint egy mar meglevo testre szabasa , Felmertilhetnek azonban olyan specialis igenyek(pI jobb a ttek in thetoseg , special i s ada tbevi te li - vagy megje leni te si m6dok , ad hocfeladatok), amelyek miatt megis a sajat fejlesztes melle tt dontunk. Az e targykorbenfelmerulo kerdesek altalanos vizsgalata aRendszerfejleszies ( lasd: [If) szaktenilete. Ekonyvben a legegyszenibb programok elkesziteseneka gyakorlatat mutatjuk be.

    1.2. A programfejlesztes lepeseiHa mar kristalyt isztan a ll e lo ttunk a keszi tendo program funkci6ja, e rdemes azt i sat gondolni, hogy milye n jartassa got , ismerete ket tete lez hetii nk fel a programhasz na lojat ol (hisz en ez a program felhasz nalobarat j elle get nyilvanval oa nbefolyasolja). Ezutan nekilathatunk a tenyleges programkeszfteshez.Egy program keszitese soran eloszor az alabbi fobb lepeseket ismeteljuk:- programtervezes (ha nem all rendelkezesre ezt tamogato szoftver, akkor papfron),- programepite s es te szte les (forra snyelvii programkod-sz erkeszt o-, fordito-,

    programszerkeszto- es hibafelderitesre szolgalo - un debugger - programokalta l,vagy egy mindezeket a funkciokat integralo fejlesztorendszer segitsegevel),

    - felhasznaloval val6 egyezte tes (ha nem azonos a keszitovel es egyalta lan elerheto) ,mindaddig , amig az egyeztetes e redmenye egy uj program val toza t k ibocsa ta sa ro lsz616 den te s. Nagyobb volumemi fe jlesztesek soran e rdemes a terveze s e s az epftesminden fontos fazisaban ellenoriz te tni a felhasznaloval gondolata ink helyesseget, Ezkulonosen Igy van, ha a programfejlesztes az alapjaul szolgalo munkafolyamatokteljes- vagy reszleges iijraszervezesevel egyiitt tortenik.Az ilyen forrnaju hivatkozasok az Irodalomjegyzekben szerepl6 megfelelo konyvre utalnak

    3

    mailto:[email protected]:[email protected]
  • 5/11/2018 Visual Basic s Excel programozs

    7/92

    1. FEJEZET

    Az uj programvaltozat .Jdbocsatasa" vagy egyszenien csak a program vegrehajthatovaltozatanak az eloallitasat, vagy egy komplett, minden szukseges kellekkel e llatott,adathordozon terjesztheto telepito (- installalo) csomag osszeallftasat jelenti.1.2.1. A program megtervezeseA tervezes soran meg kell hatarozni, hogy a program a mtikodese folyaman

    milyen informaciokat es azokat milyen m6don formal va (- reprezentalva) fogad;milyen modon dolgozza fel ezeket a "bemeno" informaciokat, azaz mi afeldolgozas algoritmusa, majd ennek eredmenyekent

    - milyen .Jcimeno" informaciokat a llit e lo es hogyan tor tenik azok bernutatasa .A bemeno (input) adatokat bonyolultabb folyamatokban nem egy tomegben, hanemc soportokba rendez ve kel l megadni; ese tleg nem is minde t, hanem csa k az okat esolyan sorrendben, amelyeket es ahogy azt a feldolgozas modellje megszabja", Az ilyentobblepeses algoritmusokat celszer ti olyan elemi reszekre bontani, amelyeken belulmar nem tortenik adatbevitel, hogy a folyamat egesze a reszfolyamatokosszessegekent leirhat6 legyen (a lefras kulonbozo m6djait illetoen lasd az[1] konyv Rendszerfejleszies illetve Folyamat- e s adaimodellezes fejezeteit). Ezzelkapcsolatban fe lh fv juk a figyelme t a kapcsol6d6 reszek kozo tt i ada tkapcso la tok (akapcsolodasi feluletek; angolul: data interface) korultekinto es preciz definialasara,1.2.2. A program epfteseMiutan a terveze s szint jen veg legesi todik egy-egy (e lemi) folyama t, e lkezdodhet abeprogramozasa, Ez a VB-ben (es a hozza hasonlo vizualis fejlesztorendszerekben) azalabbi - tenyleges tartalommal nem feltetlenul kitoltendo - tevekenysegeket jelenti:- a program es a fel ha sznal o kozt i ka pcsolat i felule t - az az a ke re tul sz olgaloform

    (iirlap, programablak vagy maszk), es benne a folyamattal kapcsolatos felhasznaloiinformaciocserere szolgalo vezerloelemek (objektumok") - letrehozasa,

    - a form- es a rahelyezett vezer lo objektumok tulajdonsagainak beallitasa,- VB nyelvu programk6d irasa a form egyes obje kt uma ihoz rendelt bi zonyos

    esernenyeinek kezelese celjabol,Az a praktikus, ha elobb a formra helyezzilk az osszes tervezett vezer loelernet, aztan amegjelenitesre vonatkoz6 tulajdonsagaik modositasaval es eltologatasukkal a kivantraformazzuk oket, es csak ezt kovetoen kezdilnk a tovabbi szukseges tevekenysegekbe, A PC-s v il ag p rogramja i a lt al aban csak azt a min imal is informaciot ker ik a felha szna lo to l, ame ly asoron kovetkezo feladat elvegzesehez szukseges, azonban tobbnyire szamukra is specifikalhatok megj 6v al a fe lh as zna la su k e lo tt meg ad ha t6 in fo rr nac io k ( pI a z op ci 6s l apo k ad at ai ); a nem in ter ak tfvmtikodesu programok (a segedprogramok es a kotegelt feldolgozas kereteben mukodtetett programok)szamara szukseges osszes inforrnaciot viszont meg a program vegrehajtasanak kezdete elott meg kell adni** A programozasban objektum alatt - elso kozelitesben - olyan onallo egysegkent mfikodf es viselkedoprogramelemet ertunk, amely egy val6s vilagbeli- vagy egy elvonatkoztatott dolog modellezesere szolgal

    4

    BEVEZETES A PROGRAMOZAsBA

    1.2.3. A program teszteleseA program tesztelese annak e llenorzesere szo lgal , hogy a program a tervezet tnekmegfele loen viselkedik-e. A teszteleshez szorosan kapcsolodo tevekenyseg a feltarthibas mukodesek okainak a felderitese , A mai fejlesztorendszerek hibafelderiteshezhatekony, tin debugging (ertelem szerinti fordftasa: hibajavft6) eszkozoket nyiijtanak:- a nyelv sza balya inak be nem tart asabol e redo un sz intaktika i hiba k (a vizua lis

    fejlesztorendszerek sok ilyen hibara mar a beirasukkor f igyelmeztetnek, azonbanaz osszetettebb nyeivi struknirak hibainak felismeresere nem mindig kepesek)a szemantikai hibak (amikor az algoritmus nem a celnak megfele loen dolgozik: azalgoritmus elvi hibajabol - sokszor csak valtozok nevenek elirasabol - eredoen)

    - a fu ta s kozben i h ibak (nem megfe le lo vagy nem kie legi to h iba-keze le s mia tt )felderftese celjab61.1.3. Programfejlesztd rendszerekAzert , hogy a programfe jlesztoknek csak magara a megoldando problemara kel ljenkoncent ra lniuk , a nagy szoftve rgya rto cegek egymassal versengve dobnak piacraegyre tobbet tud6, a program-keszites kil16nb6zo fazisaiban egyre tobb tamogatastnyu jto e szkozoket integralo fej le sz to rendszereket . A regen sokak a ltal lenezet t, devegtelen egyszenisege miatt a TV-komputerek reven tomegek altal megkedvelt Basicprogramozasi nyelv a Microsoft tudatos strategia ja eredmenyekent napjainkra- megtartva elodjenek egyszeniseget es attekinthetoseget - professzionalis feladatokmegoldasara kepes fejlesztorendszerre valt. Keszitoi szakitottak aWindows direktmodon tOrte no programoz asana k rigorozus sza balyai va l es e gy sa llangment esprogramozast lehetove tevo fejlesztoi kornyezetet a lkottak; igaz, azon az aron, hogy avele kesz itet t p rogramok lassabban mukodnek, Az igazsag az, hogy aVB programokcsigatemp6ja regen is csak a nagy szamolasigenyu feladatok vegzesekor voltszembeotlo (a tesztek kb ket nagysagrendnyi lassu la st mutat tak) . Ennek az volt a zoka, hogy a VB fordft 6j a nem na tfv (a gep alt al kozvet lenul vegrehaj thato)utasitasokka kodolta a program forrasnyelvu szoveget, hanem egy kozbenso nyelvre(az tin p-k6dra), es a program a vegrehajtasakor a VB fut ta t6 magja e p-nye lv tiprogramot interpretalta'. A VB 6-os verziojaba beleintegraltak egy natfv k6dot gyartofordftot" is ugy, hogy kozben megtartottak az elodok 6sszes elonyos tulajdonsagait is.* Ennek az tin interpreternek a feladata volt, hogy az egyes vegrehajtando p-nyelvu utasitasokat clul>inatfv-kodu utasftasokra fordftsa, majd azokat a processzorral vegrehajtassa. E program-vegrehajtasim6dot a TV-komputerek idejen azok korlatos memoriaja es tarolo kapacitasa kenyszerftette ki, es annyiraa lt al anosan a lkalmaztak , hogy a p -nye lv egy fa jt a gep -fugge tl en s tandardda i s val t. A p -nye lvu k6dokkulonbozo tipusu gepek kozotti hordozhatosaga (angolul: portabili ty) miatt szamos korszeru fordito-program rendelkezik (a natfv-fordftas kepessege mellett) a p-kodra torteno forditas lehetosegevel is*. Az a lt al a gya rtot t nat iv p rogram azonban onmagaban nem futaskepes; a mukodesehez szuksege vanegy bizonyos, a Windows eroforras-menedzsereivel kornmunikalo modulra, az MSVBVM60.DLL fajlra

    5

  • 5/11/2018 Visual Basic s Excel programozs

    8/92

    1.FEJE ZET

    1.4. A Windows operacios rendszer mfikddeseA felhasznalo szemszogebol a Windows egy gra fikus felha szna lo i fe li ilet te lrendelkezo, programok (sot az akar egy programon beluli programszalak) egymassalparhuzamos, idoben megosztott vegrehajtasat lehetove tevo operacios rendszer.'A Windows direkt m6don tOrteno programozasaval kapcsolatos legszuksegesebbismeretek egy vaskos konyvet toltenek meg (lasd: [8]), es legalabb alapveto objektumorientalt programozasi tudnivalokat igenyelnek (lasd: [10] ill [11]). Mtikodesi elveneka megertese azonban nem igenyli ezeket a mely ismereteket.A Windows mukodesenek megertesehez eloszor tisztazzuk az ablak, az esemeny es aziizenet fogalmat.1.4.1. AblakokAz ablak a grafikus felhasznaloi felii le t valamely konkret, tegla lap alakti reszenek areprezentansa. A program- ill dialogus ablakok tehat ezen altalanos ablak-fogalomnaka specialis esetei. A Windows szamara azonban ablalc-sesx: l et tek "be je lentve" aprogramablakokban latot t ku lonbozo t ipusu mezok (az ada tbev itel i- , a valaszto- , akapcsolo- , a l is ta -, a kepmezok, a kepek es ikonok , a nyom6gombok) e s minden, ami afeliileten megjelenitheto. Felmeriil a kerdes: mi a szerepe ennek az absztrakci6nak?Az ablak a grafikus felhasznaloi felulet megjelenitesenek es a felhasznaloval tor tenokapcsolat ta rtasnak a legelemibb eszkozekent szo lgal , Gondol juk meg , ha van ket ,egymast atfede ablak, akkor igen konnyu meghatarozni, hogy a reszben- vagy teljesenlefedet tnek az e lo te rbe kerulesehez , vagy egyik e lt tmte te sehez a kepemyonek melyreszeit kell a Windowsnak tijrarajzolnia. Az ablak tegla lap formaja miatt azt iskonnyueldonteni, hogy az eger kurzora a hatarain kfvul vagy belul van-e. A Windowsoperacios rendszer nyilvantartast vezet azablakokrol, az egyes ablakokat egyedi egeszszamokkal azonositva. Az ablak-nyilvantartas az ablakokrol a helyzet-koordinataik esmeretuk mel le tt meg masfe le , tulajdonsag- i lletve a llapot le fro a tt ribu tumoka t i star ta lmaz . Sot , a z ablakok kozott a la- es folerendeltsegi viszony is megallapfthato,iigyhogy a "gyerek" -ablakok csa k a sz ul oj uk "ha saba n" hel ye zkedhe tnek e l, es a"gyerekek" meg a "szulok" bizonyos funkci6it (pl menujet) ishasznalhatjak,1.4.2. Esemenyek es iizenetekA felhasznaloval tor teno informaciocsere mindig egyetlen - az eppenaktiv - ablakhozkapcsolodik. A programok ill a programszalak kozti informaciocsere erdekebenablakok kozt is tor tenhet kommunikacio. A kommunikacios igeny jelzese esemenyekgeneralasaval, az informaciocsere pedig iizenetek kozve tftesevel valosul meg. Afelhasznalo tevekenysegevel kozvetlenul kapcsolatos esemenyeket (pl a billentyiizetegy gombjanak a lenyomasa - vagy fe lengedese, az ege r e lmozdftasa) aWindows-nak

    6

    BEVEZETESAPROGRAMOzAsBA

    a hardverr el kapcsolatot tar to re szei general jak, e s az ope racios rendszer szamarauzenetekke forma ljak ( te rmesze te sen, tor tenhetnek egy gep e le teben o lyan fontosesemenyek, amelyek kezelese nem tiir halasztast; ezek szamara letezik egy kozvetleninformac ios csa torna is, az onba n nem ez a kommunikaci o jellemzo m6dja). Az.iize nete k j6 re sze az onba n nem hardverbeli valt oz asoknak, hanem egysze ni enprogramozasnak koszonhe ti a letet (pl az ablakok kozt i kommunikac iova l, vagy azablakok tijrarajzolasaval kapcsolatos esemenyfajtak illetve uzenetek),Hogy a program ok kel lo erze kenyseggel rea galhassa nak a z operaci os rendsze rre zdulese ire is, maga t a Windows-t is ugy te rve zte k, hogy az esemenyek kell oe na rnyal tak legyenek. Ez az esemenytipusok gazdagsagaban tukrozodik ( tre fa san aztmondhatnank : minden napra jut egy-egy). Persze , vannak olyan ese rnenyfa jtak ,amelyek nem nil gyakoriak: csak bizonyos tfpusii tevekenysegek eseten kovetkeznekbe, de akkor ezerszamra, Mar egy tires, standard ablak megjelenftese is (aktivalassales deaktivalassal, ablak-rajzolassal, stb kapcsolatos) esemenyek hosszu sorat valtjaki.Az ope ra cios rendszer a be erkezo e semenye ke t uz enete kke formalva va ra koz osorokba iilte ti , es feldolgozasra a vele kapcsolatban sz6ba jovo program-szalakhoz esablakokhoz kozvetf ti (angolul: broadcasting) . Az ablak uzene t- fe ldolgozo ja - haszohoz jut - e lvegzi azuzenetnek (azablak tipusatol is fuggo) feldolgozasat, amelyetkovetoen az iizenet torlodik a sorb6l.E rendsze r, mely az egymassal parhuzamosan fu to programok koz ti ada tc se rehezszukseges , latha toan e leg bonyolu lt : a szukseges e lo ismere tek b ir tokaban is, c sak alegalapvetobb reszeinek a megismerese kb 3 h6napos intenziv tanulast igenyel.1.4.3. Proceduralis kontra esemeny-vezerelt programokA tradicionalis, strukturalt, proceduralis prograrnnyelvekkel keszitett alkalmazasokcsak az utasitasok elore meghatarozott utjan haladhatnak vegig,Ez zel sz emben az e semeny-ve ze re lt a lkalma za sokba n a program egye s re szei tesemenyek aktivaljak, azaz az esemenyek bekovetkezese hatarozza meg, hogy eppenmelyik (esemeny/uz ene t-kez elo) kodresz fut. Mas sz6val ez azt i s jele nti, hogyesemeny-vez erelt programokban a ltala ban nem egyertelmue n meghat aroz ott aprograrn-utasitasok vegrehajtasanak az iitja,1.4.4. A Visual Basic mfikddesi elveMivel egy atlag-felhasznalonak nem a Windows armigy is erzekeny lelkivilaganak apiszka la sa a cel ja , hanem az, hogy egyszeni , de szamara szukseges feladatokat - hanem is optimalisan, de - helyes miikodesre kepesen megcsinaljon, szoftvergyartassalfoglalkoz 6 ce ge k olyan programfejl eszt o e szkozoket keszit ette k, amelye k nemigenylik a Windows i izenetek tar ta lmanak- es feldolgozasuk technikajanak a precfzismeretet, esjelentosen megkonnyitik a programozasi munkat,

    7

  • 5/11/2018 Visual Basic s Excel programozs

    9/92

    I.FEJEZET

    E fej le sz to e szkozok a segi tseg likkel keszi te tt p rogramokhoz egy futtat6 magotka pcsolnak, amely a program mukodese kozben maga hoz vonja az e semenyektobbse ge nek a kez ele set, e s c sak azokat ha gyja meg a felha sznalona k, amelye kfelhasznaloi szempontbol fontosak (amelyek az 0 szempontjabol informativak) . Ez amegva losf ta si mod ugyan - mivel nem kepes figyelembe venni a keszi te tt pr -ogramsajatossaga it - kevesbe hatekony esemeny-kezeles t e redmenyez, min tha - p iC++nye lven - mi magunk frnank meg a szukseges , a z a lkalmazas jel lege t i s f igye lembevevi: esemeny-kezelo kodokat, am az alkalmazasok jo reszenel ez nem kizaro tenyezo.A Visual Basic egyike az elso i1yen elven megvalositott, integralt fejleszto kornyezetet(angolul: Integrated Development Environment) nyujto programozasi eszkozoknek.

    1.5. A Visual Basic Integralt Fejlesztei Kornyezet (VB IDE)A VB olyan programozasi f eluletet nyu jto fe jlesztoi kornyezet , ami biztos it ja akulonbozo programozasi fazisok (form-szerkesztes, programiras, forditas, program-osszeszerkesztes, valamint teszteles) hatekony elvegzeset.1.5.1. A Visual Basic lehetosegeiA Windows egyszerii programozhatosaga iranti igeny a Microsoft ceget a VB-nekprofe sszional is fe jlesztoe szkozze fe jlesztesere osztonoz te , A legujabb val tozata- a nativ programk6d generalasanak a lehetosegevel - a legtobb alkalmazasi ter iile tenmar gyorsasagban is felveszi a versenyt a legjobbakkal, es tamogatja az alkalmazasokszeles koret, az egyszerii (standard) Windows programokon tul lehetove teve- sajat objek tumtfpusok ( tin Class-ok) letrehozasat- -programok ha tekony modula riz ala sat (ma s programokban felha sznalha to

    programkomponensek kesziteset a {;.omponent Object Model szabvanyai szerint)- a leg tobb fe jlesztorendszer a ltai i smer t unActiveX vezerlesek- es dokumentumok

    keszfteset- es felhasznalasat (ez az Qpen Qontrol Executable nevii szabvanytovabbfejlesztese)- a Microsoft informacio eleresre szolgalo tij szabvanyan (flctiveX Data Objectt echnol6gia) ala pulo i nforma ciosz ol ga lta to- es fel ha szna lo komponense kkesziteset (amelyek reven nemcsak relacios- , hanem hierarchikus adatbazisok, sottetszoleges informaciok is szolgalta thatokka es elerhetokke valnak, lenyegebenazonos felhasznaloi interfeszen keresztiil)- olyan komponensek keszfteset, amelyek szolgalta to- vagy felhasznalo tfpusuWEBalkalmazasokban alkalmazhat6k.

    E lehetosegek koz il l c sak az egysze ri i- , valamin t az ada tbaz isok e le re se re szo lgalofelhasznaloi interfesz cehi objektumokat tartalmazo programok kesziteset targyaljuk.

    8 9

    BEVEZ E T ES A PROGRAMOZAS BA

    1.5.2. A Visual Basic (azaz a VBIDE) inditasaA program a Microsoft vizualis fejleszto eszkozoket tartalrnazo (es nem az alkalmazoiprogramokat magaba foglalo) programcsaladjanak egy tagja , ezert standard m6doninsta llalva (a konyv frasakor Iegiijabb, 6-os verzioszarmi valtozata t) az indftasaraszolgalo vb6.exe nevii fajl a \Program Files-Microsoft Visual Studio konyvtarVB98 nevii alkonyvtaraba keriil. Ettol el lehet terni, de nem erdemes, mert kulonbenelofordulhat, hogy egyes o t ha sznal n i akar o (nem MS programok) nem talaljak meg.Indftasa tobbek kozott a Start gomb Programs menuje illetve Run parancsa altai,vagy a DeskTop-ra helyeze tt - vb6.exe fajlra mutate - shortcut reven tortenhet,1.5.3. A VB fejleszto kornyezetenek eldhivasa es kinezeteA fejlesztokornyezet kozvetlenul az elindulasa utan (a projekt-tipus kivalasztasatl ehetove te vo varaz slo kikapcsolt al lapota e sete n, lasd: a Tools - Options ... -Environment lap When Visual Basic starts opcioja t; avagy a varazslo ablakabanStandard EXE - t valasztva) alapertelmezesben az alabbi kepet mutatja:

    MenubarToolbarsorokProjectExplorerablak

    Propertiesablak

    Toolbox Form design ablak Form Layout ablak1 .dbra: A Visual Bas ic 6 integrdlt fejlesztokornyezetenek elemei (MDI modban)

  • 5/11/2018 Visual Basic s Excel programozs

    10/92

    I. FEJEZET

    1.5.4. A VB fej lesztd kdrnyezetenek megjelenitesl modjaiA Visual Basic 6 integralt fejlesztokornyezete ket megjelenitesi-hasznalati modbankepes miikodni: az alapertelmezes szerinti MDI (Multiple Document Interface),vagyaz SDI (.s.ingle Document Interface) m6dban. Beallftasa a Tools . - Optionsmenuvalasztas eredmenyekent megjeleno Options dialogus-ablak Advanced lapjanleva SDI Development Environment kapesol6val tortenik.Az igazsag az, hogy a fe j Ie sz torendsze r a ltal keze lt "dokumentumok" (azaz aVBeseteben: a fejlesztett programok) kezelese szempont jabo l a ket mod kozot t n inesalapveto ktilonbseg. Killonbseg esak a fejlesztorendszernek a ket modban kisse elteromegjeleneseben, ablakainak nemileg eltero kezeleseben es egy-ket aproIDE kezelesielteresben mutatkozik: a benniik rejlo lehetosegek meg nincsenek teljesen kiaknazva,E mukodesi modok alapvetoen annak specifikalasara szolgalnak, hogy egy programegyidejiileg csak egy- vagy akar tobb dokumentummal is foglalkozhasson-e . AzSDImodban miik6do programok (mint peldaul az MS Paint) ablaka- e s menuje tel je smertekben az aktualis dokumentum szolgalataba van allitva , es az ilyen programokkenytelenek valamilyen formaban lezarni az aktualis dokumentummal valofoglalkozast, mielott egy masikba kezdenek. AzMDI medii programok (mint peldaulaz MS Word, Excel stb) ez ze l szemben mege ngedik a tobb dokumentummalegymassal parhuzamosan tor teno foglalkozas t ugy, hogy a program ablakan bel ti lminden dokumentum szamara egy "gyerek" -ablakot rendelnek (az ilyen programokWindow menuje tamogatja az , ,6voda" kezeleset). AzMDI programban mindig egy"gye re k" aktiv, es a program menuje is e nne k a sz olgalat aba van a llitva, Meg a z ismegtortenhet, hogy a menu a "gyerek" igenyei (a dokumentum altipusa) szerint kicsitm6dosul. A "gyerek" -ablakok mozgathatok, minimalizalhatok es maximalizalhatok,de csak a "sziilo" program ablakanak keretei kozott ,A VB IDE az MDI mod nyujtotta lehetosegek kozul csak a hozza tar tozo ("gyerek"-)ablakoknak egyetlen keret-ablakba (a VB IDE "sziiloi" ablakaba) foglalasat- es azazon belul tor teno kezeles lehetosegei t hasznal ja k i, de hatassa l van az ablakok un"dokkolhatosagara" is. E fogalmat eloszor a Microsoft az 0 ff ice'97 - programokbanvezette be az eszkozsoroknak a kepernyon tor teno egyszer ii csoportositasa es gyorsatrendezese celjabol, de mostanra az egy tornegben val6 kezelesuket (atmeretezes,rnozgatas, stb) is magabafoglalo altalanosan alkalmazott ablakkezelesi technikavafejlodott. Ezert eloszor e fogalmat kell tisztaznunk.Ablakok dokkolhatosdga azt jelenti , hogy az ilyen ablakok kepesek akar egy csoport-kepzo ablak "uszodokkjaba" foglaitan, akar egy ablak keretehez belulrol ragasztottan,"szarazdokkban" megjelenitodni, A dokkolhato ablakok - az egyetlen bezaro gombottartalmazo cimsoruknal fogva az eger bal oIdali gombjaval elhuzva oket-elha gyha tjak dokkjukat, e s a kepemyo te tszole ges he lyere usz tatha tok, hogy ottszabadon es egyrnastol f iiggetleniil .Jiajozhassanak". Ismet egymas kozelseget vagyegy "szarazdokk" biztonsagat kivanva elegendo egymashoz vagy a parthoz uszniuk: amegfele lo ("uszo"- vagy "szaraz"-) dokk kialakitasa es a bedokkolas automatikus.10 11

    BEVEZETES A PROGRAMOZASBA

    Az ablak-dokkolas ket Iehetseges modjanak az alkalmazhatosaga altalaban attol f iigg,hogy az ablakokat kezelo program SDI avagy MDI modu alkalmazaskent rmikodik-e.Mivel csak az MDI programokba n van e gy olyan "szlil o" abla k, amelye n be lliImozogha t a z ossz es hoz za tartoz6 "gyerek", e zert a dokkola snak az abla k-keretbelsejehez ragasztassal torteno megoldasa csak azMDI programoknal megengedett eso tt i s c sak a dokkolha to "gye rek" -ablakoknak a "sz ii lo" ablakaval kapcsolatbanl ehetse ges, A dokkolasna k abla k-c soportositassa l, a zaz "uszodokkal" t ortenomegoldasa akar SDI akar MDI modban kiv itelezhe to , Az uszodokkok (hasonloan adokkolhat6, de aktualisan szabaduszo ablakokhoz) a bedokkolt osszes ablakkal egyutta kepernyd tetsz/i leges helyere ehiszrathato. Az MDI modti alkalmazasok nem-dokkolhato "gyerek" abla kai e llenbe n - jo gyerekekhe z me ltoan - c sak a "szli lo"ablakan beltil, annak "szaraz" -dokkok altal Ie inem fedett reszen tar tozkodhatnak.Kivetel erositi a szabalyt: az eszkozsorok (amelyek ablakaban a cimsort duplavonalhelyettesfti) csak szarazdokkba (SDI modti a lkalmazasokban ped ig k izarolag aprogramablak menusora ala) dokkolhatok.A VB IDE a fejlesztoi kornyezet ablakai dokkolhatosaganak specifikalasat az Optionsdialogusablak Docking lapjan teszi lehetove,1.5.5. A VB fejlesztf kornyezetenek elemei.A VB f ej le sz to kornyeze te - ku lonboze mukodes i f az isaiban - az a labb i ablakokatjeleniti meg:Meniisor (menubar): fixen a fej le sz torendsze r programablakanak c imsora a la ttmegjelenftett sor, amelynek tartalma m6dosfthat6.Eszkozsor (toolbar): a fe jlesztorendszer funkc io inak gyors e le re se re szolga lonyomogombokat tar ta lrnazo dokkolhato, a tmeretezheto ablak, amelynek tar ta lma ism6dosfthat6.A menu- es az eszkozsorok kezelese aMS Office programjaihoz teljesen hason16;modosftasuk a Customize dia logus-ablakka l tor tenik (ami a menu- e s e szkozsorok.gyor smenujevel vagy a View - Toolbars - Customize . .. menu altal erheto el) .Eszkoztar (toolbox): olyan dokkolhato es atmeretezheto ablak, amely a keszitendoprogram ablakainak fejlesztese folyaman hasznalhato, tobbsegukben a felhasznaloiinterfesz elemek prototipusaul szolgalo, nyomogombszenien mtikodtetheto eszkozok,az tin vezerlesek tarhazaul szolgal. A vezerleseknek tobb csoportjuk van:- a Visual Basic beepfte tt ( - intrinsic) vezerlesei; az eszkoztar fix elemei,- az ActiveX vezer le sek az e szkoztar szabvanyos kiegeszftesei ( a Visual Basic

    Learning Edition kevesebb-, a Professional- es az Enterprise Edition tobb hasznos,tovabbi ActiveX vezerlest is tartalmaz, de azok az igazan fontosak, amiket aMicrosoft az egyeb termekeihez, i lletve az t in third party cegek a sajat program-termekeikhez kapesol6d6an adnak; amelyek egyebkent a termek insta llalasakorautomatikusan regisztralodnak),

  • 5/11/2018 Visual Basic s Excel programozs

    11/92

    1. FEJEZET

    - a tervezo-e szkozok (~designers) hasznos segedeszkozok bonyolult kapesolatokszemleletes specifikalasara; ezek azonban esak annyiban tekinthetok vezerleseknek- a beillesztheto objektumokhoz (- insertable objects) hason16an -, amennyibenaz eszkozta rba illesz thetok e s bi zonyos tekinte tben hason16an ke ze lhe tok;reszletesen nem foglalkozunk veliik.

    Az eszkoztar bovitese/modosltasa a Project - Components . .. menii vagy a Toolboxgyorsmenujenek Components... paranesa altal felhfvott Components dial6gus-ablakban teheto meg, a komponensnek megfelelo checkbox (kapesoI6) kipipalasaval,Pro jekt ablak (project explorer): az aktua li s fe jlesztomunka soran keszulo vagyfelhasznalt projektek es projektelemek hierarehikus listajat tartalmaz6, dokkolhat6 esatmeretezheto ablak, mely lehetove teszi a lista egy elemenek kivalasztasat, az adottel emmel a menii va gy az elemhez ta rtoz 6 gyorsmenii alt al hoz za juk ka pesol6d6funke i6k kezdemenyezese t, mint p i az e lem e lmente se , a tnevezese, a kapeso l6d6e lemhez (eset leg) tar toz6 programk6d i ll ablak e lohfvasa. Megjegyezzi ik, hogy azu t6bbi ket miive le t a z ablak c imsora a la tt i e lso ket , View Code ill View Object neviinyomogombokkal is vegezheto, es hogy az atnevezes miivele te aWindows Explorer-hez hasonl6an is tort enhet (a kivalasz tast kove toen a ne vre t orteno kattinta ssalkezdemenyezve), tovabba hogy a Properties ablak mindig az aktualisan kivalasztotte lemre vonatkoz6 informaciokat mutatja . Az ablak cfrnsora - az ablak tfpusara uta16Project szocskat kovetoen - az aktualis projekt nevet tartalmazza.A fejlesztomunka a kifejlesztendo alkalmazas komponenseinek eloallitasabol all. Alegegyszer iibb a lkalmazasok egy-komponens iiek . Minden egyes komponens egy

    proje kt e redmenye , azonban lehetnek olyanok , ame lyek mas komponenseket e sakfelhasznalnak. Peldaul, a feladatunk lehet egy, az eszkoztarban is hasznalhato eszkozpro to tipusanak ("sablon janak"; egesz pontosan: egy t ij ActiveX ve zerlesnek) a zeloallitasa . Tesztelese celjabol egy masik projektben hasznaljuk, ugy, ahogy azt majd- a vezer le s k ibocsa ta sa utan (lasd: 1 .2 fe jeze tre sz ) - a f elha szna lo ja is tenni fog ja .Ha a veze rles t kesz "bina ri s" forma jaban i llesztenenk a tesztelo pro jektbe , akkorvalahanyszor modositanunk kellene a vezerlesen, Ie kene zarni a tesztelo projektet,meg kel lene nyi tn i a vezerles t let rehozo t e s a val toztatasok e lvegzese u tan e lo keneallitani a vezerles uj "binaris" valtozata t, majd vissza kene terni a tesztelo projekthez(gondoljuk meg: esetleg egyetlen utasf tas megvaltozta tasaer t egy hosszti es unalmasmiivele tsor t kellene vegrehajtani) , Ezen konnyit a projektek egyideju hasznalatratorteno megnyitasanak a lehetosege, ugyanis barrnely projekt latja es akar forrasnyelviszinte n is haszna lhatja a vele egyidejii leg nyitott (aza z a Project Explorerbe nlistazott) projektek komponenseit (termeszetesen esak helyes specifikalasuk eseten esegy apr6 feltetelt betartva: be kell zarni a hozzajuk tartoz6 fejlesztoi ablakokat).Tulajdonsagok ablak (properties): az aktualisan kivalasztott objektum (form vagyvezerles) tulajdonsagainak lista ja t tar ta lmaz6, dokkolhat6 es atmeretezheto ablak. Al is ta ket osz lopos: az e lso a tulajdonsag neve t, a mas ik pedig - ugyanabban a sorban-az illeto tulajdonsagerteket tar ta lmazza. Az ablak cimsora - az ablak tar ta lmara utalo12 13

    BEVEZETES A PROGRAMOzASBA

    Properties szocskat kovetoen - az aktualis objektum nevet tar ta lmazza, kozvetlenula la tta ped ig egy legord lthe to l is tamezo (un Combina tion Lis tbox) seg it i a Pro jektablak aktualisan kivalasztott elemehez tartoz6 objektumok kozti valasztast.Urlap-elrendezes ablak (form layout): az aktua li s projek thez tar tozo i irlapoknak aprogram futasa kozbeni ke pe rnyon tort eno elhel ye ze se t segito, dokkolhat 6 e sa tmeretezhe to ablak , ame ly az egyes i irI apok szi lue tt je t mutat ja , a megfe le lo i irlapnevevel, Az iirlap-sziIuettekkel kapesolatban egyetlen miivelet vegezheto: az egerrelt orteno elhuza s. Az a blak az aranyokat tekintve korre kte n mutatja a z i ga zi iirIapkepernyon elfoglalt helyzetet, Figyelem: az ablak esak a fejlesztorendszer MDI mediitizemeltetese eseten mukodik; ugyan SDI m6dban is elohivhato, azonban az iir Iapokfutas kozbeni helyet tenylegesen az iirlap-ablak fejlesztes kozbeni helye szabja meg.Urlap-tervezo ablak (form designer): olyan atmeretezheto, de nem dokkolhat6 ablak,ame lynek kinezete e ltero a VB fejlesztorendszerenek SDI ill MDI m6dban tortenouzemeltetese eseten. A fejlesztorendszer- MDI modu hasznalatakor az iirlap-tervezo ablak az alkalmazas kepernyoinek (azaz

    a program felhaszndloi interfeszenekt vizualis tervezesere szolgalo beepite tttervezoeszkoz ablaka; az urlap-tervezo ablakon beliil lathato maga az iir lap, hiventukrozve annak futas kozbeni k inezetet , Az i irlap mere te a kere ten latha to ha remkitoltott a tmeretezo negyzetek elhuzasaval m6dosithat6. Figyelem: a fejleszto-rendszer e modj aban az urlap-tervezo a bla k helye ne k az iirlap futa s kozbenikepernyobeli pozic iojahoz nines semmi koze (IasdaJorm layout ablaknal);

    - SDI modu hasznalatakor az iir lap- tervezo ablak maga az iir lap- terv; a tmeretezeseaz ablakok szokasos atmeretezesi technikaja szerint tortenik, Figyelem: a fejleszto-rendszer e modjaban ez az ablak szabja meg az iir lap futas kozbeni helyet,

    Ked-szerkeszto ablak (Code Editor): a program irasat tamogato egyszer ii , de azertj61 hasznalhato editor atmeretezheto ablaka. Hasonl6an az tir lap- tervezc ablakhoz:nem dokkolhat6, es cfmsora is ugyanolyan tartalrmi es funkciojii.Az urlap-t erve zo e s a kod-sze rkesz to a blak, valamint az e szkozta r el emeine khasznalatat a fejleszto-rendszer hasznalatanak targyalasakor mutatjuk be reszletesen,Hibafelde ri td ablakok (debugging ablakok; fa jtai : immediate, locals, watch): aprogram tesztelesekor a kod-sze rke sz to ablakka l egyut t a h ibak fe lder iteser e j61hasznalha to , c imsort (de abban esak bezaro gombot) tar ta lmaz6, a tme re tezhe to e sdokkolhat6 ablakok. Hasznalatukat egy kifejezetten ezzel foglalkoz6 fejezetben, kulonismertetjiik.Objek tum-a ttek in to ablak (object browser): az aktualis projektben hozzaferhetoobjektumokr61 rendszerezett attekintest ad6 eszkoz cfmsorral (abban rendszermenii-,minimalizalo illmaximalizalo valamint bezaro gombbal) megjeleno, atmeretezheto esdokkolhat6 ablaka. Elohivasa vagy a View - Object Browser menuvalasztassal, vagyaz F2 gombbal tor tenhet . A l is ta e sak azoka t az objek tumokat mutat ja ( r6 luk tobb-

  • 5/11/2018 Visual Basic s Excel programozs

    12/92

    I. FEJEZET

    kevesebb informaciot nyujtva), amelyek "gyiijtojenek" (pontosabban: objektum-konyvta ranak) e le re se re (azaz az a ltala tar ta lmazot t ob jektumok haszna la ta ra )vonatkozo igenyilnket elozoleg aProject - References . .. menuvalasztassal felhfvodoReferences dia logusablak seg it segeve l "be je lentet ti ik". A "gyuj to" nevenek adialogusablak Project/Library feliratu legordftheto Iistamezejeben torteno kivalasztasau tan a bal o ldal i, Classes nevii listarnezoben kijelolve egy objektumtipust, a jobboldal i mezo a lei ra sa ra szo lgalo informaciokat e s a vele kapcso la tban vegezhe totevekenysegeket l is ta zza, Ezek barme ly ikere kat tintva ro luk az ablak a lso re szentovabbi, neha ny soros i nformac iot kapunk, e s ha te ljesen kimerito targyalastigenylunk, akkor a sarga kerdojele t abrazolo Help-gombra nyomva azon-line Helpmegfe le lo lap ja jon e lo , A VB nevii "gytijto" a standard Visual Basic-, mig a VBA aY.isual !l.asic for Office dpplications programfejleszto kornyezetekben hasznalhatoobjektumtfpusokat (pontosabban: oszta lyokat) tar ta lmazza. A VBRUN ne vii a VBfe jlesztesu programok futas kozben is e le rheto osz ta lyai ro l ad informac iokat (ez agyiijto tar ta lmazza peldaul az osszes VB-konstanst). A Copy to Clipboard gombbalvagy a gyorsmeniivel a kivalasztott e lem aClipboard-ra masolhato,Az objektum-dttekintd az obiektum-orientalt programozas melyvizein nem jaratosakszamara is hasznos objektum-informaciok (fgy pI a VB eloredefinialt konstansnevei)attekinteseben es kodablakba torteno masolasaban nyujt tenyleges segitseget.1.6. Mlntapelda: Az elsd programHogy lassuk a VB IDE altali programozas hatekonysagat, elkeszitjuk a programozasinyelvek tankonyveinek szokasos elso programjat, a ,,Hello" - t. Elinditasat kovetoen eprogram bekeri a felhasznalo nevet, hogy aztan udvozletbe illesztve jelenftse meg azt.Elindftva az IDE-t a ll ft sa be azMDI megjelenftesi modot es a Standard EXE opciot,hogy a fejl esztokornyez et kinez ete a z 1.dbra kinezetehez hasonlo legyen, majdhajtsa vegre az alabbi lepeseket, egyelore meg nem sokat torodve a dolgok rnier tjevel:1 . Duplan kat tintva a Properties ablak Caption soranak jobboldali reszere a kiemelthatterszfmi Form1 szot frja felii l aHell6 program szoveggell2. Kattintson az eszkoztar Label gombjara (aminek eredmenyekent az benyomott

    a llapotuva valik), es az eger kurzorat mozgassa az tir lap- terv fole (kozben vegyeesz re , hogy az ege r-kurzor mikor va lt a tPrecision Select tfpusiiva). Szemeljen kiegy lehetoleg szimmetrikus tegla lap alaku ter iile te t az iir lap belsejeben, ~s annakbal-felso sarkatol a jobb-also sarkaig huzza el az egeret a bal-gombjanaklenyornasa melle tt . Vegye eszre , hogy az eger-gomb felengedesekor az eszkoztarLabel gombja visszaugrik .normalis a llapotaba, az eger-kurzor visszavaltozikNormal Select tipusuva - nyilla), es letrejon egy atmeretezo negyzeteket istartalmaz6, bal-felso sarkaban Labell szoveget tartalmazo teglalap,

    3. A Properties ablak Alignment sorara ka ttintas ut an va lassza a lista 2 - Centersorat!14

    BEVEZETES A PROGRAMOzAsBA

    Duplan kattintva az urlapnak egy, a tegla lap altal Ie nem fedett reszere megjelenika kodablak, a szoveg-kurzort a masodik sor legelejen villogtatva . Jrja be ide ezt:Labell.Caption="Hello, "+InputBox("Kerem a nevet", "Nev megadas")+"!"egu l mentse e l a lko ta sa t a too lbar Save Project gombjaval kezdemenyezve;

    mindket dia logusablakban egy- es ugyanazon sajat, tij konyvtarat es fajlnevekkentpedig ugyanazon (kiterjesztes nelkuli) nevet adjon meg!a program kesz is! A fejlesztorendszer ekkor nagyjabol az alabbi kinezetu:

    Pr iv at e s ub F ormLo ad 0Labe ll .Caption =-"Hel16, " + rnputaoxjvxerenEnd Sub

    Most indit sa e l (- futtassa) a programjat a toolbar Start gombjavall A megjelenoalabbi bal oldali dialogusablakba Ediimer bdcsi szoveget Irva es az OK-ra kattintva ajobboldali ablak valik lathatova, Az ablak bezarasaval vagy a toolbarEnd gombjaval aprogram futasa leall (az IDE program-inditast megelozo allapotaba visszakeriilve).

    2. dbra: A "Hello" program miikodtetese soran megjeleno ablakokA program nehany lathato objektumbol (pI a sZ,ovegetmegjelenlto uncimken;e:o!lI aprogram-ablak), es egy sereg ezek altal- vagy koddal (pI!npu!Box. ablak) ~u~odesbehozott lathatatlan, VB-be epftett objektumbol all. Ezeket vizsgalgatjuk a tovabbiakban,

    15

  • 5/11/2018 Visual Basic s Excel programozs

    13/92

    1. FEJEZET

    1.7. A Visual Basic objektum-modeUjeAz 1.4 fejezet re szben proba ltunk rae reztemi a rr a, hogy - a programozast aWindowsa ltai lehetove tet t legelemibb szinten vegezve - az a lkalmazasfej le sz te s igen nehezvolna. Utaltunk ra, hogy a Visua l Basic egy lenyegesen egyszeri is itet tesemenymodellel dolgozik; e fejezetresz az ennek alapjaul szolgaloobjektummodellrol es az esemenymodellel val6 kapcsolatarol sz61.1.7.1. A Visual Basic objektumaiA Visual Basic-ben fejleszte tt a lkalmazasi program egymassal kapcsolatban allo,egymasra hat6 objektumok rendszere. Az egyes objektumoknak (mikent azembereknek is) tulajdonsdgaik, onallo cselekveseik (- tevekenysegeik; szaknyelvrefordftva: metodusaiki es a veluk kapcsolatos esemenyekre adott valaszaik(- esemeny-kezel/i eljarasaiks vannak. Ezek az objek tumok j6val ossze te ttebbek aWindows programozasanak legelemibb szintjen elerhetoknel, ugyanis kialakitasukat aVisual Basic keszitoi a felhasznaloi igenyek oldalarol kozelitettek meg.lgy peldaul, az 1.6 fejezetresz programjaban VB objektum az interfeszt biztosito iirlap(- form) es a rahelyezett , szoveg megjelenitesere szolgalo cimkemezo (~label). Aziir lap cimsoranak rendszermenii-, minimalizalo- es maximalizalo, valamint bezarogombjai i s objek tumok, c sak nem a Visual Basic direkt kezeleseben levok, hanem aWindows elemi - aform reszekent automatikusan letrehozott - objektumai.A Visual Basic csak az altala nyujtott komplex objektumok programozasat igenyli, esazt is csak akkor , ha szamukra az alapertelmezettol e ltero viselkedesmodot szeretnenkeloirni. A Windows esemenymodelljenek emlitett egyszertisitese abban nyilvanul meg,hogy a Visual Basic . futtato magja" ( lasd: 1.4.4 fejezetresz) a "saja t" objektumaivalkapcsolatban azok igenyeinek jobban megfe le lo e semenyeket e s belso i iz enetekethasznal (aWindows-esemenyek ujrastrukturalasa es elofeldolgozasa altal),Az emlitett programban pe ldaul egyalta lan nem kell fogla lkoz nunk a cfmsorgombjaival, ezek kezeleset a futtat6 mag maga intezi el. De hogy a programhasznalojanak lehetoseget biz tositson peldaul az ablak-bezaro gombra kattintaskor abezarha tosag konfi rmalasara (ahogy azt az Office alkalmazasokban megszoktuk),a ze rt a Visual Basic keszi to i def in ia ltak egy olyan - c sak a Visual Basic-ben letezo -esemenyt, amit a futta to mag general a bezaro-gornbot tar ta lmazo iir lap szamara, Azurlap programozojanak lehetosege van e rre az un QueryUnload esemenyre tortenoreagalasra az iirlaphoz kapcsolodo QueryUnload tipusu esemeny-kezelo eljarasban;peldaul ugy , hogy a "Do you rea lly want to qui t? " ke rdesnek az e lozo peldaban latot tInputBox fuggveny segitsegevel dialogus-ablakban torteno megjeleniteset kovetoen avalaszt feldolgozva a futtato magot ertesitheti a program befejezodesenekengede lyezeserol , vagy let il ta sa ro l, Programozoi keze le s h ianyaban a fut ta to magaltalaban az objektum tipusanak legmegfelelobb, alapertelmezett kezelest vegzi,

    16

    BEVEZETES A PROGRAMOzASBA

    A Visual Basic ke szftoi minde n "sa jat" obj ektumtipus szamara de finia ltaktulajdonsagokat, amelyeket az objektumhoz kapcso16d6 tevekenysegek parameterkenthasznalnak fel. Igy peldaul, egy iirlap megjelenitesekor az iirlap rajzolo tevekenyseg-eljarasa annak Left es Top tulajdonsagai t a ra jzolando ablak bal -fe lso sarkanakkepernyobe li poz ic io jakent , a Width es Height t ul ajdonsagai t pe dig a z abla k~erete kent hasz nalja , A kulonbozo objektumti pusok te rme szet esen mas-maslulajdonsag-, tevekenyseg- e s e semeny-kezelo halmazzal r ende lkeznek, de az isnyilvanvalo, hogy az azonos tipusu, de ktilonbozo konkret objektumok tulajdonsagaitis kulon-kulon kell tarolni. Ezert a programfejlesztes kozben letrehozott objektumokjellemzoirol az IDE, a program fu ta sanak faz isaban pedig a VB futta t6 magja vezetnyilvantartast (az objektumok - azonosfthatosaguk erdekeben - nevvel rendelkeznek).A ket nyilvantartas nem szuksegkeppen egyezik meg. A VB futtat6 magjanaknyilvantartasa az IDE f ej le sz te si val toza tanak tar ta lmava l inicial iz alod ik , de aztkovetoen - az alka lmaz as mene tenek megfele loen, programozas utj an - sz intetetszoleges medon valtozhat: meglevo objektumok rnodosithato tulajdonsag-ertekeimegvaltozhatnak, de a nyilvantartas akar bovulhet is ( le trehozott uj objektumokkal),aka r szi ik ii lhet i s (ob jektumok torlesevel ), Sot , vannak olyan objektumtipusok is,amelyeknek bizonyos tulajdonsagai csak a program futasa kozben allfthatok,Mivel azonos tipusu objektumokhoz akar eltero esemeny-kezelesi modok isdef in ia lhatok (gondol juk meg: mas esemeny-kezeles szukseges egy a lkalmazaskeretekent-, es mas az opci6k beallftasara szolgalo ablak bezarodasanakkonfirmalasahoz), azert az esemeny-kezelo eljarasok nyilvantartasanak is a letrehozottkonkret objektumokhoz kotodonek kelliennie; a tulajdonsagokehoz hasonloan,Ezzel szemben az azonos tipusu objektumoknak a cselekvesi lehetosegei- es modjailenyegeben azonosak; elteres csak annyiban lehet, amennyiben a tevekenyseg-eljaras- vegreha jtasa kozben - pa rame te rkent az egyes objek tumok ese tJeg e ltero e rtek iitulajdonsagait hasznalja (ahogy az urlap rajzolo tevekenyseg-eljarasnal lattuk) . Sot,ezek a program futasa kozben nem is bovfthetok, ezert e legendo, ha nyilvantartasuk azegyes objek tumt ipusokhoz (e s nem az egyes objek tumokhoz ) kotodo. Az Olvasorahagyjuk annak a meggondolasat, hogy ugyanez vonatkozik az objektumokalapertelmezett esemeny-kezelo eljarasaira is. Figyelembe veve az egyesobjek tumtfpusokhoz kapcsol6d6 tevekenysegek nagy szama t e s bonyolu lt saga t,latha to, hogy nem keyes memoria -megta karfta st e re dmenyez a z, hogy az e gye scselekvesi m6dokat megval6sft6 programk6dokat nem kell objektumonkent ismetelni.Az objektum-orientalt programozas egyik legalapvetobb elve az, hogy az objektumoka tevekenysegeike t onmagukon vegzik, Nem egyik objek tum dolgozik a mas ikon,hanem a munka e lvegzese annak az objek turnnak a fe lada ta , ame lyen azt vegre ke11hajtani. Tehat, peldaul, nem az ablak-bezaro gomb kattintds esemenyenek kezelesetvegzo, fut ta to magban levo programkod zarja be az ablako t, hanem csak uta si ta st adneki: .Ablakoml Zard be magad!". Ez azert praktikusabb, mert sajatmagaval mindenobjek tum t isztaban van, tehat tud ja , hogy .mi jeve l - mit" kel l c sina lnia.

    17

  • 5/11/2018 Visual Basic s Excel programozs

    14/92

    I. FEJEZET

    1.7.2. Objektumtipusok - objektumokAz objektumiipus (mas neven: osz ta ly ; - class) az azonos tulajdonsaghalmazzal,tevekenysegekkel es esemeny-eljarasokkal rendelkezo objektumokat altalanositokategoria , melynek kialakitasa az objektumok egy prototipusanak a letrehozasa iitjan. tor tenik. A VB IDE eszkoztaranak beepftett- illetve ActiveX vezerlesei valojabanspec iali s, fel ha sznaloi- es/ va gy fe jle sztoi inte rfessz el rendel ke zo objektum-prototipusok, osztalyok.Az osztalyok tobbnyi re nem egymas mel le r ende lten leteznek; kozot tuk a ltalabanhierarchikus kapcsolat van, amennyiben egy oszta ly tagkent r eszt vehet egy mas ikoszta ly epfteseben. Peldaul a dmkemezo (~label) osz ta lyban tagkent ve sz reszt afont osztaly, amely a mezoben megjelenitendo szoveg karaktereinek megjelenitesevelkapcsolatos ossze s forma i jel lemzot ( a nyomdai font t ipusa , rne re te , s ti lusa , s tb )tar ta lmazza . Megtehe to terrne szetesen , hogy a tag-osz ta ly ossze s tulajdonsaga t e stevekenyseget az o t magaba fogad6 osz ta ly tulajdonsagai e s tevekenysegei kozesoroljuk; azonban ha egy oszta ly tobb oszta lyban is lehet tag, akkor a tagkent tor tenobeillesztes az alkotoelemek szimpla atvetelenel tobb szempontbol isjobb megoldas:- az objektumok tulajdonsagainak es funkci6inakjobb attekinteset teszik lehetove- a tag valamely funkcio- rnodosulasa c sak egyet len osz ta ly modosftasat igenyli ( a

    tag modositasa az ot befogad6 osztalyokat nem feltetlenul erinti)Oszta lyok rnegtervezese illetve letrehozasa olyan program-tervezoi es programoz6ife ladat , amelye t ugyan a VB IDE fejlesztoi eszkozokkel hatekonyan tamogat, deamelynek megismerese e konyv kercteit meghaladja.A konkret tulajdonsagertekekkel es esemeny-eljarasokkal rendelkezo objektumokletrehozasa tortenhet az objektum tipusanak megfelelo- IDE eszkoztarbeli vezerles- IDE meniibeli parancs (kezdernenyezesere elinditott tindesigner: plform-tervezo)- oszta lyra hivatkozo VB nyelvii, objekturn-krealasra szolgalo program-utasitasalkalmazasaval. A konyv csak az elso ket lehetoseggel foglalkozik ( lasd: 2. fejezet).1.7.3 . A Visual Basic esemenyekA Visual Basic fejle sztorendszereve l ke szult program futa sa kozben. a vel ekapcsolatban keletkezo Windows iizeneteket (lasd: 1.4.2) a prograrnnak- a fejlesztorendszeren beIiili futta tasa eseten az abba epite tt-,- onalloan tor tenf futasakor pedig a programhoz "csapott"fut tato mag (lasd: 1.4.4) fogadja, majd - "ujracsomagolva" es Visual Basicesemenyekke forrnalva - a program egyes objektumainak esemeny-kezeloeljarasaihoz kiildi, az alkalmazas igenyei szerint torteno feldolgozasuk celjabol,18 19

    BEVEZETES A PROGRAMOzASBA

    Az esemenyek kozot t vannak igen egyszeri iek (pI kat tintas ), de vannak olyanok is,amelyek egy miivele tsor vagy folyamat resz- vagy vegeredmenyeirol informalnak (pIaz eger mozgatasa egy objektum felett, vagy egy objektum megragadasa es leejtese) .Viszonylag egyszeriiek, de fontos szerepet toltenek be a direkt felhasznaloikezdernenyezes hatasara generalodo, billentyiizet- es eger hasznalatbol szarmazoesemenyek. Ezeknek az eszkozoknek a programozasaval kapcsolatban fontos a f6kusz(- focus) fogalma.1.7.4. A f6kuszA Windows mukodtete se kozbe n egy iddben csak egyetlen a blak (- form) vagyvezer le s lehet , ami fogadja a b il lentyi iz et to l e s az ege rtol e rkezo i iz eneteket . Ha egyobjektum ( form vagy veze rles ) i lyen , akkor azt mondjuk , hogy "na la van a f6kusz",va gy egyszeriie n, hogy "f6kusz ban va n". Nem minde n objektum kepes fogadni af6kusz t (pelda ul a z idozi torol ma r a ne ve a lapja n is gondolhato, hogy nines koz e abillentyiizethez es az egerhez), igy az is elkepzelheto, hogy az aktiv formnaknincsene gye tlen, f6kuszt fogadni kepes obje ktuma sem; ilyenkor a fe lhaszna loi inpute semenyek maga hoz a formhoz futnak be, az az a form van f6kusz ban. A f6kusznemcsak felhasznaloi kezdemenyezesre, hanem erre szolgalo VB nyelviiprogramuta sitas vegre hajta sa al tal is e gy rnasi k (ot foga dni ke pe s) obje kt umrahelyezheto,A f6kusz felhasznalol beavatkozas hatasara tor teno athelyezesenek m6djai:- a masik, "fokuszalhato" objektum hataran belul tor teno kattintassal- a Tab / Shift Tab gombok nyomkodasaval az tin Tab-sorrend (- Tab order) altai

    megha ta rozot t m6don (elore - vagy vissza) lepegethe tunk a formnak a fokusz tfogadni kepes objektumain (pontosabban, csak a TabStop tulajdonsaguk altai eztigenylokon; lasd: 3.14.1)

    Az aki iv form (~ active form) a fokusszal szorosan osszeftiggo fogalom. Amikor egyobjektum f6kuszban van, akkor az aktiv form vagy maga az objektum (ha azobjek tum maga is fo rm) vagy az o t ta rtalmaz6 form.1.7.5. VB esemenyek illobjektumok esemeny-eljarasainak azonositasaA kulonbozo Visual Basic esemenyfajtak - a programk6dban tor teno azonositasukceljabcl- tfpusukra utalo, egyedi nevekkel vannak ellatva (plClick, KeyPress).Hasonl6 okbol, az egyes objektumok esemeny-kezelo eljarasai szinten nevvel vannakellatva, de a nev kialakitasa a VB altal automatikusan tor tenik: az objektum never es azesernenytipus nevet alahuzas- je llel osszeilleszrve. Maga az esemeny-kezelo eljarasolyan standard VB nye lv ii e ljar as (lasd 4 .6 .2) , ame ly parameterkent kapja meg azesemennyel kapcsolatos osszes kiegeszito informaciot,

  • 5/11/2018 Visual Basic s Excel programozs

    15/92

    JEGYZET

    20

    2. A fejlesztokdrnyezet hasznalataE fejezetben a Visual Basic 6 integralt fejlesztokomyezetenek (IDE) az attekinteset ahasznalatahoz szukseges alapveto ismeretek osszefoglalasaval folytatjuk,Az 1.6 fejezetben bemutatott mintapelda hfven tukrozi az alkalmazasok kialakftasahozvezeto fo lepeseket (ugyan csak a fejlesztokornyezetben futta ttuk alkalmazasunkat, demeg fogjuk latni, hogy egy ilyen stadiumban levo programb61 annak onalloan, azIDEjelenle te nelkul is futta that6 valtozata mar egy laza kezmozdulatta l e lkeszittetheto),Ba r az IDE altal tamogatott hibafelderitesre a pelda eseteben nem volt szukseg (merta hibajavitas az adott instrukci6k beturol beture torten6 ellenorzesevel volt vegezheto),de e gy bonyolulta bb fe lada t kidolgozasa t mar nehe z ne lkule megiiszni (a hiba -felderf tessel- es kezelessel az 5.fejezetben kulon is foglalkozunk) . Vegul belenezve akonyvtarba, amelybe alkalmazasunkat elmentettiik: lathatjuk a letrehozott fajlokat is.A kovetkezokben eloszor a Visual Basic-ben fejlesztett alkalmazasok program- es fajl-s trukn ir ajat , majd az IDE fobb meniielemei t e s az e l6z6 fe jeze tben isn ie rtetet t.Jdszolgalo" ablakok hasznalatat tekintjiik at.

    2.1. A Visual Basic alkalmazasok strukttirajaA legegyszenibb, - a mindig szukseges VB futtat6 magot nem szamftva - onmagukbanis futaskepes programok egy-egy VB IDE alkalmazasfejlesztesi projekt eredmenyei(l asd: 1.5.5). A projekt a fejlesztese folyaman keletkezo informaciokat fajlokbantarol ja , A fa jloknak a fa jl st rukturaban tOrten6 e lhe lyezeserol a programfej le sz t6szabadon dont, azonban praktikus betar tani az egy projekt - egy konyvtdr e lvet , akiilonbOz6 fejlesztesekkel kapcsolatos informaciok j6 attekinthetosege erdekeben, Azalabbiakban a VB alkalmazas-fejlesztessel kapcsolatos legfontosabb programelemeketvessziik sorra ; teljes I ista juk a VBon- line Help Using Visual Basic - ProgrammersGuide - Part 1 - Managing Projects fejezeteben olvashat6.2.1.1. FormokEgy alkalmazas altalaban egy- vagy tobb, felhasznaloi interfesz celjara szolgalofo rmnak az a lkalmazas log ikaja sze rint i sorr endu megje leni te sebo l a ll . E formok afelhasznaloval val6 kapcsolattartas celjabol adatbevitelre es/vagy megjelenftesre illegyeb celokra (pl idozi te s) szo lgalo objektumokat tar ta lmaznak, mindazokka l afe jlesz t6 alt al i rt programk6dokkal , ame lyek az obje ktumok standardt61 e lter0mukodes i modja t i rjak Ie a VB nyelven, az IDE altal nytijtott eszkozok segftsegevel(az egyes objektumokhoz illesztett esemeny-kezelo eljarasok VB .nyelvti program-utasitasokkal tor teno kitoltese reven). Tarta lmazhatnak meg olyan eljarasokat es un

    21

  • 5/11/2018 Visual Basic s Excel programozs

    16/92

    2. FEJEZET

    fuggvenyeket is, amelyek maguk ugyan nern esemeny-kezelo eljarasok, de amelyeket- a program jobb attekinthetoseget elosegitendo - a form on beliili eljarasok.Jiivhatnak meg". Ezek olyan k6dokat tar taImaznak, meIyeket - nem kulon eljarasbantor teno megfogalmazasuk eseten - az osszes hivasi helyre szinte valtozatlanul kellenebeilleszteni.A pro jekt , a fo rmok es a benni ik e lhelyeze tt objek tumok - a barhonnan (pI a programkodjabol) tor teno hivatkozasuk lehetove .te te le erdekeben - azonosito-nevvel vannakellatva, A formok neve projekt szinten is egyedi kell Iegyen; a benniik levoobjek tumok neve v iszont c sak a hordozo formon bel ii l nem ismet lodhe t ( teha t ketkulonbozo, egy projektbeli form tartalmazhat azonos nevii objektumokat).A form aza ltala tartalmazot t objek tumok t ipusa to l fuggoen egy- vagy ket fa jlbantaro lodik. A forrnnak a szovegesen Ie nem frha t6 .alka tr esze i" (p I a r ahelyeze tt kep-objektumok kep-tar ta lma) a VB altal automatikusan egy extra-fajlba frodnak, mindenegyeb resz azonban egyet len faj lban nye r e lhe lyezes t. Ennek az t in form-faj lnak aneve nem feltetlemil kell megegyezzen a form azonosfto-nevevel, es nemszuksegkeppen kel l, hogy a VB IDE standard frm fajl-kiterjesztesevel (- extension)rendelkezzen. Az extra-fail neve viszont meg ken egyezzen a formeval es kiter jesztesecsak frx Iehet (egy pe lda ka pcsa n hama rosa n ta pa szta lni fogjuk, hogy milyenkel leme tlensegekhez vezet az ext ra -f ai l e se tleges a tnevezese ). A form e lmente se( lege Iso alkalommal, vagy ha a tovabbiakban a projektben az addigit61 eltero nevenaka rjuk hasznalni ) a File - Save -cform-nev> * As ... meniielemek altal felhfvhatoSave Fi le As cimii dial6gusablak segitsegevel tortenik, Praktikus, ha a form-fail neveugyanaz, min t az a ltala hordozot t form azonosfto-neve (a d ia logusablak a faj l neverelso alkalommal Igy is kinalja fel).2.1.2. Standard modulokAz ti n standard modulok (roviden: modulok) a program strukturalasanak eszkozei;olyan elja ra soka t- es/va gy fuggve nye ket ta rt aIma zna k, ameIye k "c sak" a bba nkulonboznek a formbeli "nem esemeny-eljarasok't-tol, hogy tobb programelemben(pI tobb formban) is hasznalt tevekenysegeket/funkciokat is kepesek megvalosf tani,Termeszetesen, - hasonloan a formokhoz - egy modulnak is Iehetnek olyan eljarasai,amelyek csak ugyanabban a modulban hasznalhatok. Viszont - e lteroen a formokt6I -tartalmazhatnak tin globalis tfpus-, valtozo-, es konstans-deklaraciokat is (lasd: 4.2.1).Megjegyezzi ik, hogy a modulok a mas fejlesztokornyezetekbol szubrutinkiinyvtdr(- eljdrdskonyvtdri neven ismert eszkozoknek a VisualBasic-beli megfeleloi.Elmentesuk a form-fa jlokehoz igen hasonlo: a File - Save Asmeniielemek altal feIhfvhat6 Save File As dialogusablak segftsegevel tortenik.

    * A tovabbiakban, amennyiben egy szovegbe egy masik, valtozo tartalrmi szoveget kell behelyettesfteni,akkor az ez ut6bbi forrasara vonatkoz6 informaciokat "< " es ">" jelek koze teve, magaba a szovegbe frjuk22

    A F EJ LE SZ TO KO RNY EZ E T H AS ZN AL A T A

    A modulok a legsz implabb edi to rra l i s sze rkeszthe to szoveg-faj lok for rna jabantarolodnak es alapertelmezetten (hacsak explicit m6don maskent nem rendelkeziink)bas fajl-kiterjesztesuek.

    2.1.3. Projekt informaciokProjekt informdciok ala tt az aktualis fejlesztessel kapcsolatos fajlok es komponensekfajlrendszerbeli helyeinek (- iitvonalainak) a lista ja t (magukat a programelemeket eshierarchiajukat az IDE Project a bl aka j61 mut atja ), es a Project -

  • 5/11/2018 Visual Basic s Excel programozs

    17/92

    2 . F E JE ZET

    4. Vegye eszre, hogy a Picture tulajdonsag altal megjelenfte tt ertek a fajl kijelolestkovetoen (none) - r61 (bi trnap) - re valtozott ; a dolog magya raz ata az , hogy aPicture tulajdonsag maga is egy objektum, aminek az alapertelmezett tulajdonsaga- a zaz a ke p ti pusa - je lenik meg a tula jdonsa g ertekeke nt (alt alaba n is: ha e gytulajdonsag objektum tipusu, akkor az ertek-mezoben az aktualisan tar ta lmazottobjektum alapertelmezett tulajdonsaganak erteke jelenitodik meg).

    5 . Hogy az objek tum a kepet ke re teze s nelku l e s e rede ti mere teben abrazol ja , a ll ft saaz objektum Appearance tulajdonsagat 0 - Flat-re, az AutoSize-t pedig True-ra!

    6. Most nevezze at magat a formot is Tiles nevre (a formnak egy tetszoleges,objektummal Ie nem fedett reszere kattintva, a Name tulajdonsag erteketmegvaltozta tva (ve gye esz re, hogy a katti nta s a ltal a Properties ablak mar akattintott objektum -jelen esetben a form - tulajdonsagait listazza)!

    7 . Vegi il mentse e l a lkotasat , mos t a File menu Save Project memuelemet valasztva,Mive l e proj ekt meg nem volt e lmentve, a z IDE meg nem tudja , hova ment se avele kapcsolatos informaciokat, Ezert rakerdez - sorban , a formokka l kezdve es aprojekttel bezarva - mindegyik mentesi helyere, Eloszor a Save File Asdialogusablak jon fel - a File name mezoben a mentendo form azonosito-nevet(Tiles) felajanlva, es a Visual Basic installacios konyvtarat mint elhelyezesi helyetmegjelolve. Persze, hogy az egy projekt - egy konyvtar elvhez tudja magat tar tani,c elszen i e konyvta rt a d ia l6gus-ablak segi tsegevel egy mas ik helyre a tjelolni(pra kt ikusa n az ala a konyvta r ala , ahova a sa jat dokumentuma it teszi , sot megazon belul is egy VB fe jleszteseket tartalmaz6 a lkonyvta r egy uj - mondjuk:SecondExample konyvtaraba), Megjegyezzuk, hogy az uj konyvtar kijelolesehezj61 lehet hasznalni a d ia logusablaknak az aktua li s konyvtar e le re si u tjat mutateIegorditheto mezejet, valamint az Up One Level illetve Create New Folder neviigombjai t. A mente s soran az a janlot t e ly sze rint fa jl -nevkent a form azonosfto-nevet celszeni alkalmazni, azonban - hogy tisztan lassuk a formok es a tarolasukraszolga lo faj lok nevenek a fugget lenseget - most k ivetelesen adja abakfitty nevet.Vegti l, a megje leno (e s vegyt ik e sz re : az automat ikusan a form-k ijeloleskorhasznalt konyvtarat mutate) Save Project As dialogusablakban a File namemezobe MyProject-t frva utasftsa az IDE-t a projekt informacioknak aMyProject.vbx fajlban tor teno elhelyezesere , Lepjen iski aVisual Basic-bOI!

    8. Gondolja at: az IDE-ben van egy standard, Projectl nevii (la sd a Project-ablakot)projekt, amihez egy Tiles nevii - MyPicture kep-objektumot tar ta lmazo - formtartoz ik. Most h iv ja e lo a Windows Explorer-t, e s a ll ft sa a t a megje lenfteset ugy ,hogy az a fa jlok kiterjesz teset is muta ssa! Megnez ve a zt a konyvtarat, ahovamostani alkotasait mentette, latnia kell a projekt-fajlt (MyProject.vbx), a form-fajlt(bakjitty.frm) es az extra-form-fajlt (bakfitty.frx) bar ez utobbirol senki se kerdezte,9. Most neve zze at a bakfitty.frx fajlt bakjitty.fry-ra esaz IDE elinditasa utan probaljabehivni a projektet a projekt-fajl segftsegevel! Hiba-uzenet jelenik meg ... Miert?

    10.Vegul, visszanevezes utan a VB-t behfva Save Form As-zel mentse el a formot iigy,ahogy "illik": Tiles neven , majd mentse a pro jektet i s (a bakjitty-fajlok torolhetok),

    24

    A F EJ LE SZ TO KO RN YE ZE T H AS ZN AL AT A

    A Visual Basic fOmeniijemenurol altalanossagban az 1.5.5 fejezetben sz6ltunk. Elore is kijelentjtik, hogy e

    nem foglalkozunk mindegyik meniielemmel, sot a Query es a Diagramegyetlen elemevel sem (ezek ugyanis olyan, adatbazisok es informaciotartalmuk

    kapcsolatos mfivele teket kezdemenyeznek, amelyek ismerte tese nemegy bevezeto jellegii konyv legszuksegesebb temai koze) , a Windows. es a

    menu elemeit pedig ismertnek tetelezzuk fel (azOffice programjaibol). A Debugevel egy kulon fejezetben foglalkozunk (lasd: 5.1.2). Vegul aFormat meniit az

    e szkoztar hasznalatanak re sz le te s i smer te te sene l tekint ji ik a t (lasd: 2.3.3) - igenh iszen funkcioik szinte nyi lvanva loak . Egyebken t az egyes menue lemek

    on-line Help-beli lefrasa a megfelelo fomenu neve alatt csoportositva talalhato meg.2.2.1. File menuKulonbozo, projektek egeszevel iIletve projekt-elemekkel kapcsolatos parancsok:- New Project: uj projekt letrehozasa (elozoleg vizsgalat tor tenik azaktualis projekt

    programelemeivel kapcsolatban: ha vannak megvaltozott tartalrmi vagy meg soseme lmente tt e lemek, akkor egy csak azoka t l is ta zo es az e lmente sukre vona tkoz6ke rdes je lenik meg, amine k igenloen torte no megva laszola sa e se ten menteshaj t6dik vegre a Save Project szaba lyai sze rint ; vegul az t ij p ro jekt t ipusanak aNew Project dialogusablak projekt-sablonjai kozul valo kivalasztasaval: vagyazonnal Ietre jon a megfele lo programelemeket tar ta lmaz6 uj projekt, vagy egy ezekmeghatarozasara iranyulo un "projekt-varazsI6" lep rnukodesbe. Megjegyzes: aVBinstallacios fokonyvtaranak Template\Projects alkonyvtaraba tett barmely komplettVB projektet a New Project dialogusablakban sablonkent jelenit meg; a VB IDEindulasara vonatkoz6, automatikus projekt-megnyitassal kapcsolatos When VisualBasic Starts opci6t illetoen lasd: 1.5.3).

    - Open Project: mar letezo projekt megnyitasa (szukseg eseten elozoleg mentesrevonatkoz6 kerdessel - mint elobb; a felhasznalo felelossege az, hogy a megjelenoOpen Project dialogusablakban egy "vaI6di" projekt-fajlt jeloljon ki).

    - Add Project es Remove Project: a tobb kompone nsii un projekt-csoport(- program-group) krealasanak es kezelesenekeszkozei; nem foglalkozunk veliik.

    - Save Project: az aktualis projekt e lemeinek a helyiikre tor teno mentese (aProject-ablak altal listazott osszes programeIemre vonatkozik, de csak az ismert helyiiekmente se tortenik automat ikusan, a nem-ismert helyii elemekre vonatkoz6an,egyenkent, Save As'* helymeghatarozo dialogus-ablak jelenik meg.- Save Project As ... : az aktualis projekt-fajl mentese, esetleges helyvaltoztatassal(elozoleg az egyeb programelemek esetIeges mentesere vonatkoz6 kerdessel).

    ** A tovabbiakban a I j e l a tol e bal ra i ll etve job b ra l evo e lemek egy iket j elol i; i tt : Project illFile egyiket

    25

  • 5/11/2018 Visual Basic s Excel programozs

    18/92

    2 . FE J EZET

    - Save : az aktua li s formnak az e rede ti helye re tor teno mente se (ha ahe lye ma r i smert , akkor mentese automat ikusa n tortenik, el lenkezo ese tbenhelymeghatarozas celjabol Save File As dialogus-ablak jelenitodik meg).

    - Save -cform-nev As . .. : az aktualis form mentese , esetleges helyvaltoztatassal (aFile name mezejeben

  • 5/11/2018 Visual Basic s Excel programozs

    19/92

    2 . FE J EZET

    a Make l apon , az ona lloan is fu ttatha t6 program-faj l tulajdonsagaiva l e skeszftesenek opci6ival:- Icon: a program-ikon fajlja,- Command Line Argument s: a parancs-sor opci6kkal (parameterekkel) is

    rende lkezo programnak az IDE-n belul i fu ttatasa e se ten a progra rnnakatadott opci6k ertekei.Remove information about unused ActiveX Controls: torolje -e a ze szkoztarba a Components dial6gusablak altal felvett , de nem-hasznaltvezerlesekre vonatkoz6 informaciokat; termeszetesen igen.

    - a Compile lapon, a forditasra vonatkoz6 ertelemszeru opei6kkal.- a Component val amint a Debug lapon a komponens-alapii programozassal

    kapesolatos opei6kkal es informaciokkal; nem foglalkozunk veliik.2.2.3. Edit meniiA meniielemeket mukodesi teriileteik szerint esoportositva ismertetjiik.A form-tervezo rmikodese soran - a form objektumaival kapesolatban es a programk6dfejlesztese kozben - az ismert celokbol es a szokasos m6don hasznalhato paranesok:Undo, Redo; Cut, Copy, Paste; Delete illetve Select All.Csak a kod-ablakban mukodve hasznalhato- szoveg keresese illetve csereje celjabol: Find, Find Next illetve Replace.- szoveg beljebb- vagy kijjebb kezdesere egy tabulator pozfci6val: Indent, Outdent

    (a tab-szelesseg az Options dial6gusablak Tab Width mezejeben allithato be;praktikus az Auto Indent kapesol6 beallitasa az utasf tasok altal meghatarozottautomatikus tabulalas igenylese celjabol).

    - szoveges fa jlnak a kodablak kurzoranak aktua li s poz ic iojatol kezdcdoen tortenobeillesztese celjabol: Insert File.

    - "konyvjelzok" elhelyezese a kodablakban tOrteno gyors pozicionalas erdekeben:Bookmarks menujenek elemivel, ertelemszeruen.

    - az alabbi meniielemek a kod irasat hatekonyan segito funkciokat val6sitanak meg:- List Properties/Methods: objektum nevet koveto pont utan alkalmazva listaban

    jelen it i meg az objek tum metodusai t' e s tulajdonsaga it ( au toma tikusan , ha azOptions dial6gusablak Editor lapjan azAuto List Members be van kapcsolva; haa szoveg-kurzor iires helyen all, akkor a projektbol elerheto osszes metodust estulajdonsagot adja; a kivalasztott elem Tab- illEnter-rei a k6dba beillesztheto).

    Pontosabban, eljdrdsoknak: nevezziik az egy eel erdekeben valamilyen tevekenyseget vegrehajto, tobbprogram-utasftast is magabafoglalo, parameterezheto, sajat nevvel ellatott programelemeket. Az erteket(pi s zamo t vagy aka r objek tumo t) i s s zo lgal ta tok a fuggveny-el ja ra sok (vagy rov iden : fuggvenyek),A specialis , egy objektumtfpussal kapesolatos tevekenysegek vegzesere szolgalo eljarasok a met6dusok

    28

    A F EJ LE SZ TO KO RNY EZ E T H AS ZN AL AT A

    List Constants: a sz ove g-kurz orral e gy objektum tula jdonsa gara tOrt enohivatkozast koveto egyenlosegjel utan allva, avagy eljaras/fuggveny konstanstfogad6 pararneterehez erve az irassal, e meniielemet alkalmazva megjelenitodika konstansok lista ja (automatikus, ha azAuto List Members be van kapesolva; ak ivalasztot t e lem a Tab- ill az Enter bil lentyi ive l a programkodba be isillesztheto).Quick Info: szintaxis-lefrast ad valtozokrol, utasitasokrol, fuggvenyekrol,e ljara sokro l, met6dusokr61 (automat ikus , ha be van kapesolva az Optionsdial6gusablak Editor lapjan azAuto Quick Info kapcsolo),Parameter Info: rovid, emlekezte to jellegii informaciot ad a kurzor pozici6jaszerinti aktualis fuggvenyrol vagy utasf tasrol,Complete Word: egy sz6 elejenek befrasa utan azt teljesse egeszfti ki(amennyiben ez egyertelrmien megteheto).

    Vegul csak felsoroljuk a nem targyalt meniielemeket: Go ToRow, Pas te Link, DeleteTablefrom Database, Remove (table from database), Select All Columns es Table.2.2.4. ViewmeniiE menii az IDE ablakainak megjelenitodeset valamint aDatabase-, Query es Viewtervezo-eszkozoknek a rnegjeleneset szabalyozo elemeket tartalmaz. Az alabbiakban ameniielemeket funkci6juk szerint csoportositva ismertetjiik.Code, Object, Project Explorer, Properties Window, Form Layout Window, Toolbox:az IDE megfelelo, aktualisan nem megjelenftett ablakait hivjak elo.Definition: a szove g-kurz orral valtoz o neve n il letve elja ra s bel sejebe n a llva:megmutatja definialasanak helyet vagy azObject Browser-beli informacios lapjat.Last Position: a k6d-ablakot az utols6 tenyleges hasznalatanak a pozfciojaba "ugratja"(a kod-ablakban rmikodve vagy a Definition paranes altal meghfvott Object Browser-bol tOrteno gyors visszaugratasra hasznalhato),Object Browser: a pro jektben e le rheto objek tumokr61 hasznos informac ioka tszolgaltato eszkozt (lasd: 1.5.5) hfv elo,Immediate Window, Locals Window, Watch Window, Call Stack: a hibafelderftes soranhasznalhato, kulonbozo jellegii informaciokat nyujto ablakokat jelenitenek meg.Color Palette: nem standard szinek k ikevere se , c el jabo l, szfnpa le ttat tar ta lmaz6dial6gusablakot hfv elo,Toolbars: menut hiv elo, ami lehetove teszi egyes funkciocsoportokhoz kapcsol6d6eszkozsorok megjelenfteset, tovabba a felhasznalo igenyei szerinti modosftasat.Vegul esak felsoroljuk a nem targyalt meniielemeket: Property Pages, Table, Zoom,Show Panes, Data View Window (rnegjegyzendo, hogy ez utobbi paranes egy eszkozthiv elo, amely ismertebb tipusu adatbazisok strukturajanak attekinteset teszi lehetove).

    29

  • 5/11/2018 Visual Basic s Excel programozs

    20/92

    2 . FE JEZET

    2.2.5. Run meniiA programnak a fe jlesztokornyeze tben tOrteno fu ttatasa cel jabo l- i Iletve az ahhozkapcsol6d6an hasznalhato alabbi parancsokat tartalmazza:- Start: elinditja a programot (a programelemek inditas elotti forditasat szabalyozza

    az Options dial6gusablak General lapjanak Compile On Demand opci6ja:bekapcsolt allapota eseten fordftas csak akkor tortenik, ha a programelem m6dosultaz utols6 forditasa 6ta ; a Background Compile opci6t mindig erdemes bekapcsolvatar tani, bar csak a Compile On Demand bekapcsolt allapotaban hat).

    - S tart With Ful l Compile: a programot az inditasa elott teljes egeszeben ujrafordftja,Break: a programnak a futasa kozbeni feltetel nelkuli megszakftodasateredmenyezi; megjegyezziik, hogy aStandard eszkozsor ~ szimb61umot abrazolo,[design]-m6dban Start nevet viselo gombja ilyenkor Continue-ra keresztelodik at.

    - End: a [run] vagy [break] allaponi (azaz megszakftott futasii) program befejezese,- Restart: a barmely okb61 felbeszakadt program iijraindftasa.Megjegyezziik, hogy az IDE cfrnsoranak a vegen:- a fejlesztokornyezetbeli mukodesunk soran ,,[design]",- a programnak a fejlesztekornyezetbeli futasa kozben ,,[ run]", vegul- a program-vegrehajtas megszakftott allapotaban ,,[break]"szoveg olvashato, valamint hogy a Standard eszkozsor Start/Continue, Break ill Stopgombjai a megfelelo meniiparancsok kezdernenyezesere kenyelmesen hasznalhatok,2.2.6. Tools meniiCsak ket alabbi elemet targyaljuk:- Menu Editor: a fejleszte tt program menujenek keszftesere szolgalo eszkozt indftjael ( lasd: 7.1.1).- Options: az Options dial6gusablakot jelenfti meg (a megadhat6 fontosabb opci6katalkalmazasuk kornyezeteben ismertetjiik).2.2.7. Add-Ins meniiCsak a ket alabbi elemet targyaljuk:- Visua l Data Manager . .. (VisData): olyan programot ind it e l, ame ly ismer tebb

    tfpusti adatbazisok kezelesere es eleresere szolgal.- Add-In Manager ... : az Add-In Manager dia I6gusablakot h iv ja e lo , ame ly a VB

    fejlesztokornyezet lehetosegeit kiter jeszto, insta llalasukkor beleintegralodoeszkozok menedzseleset teszi lehetove (fontos kapcsol6i aLoaded/Unloaded ill aLoad on Startup: az eszkoz csak az aktualis ill az osszes projekt altal hasznalhato),

    30

    A FE JL E SZ TOKGRNY EZ E T HA SZNALA l' A

    2.3. Az IDE hasznalataAz eddigiekben attekinte ttuk az IDE rmikodeset e s fo e leme it . A fejezet hat ra levoreszeben a program tervezesenek lepeseit es eszkozeit , az f ir lap-keszites technikajat,es vele kapcsolatban a Form Designer, a Project Explorer es a Properties ablakok,valamint a ToolBar es az Format menii e lemeinek a hasznalatat mutatjuk be. Sz61eszmeg a programiras eszkozerol (Code Editor ablak), az ablakok kolcsonhatasarol es azobj ektumok e lnevez esi szaba lyairol, Mivel c elunk most a programfej lesz tesgyakorlatanak a megismerese, mindezt egy mintapeldaba agyazva tessziik.2.3.1. Mintapelda: A program specffikacioja es megtervezeseA minta pe lda c elja a z "Itt a piros - HoI a piros?" nevu i smert jate k sz amitogepe sverziojanak az elkeszf tese . A jatekban azt kell megtippelni, hogy harom osszekevert,lefele fordftott gyufas-doboz kozul melyik ala tt van a kis, piros goly6bis. Ahhoz, hogye l tud juk keszi teni az ezt megval6s it6 programot , e loszor at kell gondolni, hogyankepzeljuk el a mukodeset a szamitogepen. En igy gondoltam:Egy a jatek cimet viselo, az asztalt reprezentalo tirlap harom teglalap alaku,kulonbozo sz inekre feste tt "obje ktumot" ta rta lmaz ; e ze k jelolik a dobozokat. Aprogram veletlenszenien gondol valamelyik objektumra - mint goly6t rejtore (nem islathatoan, csak megjegyzi a kivalasztott objektum valamilyenjeIlemzo!et), e.s~ar arra,hogy a jatekos is - raka tt intassa l - k ivalasszon egyet . Ha a gondol t e s a k ivalasztot tmegegyezik, akkor a jatekos nye rt - ha nem, vesztet t. A merkozes aktua li s a llasarol aprogram kis tablazatban adhat tajekoztatast, es az egesz valami ilyen format olthet:

    3. abra: Ajatek iirlap-terveMiutan tiszta ztuk, hogy mit is a karunk, c elsz eru az t is a tgondolni, hogy hogya nakarjuk mindezt megvaI6sftani. Nem az interfeszre gondolunk, mert azt ug~ terveztiikmeg, hogy kozben a z IDE l ehetosegei re is gondol tunk , hanem az a lgori tmusra , Aproblemat a z jele nti, hogyan gondoljon a ge p egy obje kt urnra ".Az obje kt umotvalahogy reprezentalni, azonosftani kellene. Ehhez modellt kell alkotm.

    31

  • 5/11/2018 Visual Basic s Excel programozs

    21/92

    2. FEJEZET

    Egy megoldas az lehet, hogy az egyes objektumokat sorban, balr61 jobbra,megfe le ltet juk az e lso harem egesz szamnak, A gepnek a velet lenszenien tor tenoobjektumra gondolasa Igy a harem szam kozul egyre val6 gondola snak fele l meg.Miert vagyunk ezzel kisegftve? Azert, mert van aVB-ben egy valos szamokat eloallitoveletlenszam-generator, aminek a segftsegevel - kis transzformalassal - akar [1,3 ]intervallumbeli veletlen egesz szamokat is tudunk keszfttetni. Tehat a jatekprogramjanak algoritmusa az lesz, hogy eloallit egy [1,3] intervallumbeli veletlenegesz szamot, aminek az erteket "elspajzolja". Mikor a jatekos egy objektumra kattint,akkor az ob jektummal kapcsolatban Click tipusti ese rneny tortenik, es e zertaktivalodik az objektumhoz kapcsolt Click tfpusti esemeny-eljaras. Ebbe valami olyank6dot kel l Irnunk , ami megvizsga lja, hogy a kapcsol t objek tum azonosft6 szamamegegyezik e a tarolttal, es ettol fuggoen kell vagya gep, vagy a jatekos nyereseinekszamlalojat novelni eggyel. Vegul meg kellje leniteni a merkozes allasat, es uj szamotkell gondolta tni a geppe l (va gyis tij, [1,3] -beli veletlen egesz szamot kellgenera ltatni ), Az a lgor itmusoka t (az oke t k ival to , egyes objek tumokhoz kotodoesemenyekbol ind itva ) e rdernes egy tobbe -kevesbe re sz le te s b lokkdiagrambanabrazolni is, valahogy fgy:

    A blokkdiagram szukseges reszletesseget tobb tenyezo is befolyasolja: az alkalmazasbonyolultsaga, a fejleszto programozasi gyakorlata, az alkalmazas altal megcelzottfe lhasznaloi kor ( sa ja t fe lhaszna la sr a vagy megrendeles re keszu l, e se tleg tel je sdokumentac io igennyel ), a program kesobbi tovabbfe jlesztesenek igenye; de a eelmindig ugyanaz: a program tervezesenek tamogatasa folyamatainak vilagosatlathatosaga erdekeben. Nines j61 elkeszf tve az a blokkdiagram, amit egy szakembermar az elkeszultekor sem, a keszitoje pedig ropke egy ev elmultaval mar nem ert meg.

    32 33

    A FEJLESZT0K0RNYEZET

    Most , miu tan mar nemcsak a fe lhasznaloi inter fe szek speci fika la sa ,a lgoritmusok tisztazasa is megtortent, a programfejleszto a gephez ulhet azI n 1 ' , , , , " 1 " , , , , o : ! ' l 'formok keszitese, majd az esemeny-kezelo eljarasok es egyeb kodok Irasa celjabol,2.3.2. Mintapelda (folytatas): A VB projekt letrehozasaMeg mie lo tt barmibe kezdenenk , let re kel l hozni az u j program fe jlesztese szamara amegfelelo VB projektet.A legegyszeriibb projektek kesziteset a New Project dia16gusablak Standard EXEsablonjaval generalt, egyet