sinhvienit.net sinhvienit.net visualbasic 20 5

Upload: nguyenmanhtoan7691

Post on 10-Oct-2015

30 views

Category:

Documents


0 download

TRANSCRIPT

  • Visual Basic

    CHNG 1 TNG QUAN V VISUAL BASIC 6.0

    Mc tiu: Chng ny gii thiu v mi trng pht trin tch hp (IDE) Microsoft

    Visual Basic 6.0; cng nh gip sinh vin c ci nhn tng quan v Visual Basic. Hc xong chng ny, sinh vin phi nm bt c cc vn sau:

    - S dng mi trng pht trin tch hp VB 6.0 pht trin ng dng.

    - Cch to d n mi (New Project) trong VB 6.0. Kin thc c lin quan: - S dng h iu hnh Windows. Ti liu tham kho:

    - Visual Basic 6 Certification Exam Guide - Chapter 1, Page 1 - Dan Mezick & Scot Hillier - McGraw-Hill - 1998.

    Trang 1

  • Visual Basic

    I. Gii thiu v Visual Basic 6.0 Visual Basic 6.0 (VB6) l mt phin bn ca b cng c lp trnh Visual Basic

    (VB), cho php ngi dng tip cn nhanh cch thc lp trnh trn mi trng Windows. Nhng ai tng quen thuc vi VB th tm thy VB6 nhng tnh nng tr gip mi v cc cng c lp trnh hiu qu. Ngi dng mi lm quen vi VB cng c th lm ch VB6 mt cch d dng.

    Vi VB6, chng ta c th : Khai thc th mnh ca cc iu khin m rng. Lm vic vi cc iu khin mi (ngy thng vi iu khin MonthView v

    DataTimePicker, cc thanh cng c c th di chuyn c CoolBar, s dng ha vi ImageCombo, thanh cun FlatScrollBar,). Lm vic vi cc tnh nng ngn ng mi. Lm vic vi DHTML. Lm vic vi c s d liu. Cc b sung v lp trnh hng i tng.

    II. Ci t Visual Basic 6.0 S dng chng trnh Setup, ngi dng c th ci t VB6 ln my tnh ca

    mnh. Chng trnh Setup ny cn ci t cc tp tin cn thit xem ti liu trn a CD MSDN (Microsoft Developer Network). Nu cn, ngi dng c th ci t ring phn ti liu v v d mu ca Visual Basic ln my tnh.

    ci t VB6, ngi dng nn kim tra my tnh ca mnh m bo c cu hnh ti thiu. Cc yu cu h thng ti thiu :

    - Microsoft Windows 95 tr ln hoc l Microsoft Windows NT Workstation 4.0 tr ln.

    - Tc CPU 66 MHz tr ln. - Mn hnh VGA hoc mn hnh c phn gii cao c h tr bi Microsoft

    Windows. - 16 MB RAM cho Microsoft Windows 95 hoc 32MB RAM cho Microsoft

    Windows NT Workstation.

    III. Lm quen vi VB6 III.1 Bt u mt d n mi vi VB6

    T menu Start chn Programs, Microsoft Visual Basic 6.0. Khi bn s thy mn hnh u tin nh hnh I.1 di y.

    Trang 2

  • Visual Basic

    Hnh I.1 Ca s khi kch hot VB6

    y, ngi dng c th chn to mi mt d n thc thi c bng cch chn Standard EXE ri nhp Open (Hnh I.2). Tip theo l ca s lm vic chnh ca VB6, gi tt l IDE (Integrated Development Environment) s c gii thiu chi tit trong phn sau.

    Chn

    III.2 Tm hiu cc thnh phn ca IDE IDE l tn tt ca mi trng pht trin tch hp (Integrated

    Development Environment), y l ni to ra cc chng trnh Visual Basic. IDE ca Visual Basic l ni tp trung cc menu, thanh cng c v ca s

    to ra chng trnh. Mi mt thnh phn ca IDE c cc tnh nng nh hng n cc hot ng lp trnh khc nhau.

    Trang 3

  • Visual Basic

    Hnh I.3 Ca s IDE ca VB6

    Thanh menu cho php bn tc ng cng nh qun l trc tip trn ton b

    ng dng. Bn cnh thanh cng c cho php truy cp cc chc nng ca thanh menu thng qua cc nt trn thanh cng c.

    Cc biu mu (Form) - khi xy dng chng trnh chnh ca VB - xut hin trong ca s Form. Hp cng c thm cc iu khin vo cc biu mu ca n. Ca s Project Explorer hin th cc n khc nhau m ngi dng ang lm cng nh cc phn ca n. Ngi dng duyt v ci t cc thuc tnh ca iu khin, biu mu v module trong ca s Properties. Sau cng, ngi dng s xem xt v b tr mt hoc nhiu biu mu trn mn hnh thng qua ca s Form Layout.

    III.3 S dng thanh cng c trong IDE ca VB Thanh cng c l tp hp cc nt bm mang biu tng thng t di

    thanh menu. Cc nt ny m nhn cc chc nng thng dng ca thanh menu (New, Open, Save ...).

    Hnh I.4 Thanh cng c dng

    standard

    Trang 4

  • Visual Basic

    Hn na, ngi dng c th ko r thanh cng c trn IDE n v tr bt k no thun tin cho vic s dng.

    Ngi dng c th thm hay xa thanh cng c trn IDE:

    * Chn Toolbars t menu View hoc n chut phi vo im bt k no trn thanh menu, mt popup menu bt ra.

    * Chn loi thanh cng c m ta mun thm vo hoc xa i. Nu c nh du check bn tri th l i cng c ang c chn. Hnh I.5 Popup menu

    thm, xa cng c S dng thanh cng c g ri (debug)

    Vi thanh cng c g ri,c th thc thi, tm ngng ho n. Vi thanh cng c Ddng c th kim tra chng quyt cc li c th xy ra. chng trnh, ngi dng ctng dng lnh, kim tra gi dng chng trnh ti mt hoc vi mt iu kin no

    Hnh I.6 Thanh cng c g ri

    S dng thanh cng c Edit

    Hnh I.7 Thanh cng c Edit

    Thanh cng c Edit c dng vit chng trnh trong cthanh cng c Edit c ynng ca menu Edit. Ngos dng c th s dngvit chng trnh t Quick Info.

    Thanh cng c Edit ca VB6 c tnh nng l th l t hokha. Tnh nng ny rt hu dng gip cho ngi dng trnh cc li mcsai t kha. S dng thanh cng c Form Editor

    Hnh I.8 Thanh cng c thit k biu mu Thanh cng c Form Editor c chc nng ging nh menu

    Format dng di chuyn v sp xp cc iu khin trn biu mu.

    Trang 5 o ngi dng c dng mt

    ebug, ngi trnh v gii Khi g ri th chy tr cc bin, im no .

    a s Code, cc tnh i ra ngi

    chc nng ng nh l

    n tt cc t phi do g

  • Visual Basic

    Trong qu trnh thit k biu mu, i khi chng ta phi s dng thuc tnh ZOrder cho php mt iu khin c th thay th mt iu khin khc hay khng hoc l xut hin bn trn mt iu khin khc hay khng.

    S dng hp cng c (Toolbox) Hp cng c l ni cha cc iu khin c dng trong qu trnh thit

    k biu mu. Cc iu khin c chia lm hai loi: iu khin c sn trong VB v cc iu khin c cha trong tp tin vi phn m rng l .OCX.

    i vi cc iu khin c sn trong VB th ta khng th g b khi hp cng c, trong khi i vi iu khin nm ngoi ta c thm hoc xa b khi hp cng c.

    Mt iu khin c th c a vo biu mu bng cch chn iu khin v a vo biu mu. Chng ta s tr li phn ny trong chng tip theo khi thit k cc biu mu.

    Hnh I.9 Hp cng c ca Visual Basic

    III.4 Qun l ng dng vi Project Explorer Project Explorer trong VB6 gip qun l v nh hng nhiu n.VB cho

    php nhm nhiu n trong cng mt nhm. Ngi dng c th lu tp hp cc n trong VB thnh mt tp tin nhm n vi phn m rng .vbp.

    Project Explorer c cu trc cy phn cp nh cy th mc trong ca s Explorer ca h iu hnh. Cc n c th c coi l gc ca cy, cc thnh phn ca n nh biu mu, module ... l cc nt ca cy. Khi mun lm vic vi thnh phn no th ta c th nhn p ln thnh phn trn ca s Project Explorer vo ca s vit code cho thnh phn . Hnh I.10 Ca s Project Explorer

    Khi lm vic vi mt d n ln, chng ta s thy Project Explorer cc k hu

    ch cho vic t chc v qun l mt d n ln.

    III.5 Ca s Properties Mi mt thnh phn, iu khin iu c

    nhiu thuc tnh. Mi mt thuc tnh li c mt hoc nhiu gi tr.

    Ca s Properties cho php ngi dng xem, sa i gi tr cc thuc tnh ca iu khin nhm gip iu khin hot ng theo ng ca ngi s dng.

    Trang 6

  • Visual Basic

    III.6 Ca s Form Layout y chnh l ca s trnh by biu mu cho php nh v tr ca mt hoc nhiu

    biu mu trn mn hnh khi chng trnh ng dng c thi hnh. Ta nh v mot bieu mau tren man hnh bang cach dung chuot di chuyen bieu

    mau trong ca so Form Layout. S dng ca s Form Layout khng n

    gin nh cc ca s khc v n khng c kch hot sn, ngi dng cn phi chy ng dng sau mi c th b tr c cc biu mu thng qua Form Layout.

    Nu ta khng nh v cc biu mu th v tr ca biu mu trn mn hnh lc thit k cng l v tr khi ng ca biu mu khi thc thi.

    Hnh I.12 Ca s Form III.7 Bin dch n thnh tp tin thc thi L t Sau khi n hon thnh, ngi dng c th bin dch thnh tp tin thc thi

    c. Cch tin hnh nh sau: - Trc tin ta cn ch cho VB6 bit phn chng trnh no s c thc

    thi trc bng cch chn Project Properties t menu Project. Chn tab General, ch phn Startup Object, y l ni quy nh im khi u ca chng trnh sau khi bin dch kt thc.

    - T menu File, chn Make ... EXE... Mt hp thoi xut hin cho php bn nhp vo tn ca tp tin thc thi. Bn ch cn g tn tp tin, VB s t ng thm phn m rng .EXE.

    - Nhn vo nt Options m hp thoi Project Properties v in tn ca ng dng vo Title, ta c th ghi ch thng tin cho tng phin bn trong phn Version Information. Ta c th chn Auto Increment VB t ng tng s Revision mi ln ta to li tp tin EXE cho d n. - Cui cng, nhn OK tr v hp thoi Make Project.

    Trang 7

  • Visual Basic

    CHNG 2 BIU MU V MT S IU KHIN THNG DNG

    Mc tiu:

    Chng ny gii thiu v mt s iu khin c bn to nn giao din cho cc ng dng cng nh mt s khi nim trong lp trnh vi VB; nhng yu cu ti thiu cn c trong vic lp trnh s kin vi VB. Hc xong chng ny, sinh vin phi nm bt c cc vn sau:

    - Khi nim v iu khin, thuc tnh, phng thc, s kin. - Quy tc t tn danh biu trong VB. - S dng biu mu trong thit k giao din. - S dng iu khin nhp liu, nt nhn, nhn, khung.

    Kin thc c lin quan: - Cch thc s dng mi trng pht trin VB. Ti liu tham kho:

    - Microsoft Visual Basic 6.0 v Lp trnh C s d liu - Chng 2, trang 26; Chng 3, trang 29 - Nguyn Th Ngc Mai (ch bin), Nh xut bn Gio dc - 2000.

    Trang 8

  • Visual Basic

    I. Cc khi nim 9 iu khin: Cc thnh phn c sn ngi lp trnh to giao din tng tc

    vi ngi dng. Mi iu khin thc cht l mt i tng, do vy n s c mt s im

    c trng cho i tng, chng hn nh cc thuc tnh, cc phng thc & cc s kin. 9 Thuc tnh: Cc c trng ca mt iu khin to nn dng v ca iu khin

    . 9 Phng thc: Cc iu khin c th thc thi mt s tc v no , cc tc v

    ny c nh ngha sn bn trong cc phng thc (cn gi l chng trnh con: hm & th tc), ngi lp trnh c th gi thc thi cc phng thc ny nu cn. 9 S kin: l hnh ng ca ngi dng tc ng ln ng dng ang thc thi.

    Th d: - Nhn phm bt k trn bn phm. - Nhp chut. Cc thnh phn giao din c kh nng p ng li s kin. Chng hn khi chng

    ta nhp chut vo button, lc button nhn bit c s kin ny; hay nh textbox nhn bit c s kin bn phm tc ng ln n.

    Mt ng dng trn Windows thng c thc hin nh vo vic p ng li cc s kin ca ngi dng. 9 Lp trnh s kin:

    Cc thnh phn giao din c kh nng nhn bit c cc s kin t pha ngi dng. Tuy nhin kh nng p ng li cc s kin c thc hin bi ngi lp trnh.

    Khi mt thnh phn giao din c s dng, ngi lp trnh phi xc nh chnh xc hnh ng ca thnh phn giao din p ng li mt s kin c th. Lc ngi lp trnh phi vit on m lnh m on m lnh ny s c thc thi khi s kin xy ra.

    Chng hn, trong ng dng Paint ca Windows; khi ngi s dng nhp chut vo nt v hnh elip sau dng chut v n trn ca s v, mt hnh elip c v ra.

    Trong lp trnh s kin, mt ng dng c xy dng l mt chui cc p ng li s kin. Tt c cc hnh ng ca ng dng l p ng li cc s kin. Do vy ngi lp trnh cn phi xc nh cc hnh ng cn thit ca ng dng; phn loi chng; sau vit cc on m lnh tng ng.

    Th d v p ng li s kin:

    Trang 9

    M lnh - M lnh cho s kin Click ca Ghi a. -------------------------------------------------- -------------------------------------------------- - M lnh cho s kin Click ca In giy -------------------------------------------------- --------------------------------------------------

    Hnh II.1: Th d v p ng s kin

  • Visual Basic

    - Khi ngi dng khng tc ng vo ng dng, ng dng khng lm g c. - Khi ngi dng nhp d liu vo cc nhp H v tn, a ch; s kin bn phm xy ra trn cc nhp. Tuy nhin, ng dng vn khng lm g c v khng c on m lnh no p ng cc s kin ny. - Khi ngi dng nhp nt chn Ghi a, ng dng tm kim trong m lnh ca mnh thy c on m lnh p ng li s kin ny; lc on m lnh c thc thi. - Tng t nh vy i vi nt chn In giy. 9 Cch xc lp cc thuc tnh & cc phng thc trong chng trnh

    . .[()]

    9 Tn iu khin (thuc tnh Name) y l thuc tnh xc nh tn ca iu khin trong ng dng. Tn ny c

    t theo quy tc: o Tn c th di t 1 - 40 k t. o Tn phi bt u vi k t ch, c th ch hoa hay thng. o Sau k t u tin, tn c th cha k t, s hay du gch di. V d: Num, StudentCode, Class12A2 l nhng tn hp l. 345, 7yu l nhg tn khng hp l.

    II. Biu mu (Form) II.1. Khi nim:

    Chng trnh ng dng giao tip vi ngi dng thng qua cc biu mu (hay cn gi l ca s, xut pht t ch Form hay Windows); cc iu khin (Control) c t ln bn trn gip cho biu mu thc hin c cng vic . Biu mu l cc ca s c lp trnh nhm hin th d liu v nhn thng tin t pha ngi dng.

    II.2. Thuc tnh o Name: thuc tnh ny nh l mt nh danh nhm xc nh tn ca biu

    mu l g? Ta s s dng thuc tnh ny truy xut n cc thuc tnh khc cng vi phng thc c th thao tc c trn biu mu.

    o Caption: chui hin th trn thanh tiu ca biu mu. o Icon: hnh icon c dng trong thanh tiu ca biu mu, nht l khi

    biu mu thu nh li. o WindowState: xc nh biu mu s c kch thc bnh thng

    (Normal=0), hay Minimized (=1), Maximized =(2).

    Trang 10

  • Visual Basic

    o Font: xc lp Font cho biu mu. Thuc tnh ny s c cc iu khin nm trn n tha k. Tc l khi ta t mt iu khin ln biu mu, thuc tnh Font ca iu khin y s t ng tr nn ging y ca biu mu.

    o BorderStyle: xc nh dng ca biu mu. II.3. Phng thc

    o Move: di chuyn biu mu n ta X,Y: Move X, Y.

    II.4. S kin o Form_Initialize: S kin ny xy ra trc nht v ch mt ln thi khi ta

    to ra th hin u tin ca biu mu. Ta dng s kin Form_Initialize thc hin nhng g cn phi lm chung cho tt c cc th hin ca biu mu ny.

    o Form_Load: S kin ny xy ra mi ln ta gi th hin mt biu mu. Nu ta ch dng mt th hin duy nht ca mt biu mu trong chng trnh th Form_Load coi nh tng ng vi Form_Initialize.

    Ta dng s kin Form_Load khi to cc bin, iu khin cho cc th hin ca biu mu ny.

    o Form_Activate: Mi ln mt biu mu c kch hot (active) th mt s kin Activate pht sinh. Ta thng dng s kin ny cp nht li gi tr cc iu khin trn biu mu.

    o Form_QueryUnload: Khi ngi s dng chng trnh nhp chut vo nt X pha trn bn phi ng biu mu th mt s kin QueryUnload c sinh ra. on chng trnh con di y m t th tc x l s kin QueryUnload. Private Sub Form_QueryUnload(Cancel As Integer, _ UnloadMode As Integer)

    End Sub S kin ny cho ta kh nng hy b hnh ng ng biu mu bng cch

    t li Cancel l 1. o Form_Resize: S kin ny xy ra mi khi biu mu thay i kch thc.

    III. Nhn (Label) III.1. Khi nim:

    Nhn l iu khin dng ha cho php ngi s dng hin th chui k t trn biu mu nhng h khng th thay i chui k t mt cch trc tip.

    Biu tng (shortcut) trn hp cng c:

    III.2. Thuc tnh: o Name: y l mt tn xc nh mt nh danh, ngi lp trnh c th thay

    i tn ny theo cch ca mnh tin s dng.

    Trang 11

  • Visual Basic

    o Caption: Thuc tnh quy nh chui k t hin th khi ta to mt iu khin nhn. Khi ta to mi mt iu khin th thuc tnh Caption c gi tr mc nhin l Label.

    V d: Ta mun to mt nhn l Cho mng bn n vi Visual Basic, ta thay i gi tr ca thuc tnh Caption thnh Cho mng bn n vi Visual Basic.

    Ta c th thay i gi tr ca thuc tnh Caption ti thi im ng dng ang chy nh vo on m lnh n gin nh sau:

    L1.Caption = " i gi tr Caption" vi L1 l tn ca iu khin nhn m ta mun i.

    o Font, Fore Color: Quy nh kiu ch, kch thc, mu hin th. o BackStyle, BackColor: BackStyle quy nh l nhn trong sut hay khng.

    BackColor quy nh mu nn ca nhn trong trng hp khng trong sut.

    III.3. Phng thc: o Move: di chuyn nhn n ta X,Y: Move X, Y.

    III.4. S kin: o Change: Xy ra mi khi nhn thay i gi tr. o Click: Mi khi nhn c chut nhp ln, s kin ny xy ra. o DblClick: Xy ra khi ngi s dng nhp p chut ln iu khin nhn.

    IV. Khung (Frame) IV.1. Khi nim:

    Khung l mt iu khin dng trong vic b tr giao din ca biu mu mt cch trong sng v r nt. Thng thng cc iu khin cng phc v cho mt cng vic no s c t trong mt khung nhm lm ni bt vai tr ca chng.

    Biu tng (shortcut) trn hp cng c: Khi chng ta to mi mt khung cha cc iu khin khc, ta c hai cch

    thc hin: - To khung cha trc, sau a cc iu khin vo trong khung

    cha. y l cch n gin nht. - To khung cha sau khi to mi cc iu khin, khi khung

    cha s che mt cc iu khin, v vy ta cn phi a khung cha ra sau cc iu khin bng cch nhp chut phi v chn Send to Back. Nhng i vi cch ny, cc iu khin khc khng nm trn khung cha. Do vy ta c th gii quyt bng cch ct (Cut) cc iu khin ny i, sau dn (Paste) vo trong khung cha.

    Trang 12

  • Visual Basic

    Hnh II.2 V d v khung cha

    (Frame)

    IV.2. Thuc tnh: Khung cng c cc thuc tnh thng dng nh ca iu khin nhn chng hn nh:

    Name, Caption,...

    IV.3. Phng thc: o Move: di chuyn khung n ta X,Y: Move X, Y.

    IV.4. S kin: o Click, DblClick: xy ra khi khung nhn c mt thao tc nhp (nhp

    p) chut.

    V. Nt lnh (Command Button) V.1. Khi nim:

    Nt lnh l mt iu khin dng bt u, ngt hoc kt thc mt qu trnh. Khi nt lnh c chn th n trng nh c nhn xung, do nt lnh cn c gi l nt nhn (Push Button). Ngi s dng lun c th chn mt nt lnh no bng cch nhn chut trn nt lnh .

    Biu tng (shortcut) trn hp cng c:

    V.2. Thuc tnh: o Name: s dng nh mt nh danh nhm xc nh tn ca nt lnh. o Caption: Dng hin th mt chui no trn nt lnh. o Default: Nu gi tr ca thuc tnh ny l True th ta c th chn nt lnh

    bng cch nhn phm Enter. o Cancel: Nu gi tr ca thuc tnh ny l True th ta c th chn nt lnh

    no bng cch nhn phm ESC. o Enabled: Trong mt biu mu, c th c nhiu nt lnh thc hin

    nhiu cng vic khc nhau v ti mt thi im no ta ch c php thc hin mt s cng vic. Nu gi tr thuc tnh Enabled l False th nt lnh khng c tc dng. Gi tr mc nh ca thuc tnh ny l True. Ta c th thay i gi tr ca thuc tnh ti thi im chy ng dng.

    Trang 13

  • Visual Basic

    o ToolTipText: cho php hin th mt on vn bn ch thch cng dng ca nt lnh khi ngi s dng dng chut r trn nt nhn.

    o Font, Fore Color: Quy nh kiu ch, kch thc, mu hin th.

    V.3. Phng thc o Move: di chuyn nt lnh n ta X,Y: Move X, Y.

    V.4. Phng thc o Click: y l s kin thng xy ra vi nt lnh. Mi khi mt nt lnh

    c chn, s kin ny c kch hot. Do , ngi s dng s vit m cc lnh p ng li s kin ny.

    V d: To mt biu mu c mt nhp liu vi nhn l h tn v mt nt lnh cho php a ra cu cho ngi dng .

    Private Sub Command1_Click()

    MsgBox "Chao mung ban " & Text1.Text & _ " lam quen voi Visual Basic"

    End Sub

    Click here

    Hnh II.3 S dng nt lnh

    VI. nhp liu (TextBox) VI.1. Khi nim:

    nhp liu l mt iu khin cho php nhn thng tin do ngi dng nhp vo. i vi nhp liu ta cng c th dng hin th thng tin, thng tin ny c a vo ti thi im thit k hay thm ch thi im thc thi ng dng. Cn thao tc nhn thng tin do ngi dng nhp vo d nhin l c thc hin ti thi im chy ng dng.

    Biu tng (shortcut) trn hp cng c

    VI.2. Thuc tnh: o Name: y l tn ca nhp liu, c s dng nh mt nh danh. o MaxLength: Thuc tnh quy nh s k t ti a c th nhp vo nhp

    liu. Nu s k t nhp vo vt qu s k t ti a th ch c ng s k t ti a c ghi nhn vo trong thuc tnh Text.

    Trang 14

  • Visual Basic

    o Text: Dng nhp vo thng tin cn hin th trong Textbox ti thi im thit k hoc nhn gi tr do ngi dng nhp vo ti thi im chy ng dng.

    V d: MsgBox Text1.Text on m ny vit trong s kin Click ca nt lnh OK. Cho php hp

    thng bo hin th ni dung do ngi dng nhp vo nhp liu.

    Hnh II.3 V d v iu khin nhp liu

    o Locked: Thuc tnh cho php ngi dng thay i ni dung ca nhp liu c hay khng? Thuc tnh ny c th nhn 2 gi tr True hoc False. Nu False th ngi dng c th thay i ni dung ca nhp liu & mc nh th thuc tnh ny c gi tr l False.

    o PasswordChar: Thuc tnh ny quy nh cch hin th thng tin do ngi dng nhp vo. Chng hn, nu ta nhp vo gi tr thuc tnh ny l * th cc k t nhp vo iu hin th bi du * . Thuc tnh ny thng c dng trong trng hp thng tin nhp vo cn c che giu (V d mt khu ng nhp mt chng trnh ng dng no m trong cc ngi dng khc nhau th c cc quyn khc nhau).

    o Multiline: Thuc tnh quy nh nhp liu c c hin th thng tin di dng nhiu hng hay khng, nu l TRUE th nhp liu cho php nhiu hng.

    o Font, Fore Color: Quy nh kiu ch, kch thc, mu hin th. o SelLength:Cho php tr v hoc t trc s lng k t c chn

    trong nhp liu. o SelStart: Tr v hoc xc nh im bt u ca chui c chn. y

    l v tr bt u chn mt chui mi trong trng hp khng c nh du chn chui. o SelText: Tr v hoc xc nh chui k t c nh du chn, chi tr

    v s l rng nu nh khng nh du chn chui no. Ba thuc tnh SelLength, SelStart, SelText ch c tc dng ti thi im chy ng dng.

    VI.3. Phng thc o Move: Di chuyn nhp liu n ta X, Y: Move X, Y.

    Trang 15

  • Visual Basic

    o SetFocus: Phng thc ny nhm mc ch thit lp cho iu khin nhp liu nhn c Focus, ngha l n sn sng c tng tc bi ngi s dng.

    VI.4. S kin: o KeyPress: xy ra khi ngi s dng chng trnh nhn mt phm. i

    vi iu khin TextBox, ta thng dng n lc (filter out) cc phm khng chp nhn. S kin KeyPress cho ta mt m Ascii, mt s c gi tr t 0 n 255, ca phm va nhn. Trong v d di y, TextBox Text1 s ch nhn bit cc phm l s (0 - 9), khng nhn bit cc phm khc: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then M Ascii ca 0 l 48, ca 9 l 57 KeyAscii = 0 End If End Sub

    o KeyDown, KeyUp: mi s kin KeyPress li cho ta mt cp s kin KeyDown/KeyUp. S kin KeyDown/KeyUp c 2 tham s l KeyCode v Shift. S kin ny cho php ta nhn bit c cc phm c bit trn bn phm. Trong v d di y, ta hin th tn cc phm chc nng m ngi s dng chng trnh nhn vo: Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer) If (KeyCode >= 112) And (KeyCode

  • Visual Basic

    Ti liu tham kho: - Microsoft Visual Basic 6.0 v Lp trnh C s d liu - Chng 4, trang

    49 - Nguyn Th Ngc Mai (ch bin), Nh xut bn Gio dc - 2000.

    Trang 17

  • Visual Basic

    I. Mi trng lp trnh I.1. Son tho chng trnh:

    Trong Visual Basic IDE, ca s m lnh (Code) cho php son tho chng trnh. Ca s ny c mt s chc nng ni bt:

    o nh du (Bookmarks): Chc nng ny cho php nh du cc dng lnh ca chng trnh trong ca s m lnh d dng xem li v sau ny. bt tt kh nng ny, chn Bookmarks t menu Edit, hoc chn t thanh cng c Edit.

    o Cc phm tt trong ca s m lnh:

    Chc nang Phm tat Xem ca s Code F7 Xem ca s Object Browser F2 Tm kim CTRL+F Thay th CTRL+H Tm tip SHIFT+F4 Tm ngc SHIFT+F3 Chuyn n th tc k tip CTRL+DOWN ARROW Chuyn n th tc trc CTRL+UP ARROW Xem nh ngha SHIFT+F2 Cun xung mt mn hnh CTRL+PAGE DOWN Cun ln mt mn hnh CTRL+PAGE UP Nhy v v tr trc CTRL+SHIFT+F2 Tr v u ca m-un CTRL+HOME n cui m-un CTRL+END

    I.2. Cc chc nng t ng: o T ng kim tra c php (Auto Syntax Check)

    Nu chc nng ny khng c bt th khi ta vit mt dng m c cha li, VB ch hin th dng chng trnh sai vi mu nhng khng km theo ch thch g v tt nhin ta c th vit tip cc dng lnh khc. Cn khi chc nng ny c bt, VB s cho ta bit mt s thng tin v li v hin th con tr ngay dng chng trnh li ch ta sa.

    o Yu cu khai bo bin (Require Variable Declaration) VB s thng bo li khi mt bin c dng m khng khai bo v s ch

    ra v tr ca bin .

    Trang 18

  • Visual Basic

    Hnh III.1: Ca s Options

    o Gi nh m lnh (Code): Kh nng Auto List Members: T ng hin th danh sch cc thuc tnh v phng thc ca 1 iu khin hay mt i tng khi ta g vo tn ca chng. Chn thuc tnh hay phng thc cn thao tc v nhn phm Tab hoc Space a n vo chng trnh.

    Hnh III.2 Ca s Code vi kh nng gi nh Code

    II. Kiu d liu II.1. Khi nim

    Kiu d liu l mt tp hp cc gi tr m mt bin ca kiu c th nhn v mt tp hp cc php ton c th p dng trn cc gi tr .

    Trang 19

  • Visual Basic

    II.2. Cc kiu d liu c s trong Visual Basic

    Kiu d liu M t Boolean Gm 2 gi tr: TRUE & FALSE.

    Byte Cc gi tr s nguyn t 0 255

    Integer Cc gi tr s nguyn t -32768 32767

    Long Cc gi tr s nguyn t -2147483648 2147483647. Kiu d liu ny thng c gi l s nguyn di.

    Single Cc gi tr s thc t -3.402823E+38 3.402823E+38. Kiu d liu ny cn c gi l chnh xc n.

    Double Cc gi tr s thc t -1.79769313486232E+308 - 1.79769313486232E+308. Kiu d liu ny c gi l chnh xc kp.

    Currency D liu tin t cha cc gi tr s t -922.337.203.685.477,5808 - 922.337.203.685.477,5807.

    String Chui d liu t 0 n 65.500 k t hay k s, thm ch l cc gi tr c bit nh ^%@. Gi tr kiu chui c t gia 2 du ngoc kp ().

    Date D liu kiu ngy thng, gi tr c t gia cp du ##. Vic nh dng hin th ty thuc vo vic thit lp trong Control Panel.

    Variant Cha mi gi tr ca cc kiu d liu khc, k c mng.

    III. Hng s III.1. Khi nim Hng s (Constant) l gi tr d liu khng thay i.

    III.2. Khai bo hng [Public|Private] Const [As ] =

    Trong , tn hng c t ging theo quy tc t tn ca iu khin. V d: Const g = 9.8 Const Num As Integer = 4*5 Ta c th dng ca s Object Browser xem danh sch cc hng c sn ca

    VB v VBA (Visual Basic for Application). Trng hp trng tn hng trong nhng th vin khc nhau, ta c th ch r tham chiu hng.

    Trang 20

  • Visual Basic

    [.][.]

    III) Bin III.1. Khi nim

    Bin (Variable) l vng lu tr c t tn cha d liu tm thi trong qu trnh tnh ton, so snh v cc cng vic khc. Bin c 2 c im:

    o Mi bin c mt tn. o Mi bin c th cha duy nht mt loi d liu.

    III.2. Khai bo [Public|Private|Static|Dim] [ As ]

    Trong , tn bin: l mt tn c t ging quy tc t tn iu khin. Nu cn khai bo nhiu bin trn mt dng th mi khai bo cch nhau du phy (,).

    Nu khai bo bin khng xc nh kiu d liu th bin c kiu Variant. Khai bo ngm: y l hnh thc khng cn phi khai bo mt bin trc khi

    s dng. Cch dng ny c v thun tin nhng s gy mt s sai st, chng hn khi ta nh nhm tn bin, VB s hiu l mt bin mi dn n kt qu chng trnh sai m rt kh pht hin.

    V d: Dim Num As Long, a As Single Dim Age As Integer Khai bo tng minh: trnh rc ri nh nu trn, ta nn quy nh rng

    VB s bo li khi gp bin cha c khai bo bng dng lnh: Option Explicit trong phn Declaration (khai bo) ca m-un. Option Explicit ch c tc dng trn tng m-un do ta phi t dng

    lnh ny trong tng m-un ca biu mu, m-un lp hay m-un chun.

    IV. Biu thc IV.1. Khi nim Ton t hay php ton (Operator): l t hay k hiu nhm thc hin php tnh

    v x l d liu. Ton hng: l gi tr d liu (bin, hng). Biu thc: l tp hp cc ton hng v cc ton t kt hp li vi nhau theo quy

    tc nht nh tnh ton ra mt gi tr no .

    IV.2. Cc loi php ton a. Cc php ton s hc: Thao tc trn cc gi tr c kiu d liu s.

    Trang 21

  • Visual Basic

    Php ton ngha Kiu ca i s Kiu ca kt qu

    - Php ly s i Kiu s (Integer, Single) Nh kiu i s + Php cng hai s Kiu s (Integer, Single) Nh kiu i s - Php tr hai s Kiu s (Integer, Single) Nh kiu i s * Php nhn hai s Kiu s (Integer, Single) Nh kiu i s / Php chia hai s Kiu s (Integer, Single) Single hay Double\ Php chia ly phn nguyn Integer, Long Integer, Long

    Mod Php chia ly phn d Integer, Long Integer, Long ^ Tnh ly tha Kiu s (Integer, Single) Nh kiu i s b. Cc php ton quan h

    y l cc php ton m gi tr tr v ca chng l mt gi tr kiu Boolean (TRUE hay FALSE).

    Php ton ngha = So snh bng nhau

    So snh khc nhau > So snh ln hn < So snh nh hn

    >= So snh ln hn hoc bng

  • Visual Basic TodayTemp = 30.5 MinAge = 18 Sales = 200000 NewSales = Sales * 1.2 Gi s ngi dng cn nhp h v tn vo nhp liu TextBox c thuc tnh Name l txtName, cu lnh di y s lu gi tr ca nhp liu vo trong bin FullName: FullName = txtName.Text Lu : Kiu d liu ca biu thc (v phi ca lnh gn) phi ph hp vi bin ta cn gn tr.

    V.2. Lnh r nhnh If o Mt dng lnh:

    If Then o Nhiu dng lnh:

    If Then Cc dng lnh End If Lu c php:

    Trong , : biu thc m kt qu tr v kiu Boolean.

    Cc dng lnh

    K ng

    Sai

    ngha cu lnh: Cc dng lnh hay dng lnh s c thi hnh nu nh iu kin l ng. Cn nu nh iu kin l sai th cu lnh tip theo sau cu trc If ... Then c thi hnh.

    o Dng y : If ... Then ... Else

    If Then [Khi lnh 1]

    ElseIf Then [Khi lnh 2]...

    [Else [Khi lnh n]]

    End If

    Trang 23

  • Visual Basic

    VB s kim tra cc iu kin, nu iu kin no ng th khi lnh tng ng s c thi hnh. Ngc li nu khng c iu kin no ng th khi lnh sau t kha Else s c thi hnh. V d: If (TheColorYouLike = vbRed) Then MsgBox "You are a lucky person" ElseIf (TheColorYouLike = vbGreen) Then MsgBox "You are a hopeful person" ElseIf (TheColorYouLike = vbBlue) Then MsgBox "You are a brave person" ElseIf (TheColorYouLike = vbMagenta) Then MsgBox "You are a sad person" Else MsgBox "You are an average person" End If

    V.3. Lnh la chn Select Case Trong trng hp c qu nhiu cc iu kin cn phi kim tra, nu ta dng cu

    trc r nhnh IfThen th on lnh khng c trong sng, kh kim tra, sa i khi c sai st. Ngc li vi cu trc SelectCase, biu thc iu kin s c tnh ton mt ln vo u cu trc, sau VB s so snh kt qu vi tng trng hp (Case). Nu bng n thi hnh khi lnh trong trng hp (Case) .

    Select Case Case [Khi lnh 1] Case [Khi lnh 2] .

    . . [Case Else [Khi lnh n]] End Select Mi danh sch kt qu biu thc s cha mt hoc nhiu gi tr. Trong trng

    hp c nhiu gi tr th mi gi tr cch nhau bi du phy (,). Nu c nhiu Case cng tha iu kin th khi lnh ca Case u tin s c thc hin.

    V d ca lnh r nhnh IfThen trn c th vit nh sau: Select Case TheColorYouLike Case vbRed MsgBox "You are a lucky person" Case vbGreen MsgBox "You are a hopeful person" Case vbBlue MsgBox "You are a brave person" Case vbMagenta MsgBox "You are a sad person" Case Else

    Trang 24

  • Visual Basic MsgBox "You are an average person" End Select

    Ton t Is & To Ton t Is: c dng so snh vi mt biu thc no

    . Ton t To: Dng xc lp min gi tr ca . V d: Select Case Tuoi Case Is

  • Visual Basic

    Khi lnh s c thc hin, sau biu thc iu kin c kim tra, nu iu kin cn ng th, khi lnh s c thc hin tip tc. Do biu thc iu kin c kim tra sau, do khi lnh s c thc hin t nht mt ln.

    Kiu 3:

    Do Until Loop Cng tng t nh cu trc Do While ... Loop nhng khc bit ch l

    khi lnh s c thi hnh khi iu kin cn sai. Kiu 4: Do Loop Until

    Khi lnh c thi hnh trong khi iu kin cn sai v c t nht l mt ln lp. V d: on lnh di y cho php kim tra mt s nguyn N c phi l s nguyn t hay khng? Dim i As Integer i = 2 Do While (i Sqr(N)) And (N 1) Then MsgBox Str(N) & la so nguyen to Else MsgBox Str(N) & khong la so nguyen to End If Trong , hm Sqr: hm tnh cn bc hai ca mt s

    b. Lp bit trc s ln lp 9 For ... Next y l cu trc bit trc s ln lp, ta dng bin m tng dn hoc

    gim dn xc nh s ln lp. For = To [Step ]

    [khi lnh] Next Bin m, im u, im cui, bc nhy l nhng gi tr s (Integer,

    Single,). Bc nhy c th l m hoc dng. Nu bc nhy l s m th im u phi ln hn im cui, nu khng khi lnh s khng c thi hnh.

    Khi Step khng c ch ra, VB s dng bc nhy mc nh l mt. V d: on lnh sau y s hin th cc kiu ch hin c ca my bn. Private Sub Form_Click( )

    Dim i As Integer

    Trang 26

  • Visual Basic For i = 0 To Screen.FontCount MsgBox Screen.Fonts(I) Next

    End Sub V d: Tnh N!

    o Bc 1: Thit k chng trnh c giao din:

    Label: Name: lblKQ

    TextBox: Name:txtNum

    o Bc 2: S kin Command1_Click c x l:

    Private Sub Command1_Click() Dim i As Integer, n As Integer, Kq As Long n = Val(txtNum.Text) Kq = 1 For i = 1 To n Kq = Kq * i Next lblEnd Sub

    KQ.Caption = Str(Kq)

    o Lu d n v chy chng trnh ta c kt qu nh hnh di:

    9 For Each ... Next

    Tng t vng lp For ... Next, nhng n lp khi lnh theo s phn t ca mt tp cc i tng hay mt mng thay v theo s ln lp xc nh. Vng lp ny tin li khi ta khng bit chnh xc bao nhiu phn t trong tp hp.

    For Each In

    Next Lu :

    - Phn t trong tp hp ch c th l bin Variant, bin Object, hoc mt i tng trong Object Browser.

    - Phn t trong mng ch c th l bin Variant.

    Trang 27

  • Visual Basic

    - Khng dng For Each ... Next vi mng cha kiu t nh ngha v Variant khng cha kiu t nh ngha.

    VI. Chng trnh con VI.1. Khi nim

    Trong nhng chng trnh ln, c th c nhng on chng trnh vit lp i lp li nhiu ln, trnh rm r v mt thi gian khi vit chng trnh ngi ta thng phn chia chng trnh thnh nhiu module, mi module gii quyt mt cng vic no . Cc module nh vy gi l cc chng trnh con.

    Mt tin li khc ca vic s dng chng trnh con l ta c th d dng kim tra xc nh tnh ng n ca n trc khi rp ni vo chng trnh chnh v do vic xc nh sai st tin hnh hiu nh trong chng trnh chnh s thun li hn.

    Trong Visual Basic, chng trnh con c hai dng l hm (Function) v th tc (Sub).

    Hm khc th tc ch hm tr v cho lnh gi mt gi tr thng qua tn ca n cn th tc th khng. Do vy ta ch dng hm khi v ch khi tho mn ng thi cc yu cu sau y:

    o Ta mun nhn li mt kt qu (ch mt m thi) khi gi chng trnh con. o Ta cn dng tn chng trnh con (c cha kt qu) vit trong cc biu

    thc. Nu khng tha mn hai iu kin y th dng th tc.

    VI.2. Th tc a. Khi nim:

    Th tc l mt chng trnh con thc hin mt hay mt s tc v no . Th tc c th c hay khng c tham s.

    b. Khai bo th tc [Private | Public] [Static] Sub [([As ])] hay End Sub Trong : - : y l mt tn c t ging quy tc tn bin, hng, - [: ]: c th c hay khng? Nu c nhiu tham s th mi tham s phn cch nhau du phy. Nu khng xc nh kiu tham s th tham s c kiu Variant. gi th tc thc thi, ta c 2 cch:

    o [] o Call ([])

    Trang 28

  • Visual Basic

    V d: Thit k chng trnh kim tra xem s nguyn N c phi l s nguyn t hay khng?

    o Bc 1: Thit k chng trnh c giao din

    TextBox: Name:txtNum

    o Bc 2: Vit th tc KtraNgTo trong phn m lnh ca Form Sub KTraNgTo(N As Integer) Dim i As Integer i = 2 Do While (i Sqr(N)) And (N 1) Then MsgBox Str(N) & " la so nguyen to" Else MsgBox Str(N) & " khong la so nguyen to" End If End Sub

    o Bc 3: X l s kin Command1_Click; trong th tc x l s kin ny ta c gi th tc KtraNgTo nh sau:

    Private Sub Command1_Click() KTraNgTo Val(txtNum.Text) Call KtraNgTo(Val(txtNum.Text)) End Sub

    o Bc 4: Lu d n v chy chng trnh. Ta c kt qu sau:

    Trong v d trn thay v gi th tc bng li gi:

    KTraNgTo Val(txtNum.Text) Ta c th s dng cch khc:

    Call KtraNgTo(Val(txtNum.Text))

    Trang 29

  • Visual Basic

    VI.3. Hm a. Khi nim

    Hm (Function) l mt chng trnh con c nhim v tnh ton v cho ta mt kt qu. Kt qu ny c tr v trong tn hm cho li gi n.

    b. Khai bo hm [Private | Public | Static] Function [([As ])] _

    [As ] hay End Function Trong : - : y l mt tn c t ging quy tc tn bin, hng, - [: ]: c th c hay khng? Nu c nhiu tham s th mi tham s phn cch nhau du phy. Nu khng xc nh kiu tham s th tham s c kiu Variant. - : Kt qu tr v ca hm, trong trng hp khng khai bo As , mc nh, VB hiu kiu tr v kiu Variant. Khi gi hm thc thi ta nhn c mt kt qu. Cn ch khi gi hm thc thi ta nhn c mt kt qu c kiu chnh l kiu tr v ca hm (hay l kiu Variant nu ta khng ch r kiu tr v trong nh ngha hm). Do li gi hm phi l thnh phn ca mt biu thc. C php gi hm thc thi: [(tham s)]. V d: Tnh N!

    o Bc 1: Thit k chng trnh c giao din:

    Label: Name: lblKQ

    TextBox: Name:txtNum

    o Bc 2: Thm mt hm vo ca s m lnh ca Form Function Giaithua(N As Integer) As Long Dim i As Integer, Kq As Long Kq = 1 For i = 1 To n Kq = Kq * i Next Giaithua = Kq End Function Private Sub Command1_Click()

    Trang 30

  • Visual Basic Dim n As Integer n = Val(txtNum.Text) lblKQ.Caption = Str(Giaithua(n)) End Sub Lu d n v chy chng trnh ta c kt qu nh hnh di:

    Lu : Do khi gi hm ta nhn c mt kt qu nn bn trong phn nh ngha hm, trc khi kt thc ta phi gn kt qu tr v ca hm thng qua tn hm (trong v d trn l dng lnh Giaithua = Kq)

    VII. Truy xut d liu trong Visual Basic VII.1. Cc khi nim o Module:

    - Mt ng dng n gin c th ch c mt biu mu, lc tt c m lnh ca ng dng c t trong ca s m lnh ca biu mu (gi l Form Module). Khi ng dng c pht trin ln ln, chng ta c th c thm mt s biu mu na v lc ny kh nng lp i lp li nhiu ln ca mt on m lnh trong nhiu biu mu khc nhau l rt ln.

    - trnh vic lp i lp li trn, ta to ra mt Module ring r cha cc chng trnh con c dng chung. Visual Basic cho php 3 loi Module:

    Module biu mu (Form module): i km vi mi mt biu mu l mt module ca biu mu cha m lnh ca biu mu ny. Vi mi iu khin trn biu mu, module biu mu cha cc chng trnh con v chng sn sng c thc thi p ng li cc s kin m ngi s dng ng dng tc ng trn iu khin. Module biu mu c lu trong my tnh di dng cc tp tin c ui l *.frm.

    Module chun (Standard module): M lnh khng thuc v bt c mt biu mu hay mt iu khin no s c t trong mt module c bit gi l module chun (c lu vi ui *.bas). Cc chng trnh con c lp i lp li p ng cc s kin khc nhau ca cc iu khin khc nhau thng c t trong module chun.

    Module lp (Class module): c s dng to cc iu khin c gi thc thi trong mt ng dng c th. Mt module chun ch cha m lnh nhng module lp cha c m lnh v d liu, chng c th c coi l cc iu khin do ngi lp trnh to ra (c lu vi ui *.cls).

    Trang 31

  • Visual Basic

    o Phm vi (scope): xc nh s lng chng trnh c th truy xut mt bin. Mt bin s thuc mt trong 3 loi phm vi:

    Phm vi bin cc b. Phm vi bin module. Phm vi bin ton cc.

    VII.2. Bin ton cc o Khi nim: Bin ton cc l bin c phm vi hot ng trong ton b ng dng. o Khai bo:

    Global [As ]

    VII.3. Bin cc b o Khi nim: Bin cc b l bin ch c hiu lc trong nhng chng trnh m

    chng c nh ngha. o Khai bo:

    Dim [As ] o Lu :

    Bin cc b c nh ngha bng t kha Dim s kt thc ngay khi vic thi hnh th tc kt thc.

    VII.4. Bin Module o Khi nim: Bin Module l bin c nh ngha trong phn khai bo

    (General|Declaration) ca Module v mc nhin phm vi hot ng ca n l ton b Module y.

    o Khai bo: - Bin Module c khai bo bng t kha Dim hay Private & t trong

    phn khai bo ca Module. V d: Private Num As Integer - Tuy nhin, cc bin Module ny c th c s dng bi cc chng trnh

    con trong cc Module khc. Mun th chng phi c khai bo l Public trong phn Khai bo (General|Declaration) ca Module.

    V d: Public Num As Integer

    Lu : Khng th khai bo bin vi t kha l Public trong chng trnh con.

    VII.5. Truyn tham s cho chng trnh con o Khi nim

    Mt chng trnh con i lc cn thm mt vi thng tin v trng thi ca on m lnh m n nh ngha thc thi. Nhng thng tin ny l cc bin c truyn vo khi gi chng trnh con, cc bin ny gi l tham s ca chng trnh con.

    Trang 32

  • Visual Basic

    C hai cch truyn tham s cho chng trnh con: Truyn bng gi tr & truyn bng a ch.

    o Truyn tham s bng gi tr Vi cch truyn tham s theo cch ny, mi khi mt tham s c truyn

    vo, mt bn sao ca bin c to ra. Nu chng trnh con c thay i gi tr, nhng thay i ny ch tc ng ln bn sao ca bin. Trong VB, t kha ByVal c dng xc nh tham s c truyn bng gi tr.

    V d: Sub Twice (ByVal Num As Integer) Num = Num * 2 Print Num End Sub Private Sub Form_Click() Dim A As Integer A = 4 Print A Twice A Print A End Sub Kt qu thc hin ca on chng trnh trn:

    4 8 4

    o Truyn tham s bng a ch Truyn tham s theo a ch cho php chng trnh con truy cp vo gi tr

    gc ca bin trong b nh. V th, gi tr ca bin c th s b thay i bi on m lnh trong chng trnh con. Mc nhin, trong VB6 cc tham s c truyn theo a ch; tuy nhin ta c th ch nh mt cch tng minh nh vo t kha ByRef.

    V d: Sub Twice (Num As Integer) Num = Num * 2 Print End Sub

    Num

    Private Sub Form_Click() Dim A As Integer A = 4 Print A Twice A Print A End Sub Kt qu thc hin ca on chng trnh trn:

    4 8

    Trang 33

  • Visual Basic

    8

    VIII. By li trong Visual Basic Cc thao tc by cc li thc thi ca chng trnh l cn thit i vi cc ngn

    ng lp trnh. Ngi lp trnh kh kim sot ht cc tnh hung c th gy ra li. Chng hn ngi ta kh c th kim tra cht ch vic ngi dng ang chp d liu t a mm (hay CD) khi chng khng c trong a. Nu c cc thao tc by li y th tin cho ngi lp trnh rt nhiu.

    Visual Basic cng cung cp cho ta mt s cu trc by cc li ang thc thi. C php: Dng 1:

    On Error GoTo :

    ngha: - : l mt tn c t theo quy tc ca mt danh biu. - Nu mt lnh trong th khi chng

    trnh thc thi n cu lnh , chng trnh s t ng nhy n on chng trnh nh ngha bn di thc thi.

    Dng 2: On Error Resume Next

    ngha: - Nu mt lnh trong th khi chng

    trnh thc thi n cu lnh , chng trnh s t ng b qua cu lnh b li v thc thi cu lnh k tip.

    Trang 34

  • Visual Basic

    CHNG 4 CC KIU D LIU C CU TRC

    Mc tiu:

    Chng ny gii thiu v cc cu trc d liu trong VB. Vic nm bt c cc vn ny gip cho vic t chc d liu khi vit chng trnh VB c hp l hn. Hc xong chng ny, sinh vin phi nm bt c cc vn sau:

    - S dng kiu d liu chui. - S dng kiu ngy thng. - Kiu ng (Variant) - Kiu mng

    Kin thc c lin quan: - Cc cu trc lp trnh trong VB. Ti liu tham kho:

    http://www.vovisoft.com/VisualBasic/VB6Chapter5.htmhttp://www.vovisoft.com/VisualBasic/VB6Chapter6.htm

    Trang 35

  • Visual Basic

    I. Kiu chui k t (String) I.1. Khai bo

    C hai c t chui k t theo c php nh sau: - String * Ch ra mt chui k t c di c nh l bao nhiu

    k t. Trong trng hp gi tr thc ca chui c di ngn hn di khai bo th di ca chui th mt s khong trng c thm vo cho di thc. Trong trng hp gi tr thc ca chui c di ln hn di khai bo th s ct bt cc k t d tha bn phi. Mt chui khng c k t no ( di bng 0) gi l chui rng.

    - String: Khi khng ch ra chiu di ti a ca chui th mc nhin chui c chiu di ti a l 65.500 k t.

    V d: Dim Name As String * 30, Class As String * 10 Dim A As String

    I.2. Cc hm x l chui o Ghp chui: cho php ghp 2 hay nhiu chui li vi nhau nh php ton &.

    V d: Dim FirstWord As String, SecondWord As String Dim Greeting As String FirstWord = "Hello"

    SecondWord = "World" Greeting = FirstWord & SecondWord

    ' Greeting by gi l "HelloWorld" o Len: tr v chiu di mt chui c ch nh.

    V d: ting " Gree = "Hi John! Dim iLen As Integer

    iLen = Len(Greeting) ' iLen by gi bng 8 o Left: Trch chui con t phn u chui gc Left (String, [length]). o Right: Trch chui con t phn ui chui gc Right (String, [length]) o Mid: Trch chui con t gia chui gc

    Mid(String, Start As Long, [length]) V d 1:

    Dim Today As String, StrDay As String, StrMonth As String Dim StrYear As String, StrMonthYear As String Today = "24/05/2001" ' Ly ra 2 k t t bn tri ca chui Today StrDay = Left(Today,2) ' StrDay by gi bng "24" ' Ly ra 4 k t t bn phi ca String Today StrYear = Right(Today,4) ' StrYear by gi bng "2001" ' Ly ra 2 characters bt u t k t th t ca chui Today, k t u tin t bn tri l th nht StrMonth = Mid(Today,4,2) ' StrMonth by gi bng "05"

    Trang 36

  • Visual Basic ' Ly ra phn cn li bt u t k t 4 ca chui Today StrMonthYear = Mid(Today,4) ' StrMonthYear bng 05/2001"

    V d 2: Today = "24/05/2001" ' Thay th character th 3 ca Today bng "-" Mid(Today,3,1) = "-" ' Thay th 2 k t bt u t k t 4 ca Today bng "10" Mid(Today,4,2) = "10" ' Thay th character th 6 ca Today bng "-" Mid(Today,6,1) = "-" ' Today by gi bng "24-10-2001"

    o InStr: Tm chui con trong chui gc. Nu hm InStr tr v 0, ngha l khng tm thy.

    C php: InStr([start,] string1, string2 [, compare]) Trong : - Start: Xc nh v tr trong chui bt u vic tm kim. Nu gi tr l Null th

    s bt u t u chui. Nu nh tham s Compare c c t th bt buc phi khai bo tham s Start.

    - String1: Biu thc chui so snh. - String2: Chui cn tm. - Compare: Xc nh kiu so snh chui.

    Gi tr: vbTextCompare, vbBinaryCompare. V d 1: Dim myString As String, Position As Integer myString = "The *rain in Spain mainly..." Position = Instr(myString,"*") ' Position s l 5 Nu trong myString khng c du "*" th Position s bng 0 V d 2: Dim KeyValuePair As String, Key As String Dim Value As String KeyValuePair = "BeatlesSong=Yesterday" Pos = Instr(KeyValuePair, "=") Key = Left(KeyValuePair, Pos-1) Value = Mid(KeyValuePair, Pos+1)

    o Replace: tm v thay th chui. C php:

    Replace(Expression, find, replace[, start[, count[, compare]]]) Trong :

    - Expression: Biu thc chui cha chui cn thay th. - find:Chui cn tm. - replace: Chui thay th chui tm c. - start: Tng t nh hm InStr. - count: Xc nh s ln thay th. Mc nh l 1. - compare: Tng t nh hm InStr.

    Trang 37

    o LTrim (RTrim): ct tt c cc khong trng bn tri (bn phi ca chui) C php: LTrim(string) RTrim(string)

  • Visual Basic

    o UCase: i chui sang chui gm cc k t l ch hoa. C php: UCase(string)

    o Asc: cho m Ascii ca mt k t. o Chr: tr v k t ng vi m Ascii c ch nh.

    Dim ASCIINumberA As Integer, CharB As String * 1 Dim StrFive As String * 1 ASCIINumberA = Asc("A") ' ASCIINumberA by gi bng 65 CharB = Chr(66) StrFive = Chr(Asc("0") + 5) ' ta c digit "5"

    o InstrRev: tng t nh InStr nhng vic tm kim c tin hnh t phi sang. o Val: Hm i chui sang s. o Str: Hm i s sang chui.

    II. Kiu ngy thng (Date) - L kiu m cc bin ca n cha gi tr ngy thng.

    - cho VB bit d liu l kiu Date ta cn t gia hai du # (hoc cp ). V d:

    Dim D As Date D = #01/02/98# Hay 01/02/98

    Nu hiu theo kiu ngi M, y l ngy 2 thng ging nm 1998, cn nu theo kiu Anh th y l ngy 1 thng hai nm 1998. Tuy nhin, nh dng ngy thng hin th ph thuc vo quy nh ca Windows.

    - Hp thoi hnh IV.1 hin th khi ta chn Regional Setting trong ca s Control Panel ca Windows, n cho php quy nh kiu ngy thng ty thuc cch m ngi dng quy nh. VB x l ngy thng theo kiu M, nhng nu my hin th theo kiu Anh th n vn hin th theo kiu Anh.

    Hnh IV 1 Hp thoi xc lp - Hm Now: tr v ngy gi hin ti. V d: Dng hm Now & Format: MsgBox "NOW IS " & Format (Now, "ddd dd-mmm-yyyy hh:nn:ss") ' s hin th

    NOW IS Tue 05-Oct-2004 16:15:53

    Trang 38

  • Visual Basic

    III. Cc loi s o chuyn i mt chui ra s ta c cc hm Val, CInt, CSng. Ngc li

    chuyn i t s sang chui ta dng CStr, Str. V d:

    Dollars = "500" ExchangeRatePerDollar = "7000" tempValue= Val(Dollars) * Val(ExchangeRatePerDollar) VNDong = CStr(tempValue) MsgBox "Amount in VN Dong is " & VNDong

    V d: Dollars = "500.0" ExchangeRatePerDollar = "7000.0" 'Dng hm CSng i chui ra Single tempValue = CSng(Dollars) * CSng(ExchangeRatePerDollar) 'Dng hm Format c cc du phy ngn v triu v phi c 2 ch s sau du chm thp phn. VNDong = Format (tempValue, "#,###,###.00") MsgBox "Amount in VN Dong is " & VNDong

    o Round: b bt mt s ch s sau du chm thp phn V d:

    Round ( 12.3456789, 4 ) ch gi li 4 con s sau du chm thp phn v cho ta 12.3457

    IV.Kiu Object Bin kiu Object cha mt a ch 4 Byte tr n i tng trong ng dng hin

    hnh hoc cc ng dng khc. Dng lnh Set ch ra i tng c th. Dim ObjDb As Object Set ObjDb = OpenDatabase("d:\tqdinh\thu.mdb") Khi khai bo bin i tng, ta nn ch ra tn lp tng minh, chng hn nh

    TextBox thay v Control, ng dng ca ta s chy nhanh hn. Ta c th xem danh sch cc lp c sn trong ca s Object Browser.

    V. Kiu Variant Bin kiu Variant c th cha mi kiu d liu k c kiu mng, kiu do ngi

    dng nh ngha nhng ngoi tr kiu chui c di c nh . Bin kiu Variant c th nhn cc gi tr c bit nh Empty, Nothing, Error,

    Null. Ta c th xc nh kiu d liu ca bin Variant bng cc s dng hm VarType hoc hm TypeName.

    Hm VarType dng kim tra kiu d liu

    Hng Gi tr Din gii vbEmpty 0 Khng cha g c vbNull 1 D liu khng hp l vbInteger 2 D liu kiu Integer chun

    Trang 39

  • Visual Basic

    vbLong 3 D liu kiu Long Integer vbSingle 4 D liu kiu du chm ng Single vbDouble 5 D liu kiu du chm ng Double vbCurrency 6 Kiu Currency vbDate 7 Kiu Date vbString 8 Kiu String vbObject 9 Kiu Object vbError 10 C mt i tng li vbBoolean 11 Kiu gi tr Boolean chun vbVariant 12 Kiu Variant vbDataObject 13 Kiu DAO chun (data access object)vbDecimal 14 Gi tr thuc h thp phn vbByte 17 Kiu Byte vbUserDefinedType 36 Kiu do ngi dng nh ngha vbArray 8192 Kiu mng

    Mt s ch khi dng bin kiu Variant: - Nu mun thi hnh cc hm ton hc, Variant phi cha gi tr kiu s. - Nu mun ni chui, dng ton t & thay v ton t +. Gi tr Empty: - y l gi tr c bit xut hin khi mt bin cha c gn tr. Ta dng hm

    IsEmpty kim tra gi tr Empty. - Gi tr Empty bin mt khi c mt gi tr bt k c gn cho bin Variant,

    tr v gi tr Empty, ta gn t kho Empty cho bin Variant. Gi tr Null: Bin Variant cha gi tr Null trong trng hp nhng ng dng c

    s d liu th hin khng c d liu hoc d liu khng xc nh. Gi tr Error: Trong mt bin kiu Variant, Error l mt gi tr c bit cho bit

    c mt li xy ra bn trong th tc. V d: Private Sub cmdShowDataTypes_Click() Dim sMess As String Dim vVariant As Variant vVariant = "Xin chao" 'String sMess = VarType(vVariant) & vbCrLf ' xung dng & v u dng vVariant = 25 ' Integer sMess = sMess & VarType(vVariant) & vbCrLf vVariant = True ' Boolean sMess = sMess & VarType(vVariant) & vbCrLf 'Date vVariant = #1/1/2001# 'trong cp du # sMess = sMess & VarType(vVariant) MsgBox sMess End Sub Khi chy chng trnh kt qu l:

    Trang 40

  • Visual Basic

    VI. Kiu Mng VI.1. Khi nim

    - Mng l tp hp cc phn t c cng mt kiu. - Dng mng s lm cho chng trnh n gin v gn hn v ta c th s dng vng lp. Mng s c bin trn v bin di, trong cc thnh phn ca mng l lin tip trong khong gia hai bin ny. - C hai loi bin mng: mng c chiu di c nh v mng c chiu di thay i lc thi hnh.

    VI.2. Khai bo o Mng c chiu di c nh: Dim () [As ] Lc ny phn t u tin c ch s l 0 & phn t cui cng c ch s l . Dim ( To ) [As ]

    V d: ' Khai bo mt bin mng 15 phn t kiu Integer Dim Counters(14)As Integer ' Khai bo mt bin mng 21 phn t kiu Double Public Sums(20)As Double ' Khai bo mt bin mng 10 phn t kiu chui k t Dim List (1 To 10) As String * 12

    - Hm UBound tr v bin trn ca mt mng.

    Trang 41

  • Visual Basic

    - Hm LBound tr v bin di ca mt mng. V d:

    UBound(List) s tr v gi tr l 10. LBound(List) s tr v gi tr l 1.

    9 Lu : ta c th khai bo mt mng nhiu chiu nh sau Dim Multi3D (3, 1 To 10, 9) As Double

    Khai bo ny to ra mt mng 3 chiu vi kch thc 4 x 10 x 10. o Mng ng:

    - y l mng c kch thc thay i, l mt trong nhng u im ca mng ng v n gip ta tit kim ti nguyn h thng. Ta c th s dng mt mng c kch thc ln trong mt thi gian no ri xo b tr li vng nh cho h thng. - Khai bo mt mng ng bng cch cho n mt danh sch khng theo chiu no c. C php: Dim () [As ] V d: Dim DynArray() As Integer

    Sau ta c th cp pht s phn t tht s bng lnh ReDim. ReDim (N) ' Trong N l mt biu thc kiu Integer. ReDim dng xc nh hay thay i kch thc ca mt mng ng. Ta c th dng ReDim thay i s phn t, s chiu ca mt mng nhiu ln nhng khng th thay i kiu d liu ca mng ngoi tr kiu mng l kiu Variant. Mi ln gi ReDim tt c cc gi tr cha trong mng s b mt. VB khi to li gi tr cho chng (Empty i vi mng Variant, 0 cho mng kiu s, chui rng cho mng chui hoc Nothing cho mng cc i tng). Nhng i khi ta mun tng kch c ca mng nhng khng mun lm mt d liu, ta dng ReDim i km vi t kho Preserve. Ta xem v d di y: ReDim Preserve DynArray (UBound(DynArray) +10) Tuy nhin ch c bin trn ca chiu cui cng trong mng c thay i khi ta dng Preserve. Nu ta c tnh thay i chiu khc hoc bin di th VB s bo li.

    VI.3. Mt s thao tc trn mng o Truy xut tng phn t trong mng: () o Sao chp mng: i vi VB6, ta c th gn mt mng cho mt mng khc, hoc

    kt qu tr v ca mt hm c th l mt mng. V d:

    Sub ByteCopy (old () As Byte, New () As Byte) New = old End Sub

    Tuy nhin, cch ny cng ch p dng c cho mng khai bo ng m thi. Khi gn bin, c mt s quy lut m ta cn lu : l quy lut v kiu d liu v quy lut v kch thc v s chiu ca mng.

    Trang 42

  • Visual Basic

    Li khi gn mng c th xy ra lc bin dch hoc khi thi hnh. Ta c th thm by li m bo rng hai mng l tng thch trc khi gn.

    o Mng l kt qu tr v ca hm. Chng hn nh: Public Function ArrayFunction (b As Byte) As Byte()

    Dim x(2) As Byte x(0) = b x(1) = b + 2 x(2) = b + b ArrayFunction = x End Function

    Khi gi hm tr v mng, bin gi gi tr tr v phi l mt mng v c kiu nh kiu ca hm, nu khng n s bo li "khng tng thch kiu".

    VII. Kiu do ngi dng nh ngha - Kiu mu tin C php: Type

    : :

    : : End Type V d: Type TEmployee Fullname As String Salary As Single Age As Integer End Type Chng ta va nh ngha mt kiu d liu mi c tn l TEmployee. Kiu ny c nt tng t nh mt lp. V mt chc nng, c hai l nh nhau, nhng mt lp c th cha trong DLL v sn sng cho vic dng chung vi cc ng dng khc, trong khi kiu d liu do ngi dng nh ngha phi c khai bo li trong tng d n. Do vy, kiu lp c nhiu mt tin li hn. Cch truy xut tng trng ca kiu mu tin: . V d: Gi s ta c khai bo bin sau: Dim e As TEmployee Ta c th gn: e.Fullname = Nguyen Van An e.Salary = 300000.00 e.Age = 26

    Cu lnh With: - c s dng vit gn hn khi thao tc vi d liu kiu mu tin. - C php: With

    Trang 43

  • Visual Basic

    [ Truy xut n tng trng ca mu tin theo dng: .

    ] End With

    V d: Dim e As TEmployee Ta c th gn: With e .Fullname = Nguyen Van An .Salary = 300000.00 .Age = 26 End With

    Trang 44

  • Visual Basic

    CHNG 5 THIT K BIU MU DNG CC IU KHIN

    Mc tiu: Chng ny gii thiu v cc iu khin dng trong vic to giao din

    cho cc ng dng chy trn Windows. Vic nm bt c cc vn ny lm cho cng vic to giao din cho ng dng c nhanh chng. Hc xong chng ny, sinh vin phi nm bt c cc vn sau:

    - S dng cc iu khin hp danh sch, hp la chn lu cc danh sch. - S dng cc iu khin hp nh du, nt la chn nhn/hin th d liu

    dng Yes/No. - S dng cc iu khin hp hnh nh, iu khin nh hin th nh. - S dng iu khin thanh cun nhn/hin th d liu s. - S dng iu khin thi gian p ng s tri i ca thi gian. - Mt s iu khin khc.

    Kin thc c lin quan: - Cc cu trc lp trnh trong VB. - Cch thc x l s kin. Ti liu tham kho:

    - Microsoft Visual Basic 6.0 v Lp trnh C s d liu - Chong 3, trang 29 - Nguyn Th Ngc Mai (ch bin), Nh xut bn Gio dc - 2000.

    Trang 45

  • Visual Basic

    I. Phn loi iu khin C 3 nhm iu khin trong Visual Basic: Cc iu khin ni ti (Intrinsic control). Cc iu khin ni ti lun cha sn trong hp cng c (nhn, khung, nt lnh, khung nh...). Ta khng th g b cc iu khin ni ti ra khi hp cng c. Cc iu khin ActiveX tn ti trong cc tp tin c lp c phn m rng .OCX: l cc iu khin c th c trong mi phin bn ca VB hoc l cc iu khin ch hin din trong n bn Professional v Enterprise. Mt khc cn c rt nhiu iu khin ActiveX do nh cung cp th ba cung cp. Cc i tng chn c (Insertable Object): Cc i tng ny c th l Microsoft Equation 3.0 hoc bng tnh (Worksheet) ca Microsoft Excel... Mt vi i tng kiu ny cho php ta lp trnh vi cc i tng sinh ra t cc ng dng khc ngay trong ng dng VB.

    II. S dng cc iu khin II.1 iu khin danh sch cc la chn (List Box)

    II.1.1. Khi nim: iu khin ny hin th mt danh sch cc mc m ngi dng c

    th chn la mt hoc nhiu mc Biu tng (Shortcut) trn hp cng c iu khin ny hin th mt danh sch cc mc m ngi dng c

    th chn la mt hoc nhiu mc

    Trang 46

  • Visual Basic

    List Box gii thiu vi ngi dng mt danh sch cc la chn. Mt cch mc nh, cc la chn hin th theo chiu dc trn mt ct v bn c th thit lp l hin th theo nhiu ct. Nu s lng cc la chn nhiu v khng th hin th ht trong danh sch th mt thanh trt s t ng xut hin trn iu khin. Di y l mt v d v danh sch cc la chn n ct.

    Hnh V.1: V d v List Box

    II.1.2. Thuc tnh: o Name: y l tn ca danh sch la chn, c s dng nh mt nh danh. o MultiSelect: Thuc tnh ny cho php List Box c c php c nhiu la

    chn khi thc thi hay khng? o Sort: List Box c sp xp hay khng? o Ngoi ra cn c mt s thuc tnh thng dng khc nh: Font, Width,

    Height o ListIndex: V tr ca phn t c la chn trong List Box. o Select(): cho bit phn t th trong List Box c c chn

    hay khng? II.1.3. Phng thc: o AddItem: Thm mt phn t vo List Box. C php:

    .AddIem(Item As String, [Index])

    Tham s Din gii Name Tn ca List Box. Item Biu thc chui ( mc) cn thm vo. Index Xc nh v tr mc mi c chn vo, gi tr 0 xc nh cho

    v tr u tin. Khi khng ch nh r Index th phn t thm vo l mc cui cng trong List Box mi.

    Sau y l on m v d to mt List Box c tn List1 vi cc mc

    "Germany," "India," "France," v "USA" vo lc biu mu c np (Load). Private Sub Form_Load ()

    Trang 47

  • Visual Basic List1.AddItem "Germany" List1.AddItem "India" List1.AddItem "France" List1.AddItem "USA" End Sub Ngi dng cng c th thm vo mt mc mi mt cch t ng vo

    bt k thi im no nhm p li tc ng t pha ngi s dng ng dng. Di y l hnh nh minh ha cho List Box tng ng vi on m trn.

    Hnh V.2 List box hin th cc

    quc gia Thm mt mc mi ti v tr xc nh: thc hin cng vic ny ta

    ch cn ch ra v tr cn xen mc mi vo. V d: List1.AddItem "Japan", 0

    Thm mi mc ti thi im thit k: S dng thuc tnh List ca iu khin List Box, ta c th thm mi cc mc v dng t hp phm CTRL+ENTER bt u thm vo mc mi trn dng khc. Khi thm xong danh sch cc mc, ta c th sp xp li cc mc bng cch s dng thuc tnh Sorted v t gi tr ca thuc tnh ny l TRUE. o RemoveItem: Xa mt phn t ra khi List Box.

    C php: .RemoveItem Index Tham s Name v Index ging nh trng hp thm vo mt mc.

    o Clear: Xa tt c cc mc trong List Box. C php .Clear o Text: Nhn gi tr t List Box khi mt mc c chn. Chng hn on

    m sau y s cho bit dn s ca Canada khi ngi dng chn Canada t List Box. Private Sub List1_Click ()

    If List1.Text = "Canada" Then Text1.Text = "Canada has 24 million people." End If

    End Sub

    Trang 48

  • Visual Basic

    Chon

    Hnh V.3 V d v List Box

    o List: truy xut ni dung phn t bt k trong List Box. Thuc tnh ny cho php truy xut tt c cc mc ca iu khin List

    Box. Thuc tnh ny cha mt mng v mi mc l mt phn t ca mng. Mi mc c hin th di dng chui, tham chiu n mt mc trong danh sch, s dng c php sau:

    .List(Index) V d: Text1.Text = List1.List(2)

    II.1.4. S kin: o Click & Double Click: Xy ra khi ngi s dng nhp chut (hay nhp

    p) vo List Box. Thng thng ngi s dng s thit k mt nt lnh i km nhn v gi tr do ngi dng chn. Khi cng vic thc hin sau khi nt lnh c chn s ph thuc vo gi tr ngi dng chn t List Box. Double Click ln mt mc trong danh sch cng c kt qu tng t nh vic chn mt mc trong danh sch ri n ln nt lnh. thc hin cng vic nh trn trong s kin Double Click ca List Box ta s gi n s kin Click ca nt lnh. Private Sub List1_DblClick () Command1_Click End Sub

    Hoc ta c th thit t gi tr True cho thuc tnh Value ca nt lnh.

    Private Sub List1_DblClick () mmand1.Value = True Co

    End Sub

    Trang 49

  • Visual Basic

    II.2 iu khin hp la chn (Combo Box) iu khin Combo Box c th c xem l tch hp gia hai iu khin

    Text Box v List Box. Ngi dng c th chn mt mc bng cch nh chui vn bn vo Combo Box hoc chn mt mc trong danh sch.

    im khc nhau c bn gia Combo Box v List Box l iu khin Combo ch gi (hay ngh) cc la chn trong khi iu khin List th gii hn cc mc nhp vo tc l ngi dng ch c th chn nhng mc c trong danh sch. iu khin Combo cha c nhp liu nn ngi dng c th a vo mt mc khng c sn trong danh sch.

    Biu tng short cut trn hp cng c: Cc dng ca iu khin Combo Box: C tt c 3 dng ca iu khin

    Combo Box. Ta c th chn dng ca Combo ti thi im thit k bng cch dng gi tr hoc hng chui ca VB.

    Kiu Gi tr Hng

    Drop-down Combo Box 0 VbComboDropDown

    Simple Combo Box 1 VbComboSimple

    Drop-down List Box 2 vbComboDropDownList

    Simple combo box Drop-down list box Drop-down combo box Hnh V.4: Cc dng combo box - Drop-down Combo Box: y l dng mc nhin ca Combo. Ngi dng c th nhp vo trc tip hoc chn t danh sch cc mc. - Simple Combo Box: Ta c th hin th nhiu mc cng mt lc. hin th tt c cc mc, bn cn thit k Combo ln. Mt thanh trt s xut hin khi cn mc cha c hin th ht. dng ny, ngi dng vn c th nhp mt chui vo trc tip hoc chn t danh sch cc mc. - Drop down List Box: Dng ny rt ging nh mt List box. Mt im khc bit l cc mc s khng hin th n khi no ngi dng Click ln mi tn pha phi ca iu khin. im khc bit vi dng th 2 l ngi dng khng th nhp vo trc tip mt chui khng c trong danh sch. Cc thuc tnh cng nh cc phng thc p dng trn Combo Box ging nh trn List Box.

    Trang 50

  • Visual Basic

    II.3 iu khin hp nh du (Check Box) II.3.1. Khi nim:

    y l iu khin hin th du 9 nu nh c chn v du 9 b xo nu nh khng chn. Dng iu khin Check Box nhn thng tin t ngi dng theo dng Yes/No hoc True/False. Ta cng c th dng nhiu iu khin trong mt nhm hin th nhiu kh nng la chn trong khi ch c mt c chn. Khi Check Box c chn, n c gi tr 1 v ngc li c gi tr 0.

    Biu tng shortcut trn hp cng c II.3.2. Thuc tnh: o Name: thuc tnh tn. o Value: Gi tr hin thi trn Check Box. C th nhn cc gi tr: vbChecked,

    vbUnchecked, vbGrayed. II.3.3. S kin: o Click: Xy ra khi ngi s dng nhp chut trn Check Box.

    II.3.4. V d: Thit k chng trnh c giao din: Hnh V.5 V d v Check Box Hnh V.5 l hnh minh ha cch dng Check Box hin th chui di dng t

    m v nghing. Private Sub chkBold_Click () If ChkBold.Value = vbChecked Then ' If checked. txtDisplay.Font.Bold = True Else ' If not checked. txtDisplay.Font.Bold = False End If End Sub Private Sub chkItalic_Click () If ChkItalic.Value = vbChecked Then ' If checked. xtDisplay.Font.Italic = True t Else If not checked.

    Trang 51

  • Visual Basic

    txtDisplay.Font.Italic = False End If End Sub

    II.4 iu khin nt la chn (Option Button) II.4.1. Khi nim:

    Cng dng ca iu khin Option button cng tng t nh iu khin Check Box. im khc nhau ch yu gia hai loi iu khin ny l: Cc Option Button ca cng mt nhm ti mi thi im ch c mt iu khin nht nh c chn.

    Biu tng Shortcut trn hp cng cu Cch s dng Option button cng tng t nh ca Check Box. To nhm Option Button

    Tt c cc Option button t trc tip trn biu mu (c ngha l khng thuc vo Frame hoc Picture Box) s c xem nh l mt nhm. Nu ngi dng mun to mt nhm cc Option button khc th bt buc phi t chng bn trong phm vi ca mt Frame hoc Picture box.

    Hnh V.6 Nhm cc option button

    II.4.2. Thuc tnh: o Name: thuc tnh tn ca iu khin Option Button. o Value: Gi tr hin thi trn Option Button. C th nhn cc gi tr: True &

    False. II.4.3. S kin:

    Click: Xy ra khi ngi s dng nhp chut trn Option Button. II.5 iu khin thanh cun ngang (HScrollBar)

    II.5.1. Khi nim: L iu khin c thanh trt cho php cun ngang v ngi dng c th s

    dng HScrollBar nh mt thit b nhp hoc mt thit b ch nh cho s lng hoc vn tc. V d ta thit k volume cho mt tr chi trn my tnh hoc din t c bao nhiu thi gian tri qua trong mt khong nh thi nht nh.

    Trang 52

  • Visual Basic

    Biu tng Shortcut trn hp cng cu

    Khi ngi dng s dng Scroll Bar nh mt thit b ch nh s lng th ngi dng cn xc nh gi tr cho hai thuc tnh Max v Min a ra khong thay i thch hp.

    II.5.2. Thuc tnh: o Name: Tn ca thanh cun. o Min: L gi tr nh nht trn thanh cun. o Max:: Gi tr ln nht ca thanh cun. o Large change: Thuc tnh ny dng xc nh khong thay i khi

    ngi dng n chut ln Hscrollbar. o Small change: Thuc tnh ny dng xc nh khong thay i khi

    ngi dng n ln mi tn pha cui thanh cun. o Value: Thuc tnh ny tr v gi tr ti mt thi im ca thanh cun nm

    trong khong gi tr [Min, Max] m ngi dng xc nh. II.5.3. S kin:

    o Change: Xy ra mi khi HScrollBar thay i gi tr. o Scroll: Xy ra mi khi ta di chuyn con tr thanh cun.

    II.5.4. V d:

    Hnh V.7 V d v Hscrollbar Hnh V.7 minh ha vic s dng thanh cun thay i kch c ca Text h tn vi on m n gin nh sau: Private Sub HScroll1_Change() Text1.FontSize = HScroll1.Value End Sub

    Trang 53

  • Visual Basic

    II.6 iu khin thanh cun ng (VScrollBar)

    Biu tng shortcut trn hp cng cu Cc thuc tnh v cng dng ca VScrollBar cng tng t nh HScrollBar.

    II.7 iu khin hp hnh nh (Picture Box) II.7.1. Khi nim:

    iu khin Picture Box cho php ngi dng hin th hnh nh ln mt biu mu.

    Biu tng Shortcut trn hp cng c II.7.2. Thuc tnh:

    o Name: tn ca iu khin Picture Box. o Picture: y l thuc tnh cho php xc nh hnh nh no s c hin th

    bn trong Picture box. Bao gm tn tp tin hnh nh v c ng dn nu c. hin th hoc thay th mt hnh nh ti thi im chy chng trnh th ngi dng c th dng phng thc LoadPicture t li gi tr ca thuc tnh Picture vi c php nh trong v d di y: picMain.Picture = LoadPicture("NEW.JPG")

    o Autosize: Khi gi tr ca thuc tnh ny l TRUE th iu khin Picture box s t ng thay i kch thc cho ph hp vi hnh nh c hin th. Ta nn cn thn khi s dng thuc tnh ny v khi iu khin Picture Box thay i kch thc, n khng quan tm n v tr ca cc iu khin khc.

    II.7.3. S kin: o Mouse Down: Xy ra khi ngi s dng chng trnh nhn gi phm

    chut. o Mouse Move: Xy ra khi ngi s dng chng trnh di chuyn chut. o Mouse Up: Xy ra khi ngi s dng chng trnh th phm chut.

    II.7.4. V d:

    Trang 54

  • Visual Basic

    Private Sub Picture1_MouseMove(Button As Integer, Shift As _

    Integer, X As Single, Y As Single) Picture1.Picture = LoadPicture("d:\quocdinh\new.jpg") End Sub

    II.7.5. Lu :

    o iu khin Picture Box c th c dng nh mt vt cha cc iu khin khc (tng t nh mt Frame).

    o Ngoi ra ngi dng cng c th s dng Picture Box nh mt khung v hoc nh mt khung son tho v c th in c ni dung trn .

    II.8 iu khin hnh nh (Image) II.8.1. Khi nim:

    iu khin Image dng hin th mt hnh nh. Cc dng c th l Bitmap, Icon, Metafile, Jpeg, Gif. Tuy nhin khc vi iu khin Picture Box iu khin Image s dng ti nguyn h thng t v cng np nh nhanh hn; hn na s lng thuc tnh v phng thc p dng t hn iu khin Picture box.

    Biu tng Shortcut trn hp cng c II.8.2. Thuc tnh:

    o Name: tn ca iu khin Image. o Picture: y l thuc tnh cho php xc nh hnh nh no s c hin th

    bn trong iu khin Image. Bao gm tn tp tin hnh nh v c ng dn nu c. hin th hoc thay th mt hnh nh ti thi im chy chng trnh th ngi dng c th dng phng thc LoadPicture t li gi tr ca thuc tnh Picture vi c php nh trong v d di y: imgMain.Picture = LoadPicture("NEW.JPG")

    o Stretch: Khi gi tr ca thuc tnh ny l TRUE th iu khin Image s t ng thay i kch thc cho ph hp vi hnh nh c hin th.

    II.8.3. S kin: o Mouse Down: Xy ra khi ngi s dng chng trnh nhn gi phm

    chut. o Mouse Move: Xy ra khi ngi s dng chng trnh di chuyn chut. o Mouse Up: Xy ra khi ngi s dng chng trnh th phm chut.

    Trang 55

  • Visual Basic

    II.9 iu khin hnh dng (Shape)

    Biu tng Shortcut trn hp cng cu iu khin Shape dng v cc hnh dng nh: hnh ch nht, hnh vung,

    oval, hnh trn, hnh ch nht gc trn hoc hnh vung gc trn. Thuc tnh Shape cho php ngi dng chn 1 trong 6 dng nh nu trn.

    Sau y l bng gi tr ca thuc tnh ny

    Hnh dng Gi tr Hng

    Rectangle 0 vbShapeRectangle

    Square 1 vbShapeSquare

    Oval 2 vbShapeOval

    Circle 3 vbShapeCircle

    Rounded Rectangle 4 vbShapeRoundedRectangle

    Rounded Square 5 vbShapeRoundedSquare

    Hnh V.9 di y minh ha cho cc dng ca iu khin Shape

    Hnh V.9: 6 dng ca iu khin Shape

    Ngi dng c th s dng cc thuc tnh nh BorderColor, BorderStyle, BorderWidth xc nh mu, dng cng nh dy ca ng bin. Tng t vi cc thuc tnh FillColor, FillStyle xc nh mu v kiu t nn.

    II.10 iu khin thi gian (Timer) II.10.1. Khi nim:

    iu khin Timer p ng li s tri i ca thi gian. N c lp vi ngi s dng v ta c th lp trnh thc hin mt cng vic no c sau mt khong thi gian u nhau.

    Biu tng Shortcut trn hp cng cu Vic a mt iu khin Timer v trong mt biu mu cng tng t nh

    nhng iu khin khc. y, ta ch c th quan st c v tr ca iu khin Timer

    Trang 56

  • Visual Basic

    ti giai on thit k, khi chy ng dng iu khin Timer coi nh khng c th hin trn biu mu.

    II.10.2. Thuc tnh: o Name: tn ca iu khin Timer. o Interval: y l thuc tnh ch r s ms gia hai s kin k tip nhau. Tr

    khi n b v hiu ha, mi iu khin Timer s lun nhn c mt s kin sau mt khong thi gian u nhau.

    Thuc tnh Interval nhn gi tr trong khong 0...64.767 ms c ngha l khong thi gian di nht gia hai s kin ch c th l khong mt pht (64.8 giy).

    o Enabled: nu gi tr l True ngha l iu khin Timer c kch hot v ngc li.

    II.10.3. S kin: o Timer: xy ra mi khi n thi gian mt s kin c thc hin (xc nh

    trong thuc tnh Interval). II.10.4. S dng iu khin Timer:

    o Khi to mt iu khin Timer: Nu lp trnh vin mun iu khin Timer hot ng ngay ti thi im biu mu cha n c np th t thuc tnh Enable l TRUE hoc c th dng mt s kin no t bn ngoi kch hot iu khin Timer.

    o Lp trnh p ng s kin tr v t iu khin Timer: Ta s a m lnh ca cng vic cn thc hin vo trong s kin Timer ca iu khin Timer. Sau y l v d khi to mt ng h s nh vo iu khin Timer.

    Private Sub Timer1_Timer()

    If Label1.Caption CStr(Time) Then Label1.Caption = Time

    End If End Sub Thuc tnh Interval c thit lp l 500 (tc 0.5 giy).

    iu khin Timer cn hu ch trong vic tnh ton thi gian cho mt cng vic no , n mt thi im no th ta s khi to mt cng vic mi hoc ngng mt cng vic khng cn cn na.

    II.11 iu khin danh sch a (DriveListbox), danh sch th mc (DirListbox), danh sch tp tin (FileListbox)

    II.11.1. Khi nim: o iu khin DriveListbox trnh by nhng a ca h thng v cho php

    ngi dng chn mt trong nhng a . Biu tng shortcut (DriveListbox) trn hp cng c

    o iu khin DirListbox cho php trnh by nhng th mc v ng dn ti thi im chy ng dng. S dng iu khin ny trnh by mt danh sch c th bc ca cc th mc, c ngha l ngi dng c th m mt ti liu t danh sch cc ti liu c sn.

    Trang 57

  • Visual Basic

    Biu tng shortcut (DirListbox) trn hp cng c o iu khin FileListbox cho php trnh by nhng ti liu c sn trong th

    mc hin hnh. Bn c th dng thuc tnh Partten xc nh kiu tp tin no c hin th trong danh sch.

    Biu tng shortcut (FileListbox) trn hp cng cu Thng thng cc ng dng s s dng kt hp c ba loi iu khin trn l DriveListbox, DirListbox v FileListbox.

    II.11.2. V d: Cc thuc tnh c thit lp ti thi im thit k

    FileListbox: Partten = "*.doc" DriveListbox, DirListbox FileListbox: FontName = "Vncourier New".

    Tc l iu khin FileListbox ch hin th cc tp tin ca Microsoft Word. on m di y c vit trong s kin Load ca biu mu

    Private Sub Form_Load() Dir1.Path = "c:\" File1.Path = "c:\"

    End Sub

    Hnh V.10 : V d v cc iu khin a, th mc v tp tin

    Trang 58

  • Visual Basic

    on m trn cho php xc nh ng dn hin hnh ca iu khin

    DirListbox, FileListbox ti thi im np ng dng l "C:\". Khi chy ng dng ta c nh hnh V.10.

    Khi ta thay i a th cc th mc s thay i theo l nhng th mc a hin hnh, s thay i cng din ra tng t i vi danh sch cc tp tin. Cn ch rng i vi a mm v CD th cn thit phi c a mm hoc CD ti thi im chn a nu khng s xy ra li ti thi im chy ng dng.

    Private Sub Dir1_Change() Fil

    End Sub e1.Path = Dir1.Path

    Private Sub Drive1_Change()

    Dir1.Path = Drive1.Drive End Sub

    Bn trn l nhng on m p ng li vic ngi dng chn vic thay i a v th mc. Trong danh sch cc tp tin ta ch hin th nhng file *.doc.

    Trang 59

  • Visual Basic

    CHNG 6: LP TRNH X L GIAO DIN & HA

    Mc tiu:

    Chng ny gii thiu v cch to menu cng nh mt s hm x l ha, nhng thnh phn quan trng trong cc ng dng chy trn Windows. Hc xong chng ny, sinh vin phi nm bt c cc vn sau:

    - S dng menu trong thit k giao din. - S dng cc hp thoi trong thit k ng dng. - S dng cc phng thc ha cng vi cch x l mt s s kin

    to cc ng dng ha. Kin thc c lin quan: - Cc cu trc lp trnh trong VB. - Cch thc x l s kin. Ti liu tham kho:

    - Microsoft Visual Basic 6.0 v Lp trnh C s d liu - Chng 7, trang 99 - Nguyn Th Ngc Mai (ch bin), Nh xut bn Gio dc - 2000.

    Trang 60

  • Visual Basic

    I. Menu I.1. Khi nim

    Menu l mt loi iu khin trong ngi s dng c th la chn cc mc t mt danh sch cho trc. C 2 loi menu: - Menu th xung (Drop-Down Menu): l dng menu thng dng nht.

    - Menu bt ra (Pop-Up Menu): thng hin th khi ta n nt phi chut.

    I.2. Cc thuc tnh ca Menu Cc thuc tnh ca Menu khng cha trong ca s Properties m cha trong

    Menu Editor. - Caption: L chui hin th trn menu. - Name: Phi duy nht v d nh. y l tn nhn bit thnh phn

    no ca Menu c chn. - Shortcut: dng thit lp cc phm tt (Shortcut key). - WindowList: Dng trong cc ng dng MDI (Multipe Document

    Interface). y l ng dng c mt biu mu chnh v nhiu biu mu con. Thuc tnh ny ra lnh cho VB hin th tiu ca cc biu mu con trn menu.

    - Checked: Nu chn thuc tnh ny th s c mt du hin th bn cnh tri, nhng thuc tnh ny khng c p dng cho nhng mc menu c cha menu con.

    - Enabled: Nu thuc tnh ny khng c chn th mc ny s b xm i v ngi dng khng th chn.

    - Visible: Nu thuc tnh ny khng c chn th mc ny s khng c hin th.

    - NegotiatePosition: qun l v tr gn menu trong trng hp s dng cc i tng ActiveX.

    I.3. Cc s kin - Click: Xy ra khi ngi s dng chng trnh nhp chut vo mt mc

    no ca Menu.

    I.4. Cch to Menu Menu cng l mt loi iu khin, nhng Windows s kim sot vic v menu. Lp trnh vin ch qun l vic iu hnh cc s kin m thi.

    Trang 61

  • Visual Basic

    Hnh VI.1 Trnh son tho Menu Menu khng cha trong hp cng c m c thit k t trnh son tho menu. Trong Visual Basic 6.0 IDE, chn Tools, ri Menu Editor m chng trnh ny. V d: To mt Drop-Down Menu. - To mt n mi. - n Ctrl-E m Menu Editor - Ta s to mt Menu File vi Menu con l Open v Save As. - Trc tin ta nhp vo &File trong Caption v nhp mt tn bt k vo Name (chng hn l mfile). K t & trc ch F cho bit ch F s l phm tt (n Ctrl-F) coi nh chn menu File. - Tip theo ta nhp &Open v &Save As. Open v Save As l Sub menu ca File, ta chn Open ri n mi tn sang tri. Tng t i vi Save As.

    Hnh VI.2 V d to Popup Menu

    Trang 62

  • Visual Basic

    Tch nhm menu:

    Trong trng hp Menu c nhiu mc, ta s tch nhm Menu tin theo di. Chng hn ta thm vo Menu File mc Exit v tch ring ra vi Open v Save As. Ta s xen vo gia hai mc Save As v Exit mt mc mi c Caption l -. Ta c th theo di qua hnh VI.3. Hnh VI.3 V d tch nhm cc V d: To Pop-up menu - S dng li menu dng v d trc, nhng ta s tt thuc tnh Visible ca menu File. - Sau , m ca s Code ca ng dng, dng s kin MousUp, nhp vo on lnh sau:

    Private Sub Form_MouseUp (Button As Integer, Shift As _ Integer, X As Single, Y As Single)

    If Button = vbRightButton Then PopupMenu mfile, vbPopupMenuLeftAlign End If End Sub - Chy th ng dng, khi ta n chut phi, mt menu s bt ra. - Lnh PopupMenu cho bit tn menu cn bt ra, l tn m ta t trong trnh son tho MenuEditor, y l mfile. - K n, l tham s xc nh cch hin th menu: vbPopupMenuLeftAlign, vbPopupMenuRightAlign, vbPopupMenuCenterAlign. Sau khi thit k xong menu, ta s vit cc on m VB s thi hnh mt cng vic no tng ng vi mc c chn. Cng vic thi hnh s c vit bn trong s kin Click ca mc .

    Trang 63

  • Visual Basic

    II. Hp thoi II.1. Khi nim

    Hp thoi (Dialog Box) l mt trong nhng cch VB dng giao tip vi ngi dng. C 4 loi hp thoi: - Hp thng ip (Message Box). - Hp nhp (Input Box). - Cc hp thoi thng dng (Common Dialog) - Hp thoi hiu chnh (Custom Dialog).

    II.2. Hp thng ip Hp thng ip cng c 2 loi: Loi ch xut thng bo, loi c tng tc vi ngi dng.

    II.2.1 Loi ch xut thng bo - Lc ny ta dng MsgBox nh l mt th tc. - C php: MsgBox Prompt, Button, Title. Trong : Prompt: Chui thng bo s hin th. Button: Cc nt nhn s c hin th trn hp thng bo. Title: Chui hin th trn thanh tiu ca hp thng bo.

    - V d: Hnh VI 4 Hp thng ip Chng hn ta xy dng mt biu mu dng hin th tn v im trung bnh cui nm ca mt hc sinh khi lp 12. Do gi tr im trung bnh cng nh h tn hc sinh l khng th thay i. Do khi ngi dng Click vo mt Text no , ta s xut thng bo rng gi tr ny khng th thay i.

    Trang 64

  • Visual Basic Private Sub Text2_Click()

    MsgBox "Vous ne pouvez pas changer la value de ce champ!" End Sub

    Sau khi xut thng bo, VB s i ta n vo nt OK hoc Enter. Sau VB s thi hnh dng lnh ngay sau dng lnh MsgBox. i khi dng thng bo qu di, VB s t ng ct a xung dng khc, tuy nhin c khi s khng nh mong mun ca lp trnh vin. Ta c th thc hin cng vic ny nh sau: MsgBox This is a multi-line & chr$(10) & message Ty theo thng s truyn vo MsgBox m c nhiu loi hp thoi thng ip khc nhau.

    Hng s Gi tr Din gii

    vbOKOnly 0 Ch hin th nt OK . vbOKCancel 1 Hin th 2 nt OK v Cancel. vbAbortRetryIgnore 2 Hin th cc nt Abort, Retry, v Ignore. vbYesNoCancel 3 Hin th cc nt Yes, No, v Cancel. vbYesNo 4 Hin th 2 nt Yes v No. vbRetryCancel 5 Hin th 2 nt Retry v Cancel.

    Cc loi biu tng trn hp cng c

    Hng s Din gii

    vbCritical Dng cho nhng thng bo li tht bi khi thi hnh cng vic no .

    vbQuestion Dng cho nhng cu hi yu cu ngi dng chn la. vbExclamation Dng cho cc thng bo ca chng trnh.

    vbInformation Dng cho cc thng bo cung cp thm thng tin.

    II.2.2 Loi tng tc vi ngi dng Lc ny MsgBox c dng nh mt hm, khi mt nt no trn hp thng bo c n, VB s tr v gi tr ca nt n . C php:

    MsgBox (Prompt, Button, Title) As Integer Hng s Gi tr Nt

    vbOK 1 OK vbCancel 2 Cancel vbAbort 3 Abort vbRetry 4 Retry vbIgnore 5 Ignore vbYes 6 Yes

    Trang 65

  • Visual Basic

    vbNo 7 No

    Vi nhng thng ip quan trng, ta mong mun ngi dng phi chn la mt trong cc xut m ta a ra trc khi chuyn qua ng dng khc, ta s dng thng s vbSystemModal.

    Trang 66

  • Visual Basic

    II.3. Hp nhp y l loi hp thng ip cho php nhn thng tin t pha ngi s dng. Tuy nhin trong cc ng dng, hp nhp rt t khi c dng do: - Ta khng c cch no kim tra thng tin do ngi dng nhp vo khi m Enter cha c n. - Thng tin c nhp l rt t. Sau y l mt v d v hp nhp: Public Sub Main () Dim ReturnString As String ReturnString = InputBox(Nhap vao ten cua ban) End Sub

    Gi tr tr v ca hp nhp l mt chui. Hnh VI 5 Hp nhp tn

    II.4. Cc hp thoi thng dng C 6 loi hp thoi thng dng: - M tp tin - Lu tp tin - Chn mu - Chn Font - In n - Tr gip Tuy c 6 loi, nhng khi thit k biu mu, ta ch thy mt cng c duy nht

    l CommonDialog. Mun a Common Dialog vo d n, ta chn: Project/Components/Controls/Microsoft Common Dialog Control 6.0. Sau , Common Dialog s xut hin trong hp cng c ToolBox.

    II.4.1 Hp thoi m v lu tp tin Hai hp thoi ny c chc nng v th hin nh nhau. C hai hp thoi u

    hin th danh sch cc tp tin, ngi dng c th duyt qua cc a tm cc tp tin. Chng ch khc nhau phn tiu v nt nhn.

    Cc thuc tnh quan trng: o Name: tn ca Common Dialog. o Filter: y l mt chui xc nh phn m rng ca tn cc tp tin m hp thoi c th m hay lu.

    Trang 67

  • Visual Basic

    o FilterIndex: nu c nhiu phn m rng ca tn tp tin c m t trong thuc tnh Filter th thuc tnh ny xc nh mc nh loi tp tin no c chn (l mt s nguyn). o FileName: tr v tn tp tin sau khi ngi s dng hp thoi chn mt tp tin no . o CancelError: nu TRUE th tr v gi tr li khi ngi dng chn nt Cancel, mc nhin gi tr ny l False. Phng thc: o ShowOpen: m ra hp thoi m tp tin. o ShowSave: m ra hp thoi lu tp tin. V d:

    Private Sub Form_Load() On Error GoTo ErrHandler dlgFile.Filter = "All Files (*.*)|*.*|Text Files & _

    (*.txt)|*.txt|Batch Files (*.bat)|*.bat" dlgFile.FilterIndex = 2 dlgFile.ShowOpen Exit Sub ErrHandler:

    MsgBox Err.Description End Sub v d trn, ta thit k mt hp thoi m tp tin, trong cc tp tin c hin

    th theo 3 nhm tp tin l: - All Files: (*.*) - Text Files: (*.txt) - Batch Files: (*.bat) Cc nhm tp tin c th hin trong thuc tnh Filter. Mi nhm tp tin cch

    nhau bi du phn cch |. Thuc tnh FilterIndex = 2 tc l khi hp thoi Open c m ln, th loi tp

    tin hin th mc nh l Text Files. Sau khi chn mt tp tin v nhn nt Open, ta s dng thuc tnh FileName

    nhn v tn tp tin chn. Khi ta chn thuc tnh CancelError l TRUE, th khi ngi dng n nt Cancel

    trn hp thoi, ta s nhn c mt li v s c cch x l li ny. Ta chn phng thc ShowOpen hin th hp thoi m tp tin.

    Trang 68

  • Visual Basic

    Hnh VI.6 Hp thoi m tp tin Cc thuc tnh cng tng t i vi hp thoi lu tp tin, ta ch cn thay

    i tiu ca Dialog v dng phng thc ShowSave. Di y l minh ha cho hp thoi lu tp tin.

    Hnh VI.7 Hp thoi lu tp tin

    Trang 69

  • Visual Basic

    II.4.2 Hp thoi chn mu y l hp thoi cho php ngi dng chn v hin th cc mu c sn trong

    bng mu ca Windows cng nh thit lp thm nhiu mu mi. Mt thuc tnh quan trng i vi hp thoi chn mu l thuc tnh Color, thuc tnh ny tr v gi tr ca mu c chn. Ta s dng phng thc ShowColor hin th hp thoi chn mu.

    Hnh VI.8 Hp thoi chn mu

    Trong mt s ng dng, ta s dng hp thoi chn mu thay i gi tr mu ca cc iu khin trong mt s trng hp no . V d thay i mu nn ca iu khin TextBox trong v d di y:

    Trang 70

  • Visual Basic

    Hnh VI.9 V d s dng hp thoi chn mu Ta s thit k mt nt nhn nh bn cnh iu khin TextBox, nt nhn ny cho

    php ngi s dng chn mu nn ca TextBox. Ta c on m lnh sau: Private Sub Command2_Click()

    On Error GoTo ErrHandler CommonDialog1.ShowColor Text1.BackColor = CommonDialog1.Color ErrHandler:

    CommonDialog1.ShowColor End Sub

    Trc khi chy chng trnh cn xc nh thuc tnh CancelError = TRUE.

    II.4.3 Hp thoi chn Font ch Cho php ngi dng chn Font mn hnh, my in hay c hai. Khi dng hp

    thoi chn Font ta phi dng thuc tnh Flags quy nh loi Font no s c hin th.

    Hnh VI.10 Hp thoi Font

    Thuc tnh Gii thch Color Lu gi gi tr ca mu c chn FontBold TRUE nu ngi dng chn ch m (Bold) v FALSE nu

    Trang 71

  • Visual Basic

    ngc li. FontItalic TRUE nu ngi dng chn ch nghing (Italic) v FALSE

    nu ngc li. FontStrikeThru TRUE nu chn ch gch ngang cc k t. FontUnderLine TRUE nu chn ch gch di FontName Ty Max Kch c ln nht ca Font c hin th Min Kch c nh nht ca font c hin th FontSize Kch c ca Font c chn

    Cc gi tr ca thuc tnh Flags:

    Hng Gi tr Hiu qu cdlCFPrinterFonts &H2 Ch hin th font my in cdlCFScreenFonts &H1 Ch hin th font mn hnh cdlCFBoth &H3 Ch hin th font mn hnh v font my in cdlCFScalableOnly &H20000 Hin th font t l nh l fonts TrueType

    Nu mun chn mu cho Font, ta thm 256 vo gi tr ca thuc tnh Flags. Nu

    khng c iu ny, ta ch thy tn Font, kiu Font v kch c Font m thi. m hp thoi chn Font, ta s dng phng thc ShowFont.

    II.4.4 Hp thoi in n y l hp thoi cho php xc lp cc thng tin v my in chng hn nh

    bao nhiu d liu c in, my in s hot ng nh th no Hp thoi in n, n tr v 3 thuc tnh thng dng: Copies, FromPage v

    ToPage.

    Hnh VI.11 Hp thoi in n

    Thuc tnh Gii thch Copies S bn in FromPage S th t ca trang bt u Max S bn in ti a cho php

    Trang 72

  • Visual Basic

    Min S bn in ti thiu cho php PrinterDefault Nu gn thnh TRUE, mi thay i m ngi dng thc hin s

    c ghi li thnh cc thay i trn h thng v c nh hng n cc ng dng khc nu c s dng my in.

    ToPage S th t ca trang in cui cng

    m hp thoi in n, ta s dng phng thc ShowPrinter.

    III. X l cc s kin chut v bn phm III.1 S kin chut

    Biu mu hoc iu khin c th nhn bit s kin chut khi c con tr chut i ngang qua.

    C 3 s kin chut ch yu, l

    S kin Gii thch MouseDown Xy ra khi ngi s dng n chut (chut tri hoc phi) MouseUp Xy ra khi ngi s dng th mt nt chut bt k MouseMove Xy ra khi con tr chut di chuyn n mt im mi trn mn hnh.

    Cc tham s

    Tham s Gii thch Button Cho bit phm chut no c n Shift Cho bit SHIFT hay CTRL hay ALT c n X, Y Xc nh v tr ca con tr chut i vi h ta ca iu khin

    V d 1: S dng s kin MouseDown v cc on thng ni tip nhau mi khi ta dng chut chm mt im trn biu mu. Ta c th thc hin iu vi on m lnh x l s kin Form_MouseDown nh sau:

    Private Sub Form_MouseDown(Button As Integer, & _

    Shift As Integer, X As Single, Y As Single) Line -(X, Y)

    End Sub

    Trang 73

  • Visual Basic

    V d 2: S dng s kin MouseUp hin th mt thng ip cho bit nt

    chut no va c th. S kin Form_MouseUp c x l:

    Private Sub Form_MouseUp (Button As Integer, & _ Shift As Integer, X As Single, Y As Single)

    If Button = 1 Then Print Ban vua tha phim chuot trai

    End If If Button = 2 Then

    Print Ban vua tha phim chuot phai End If

    If Button = 4 Then Print Ban vua tha phim chuot giua

    End If End Sub

    V d 3: S dng s kin MouseMove v cc ng trn lin tc trn biu mu. S kin Form_MouseMove c x l: Private Sub Form_MouseMove(Button As Integer, & _

    Shift As Integer, X As Single, Y As Single) Circle (X, Y), 50

    End Sub

    Trang 74

  • Visual Basic

    Hnh VI.13 V d v MouseMove

    Vi v d 3 ta nhn thy rng: s kin MouseMove khng nht thit phi xy ra ng vi mi Pixel khi con tr chut i qua. Thc ra mi n v thi gian no , h iu hnh pht ra mt s thng ip. y, ta v ng trn ng vi s kin MouseMove, nu ngi dng di chuyn chut chm, th cc ng trn s c v st nhau v ngc li nu chut c di chuyn nhanh. Hiu chnh con tr chut

    Ta c th dng thuc tnh MousePointer hin th mt biu tng, con tr mn hnh hay con tr chut c hiu chnh. Di y l cc gi tr ca thuc tnh MousePointer:

    Hng Gi tr Din gii

    ccDefault 0 (Default) Shape determined by the object.

    ccArrow 1 Arrow.

    ccCross 2 Cross (cross-hair pointer).

    ccIbeam 3 I Beam.

    ccIcon 4 Icon (small square within a square).

    ccSize 5 Size (four-pointed arrow pointing north, south, east, and west).

    ccSizeNESW 6 Size NE SW (double arrow pointing northeast and southwest).

    ccSizeNS 7 Size N S (double arrow pointing north and south).

    ccSizeNWSE 8 Size NW, SE.

    ccSizeEW 9 Size E W (double arrow pointing east and west).

    ccUpArrow 10 Up Arrow.

    ccHourglass 11 Hourglass (wait).

    ccNoDrop 12 No Drop.

    ccArrowHourglass 13 Arrow and hourglass.

    ccArrowQuestion 14 Arrow and question mark.

    ccSizeAll 15 Size all.

    Trang 75

  • Visual Basic

    ccCustom 99 Custom icon specified by the MouseIcon property.

    III.2 S kin bn phm Bn phm cng c 3 s kin, l s kin KeyPress (khi mt phm c m ASCII bt k c n), KeyDown (khi mt phm bt k c n), KeyUp (khi mt phm bt k c th) Ch c iu khin ang c Focus mi bt s kin bn phm. Cn i vi biu mu, n ch bt c s kin bn phm mi khi n c kch hot v khng c bt k iu khin no trn n c Focus. Tuy nhin ta c kh khc phc iu ny nu nh gn gi tr thuc tnh KeyPreview ca biu mu l True, biu mu s nhn mi s kin bn phm ca mi iu khin t trn n, iu ny hu ch khi ta mun thc hin cng mt cng vic no cho mt phm c n m khng quan tm rng Focus ang thuc iu khin no. Cc s kin KeyDown, KeyUp c th pht hin mt s tnh hung m s kin KeyPress khng pht hin:

    - Khi ngi dng bm mt t hp phm SHIFT, CTRL v ALT. - Phm nh hng. - PAGEUP v PAGEDOWN. - Phn bit c phm s bn phi bn phm v phm s bn tri bn phm. - p ng khi th phm. - Phm chc nng khng trng vi menu. Cc s kin bn phm l khng loi tr nhau. Tc l mt phm c n th c

    th l c hai s kin KeyPress v KeyDown cng c pht ra. Nhng nu l mt phm m KeyPress khng pht hin c th ch c KeyDown v KeyUp xy ra. Thuc tnh KeyPreview

    i khi ta mun tt c cc iu khin trn Form nhn c s kin KeyPress ch khng phi ch c iu khin ang nhn con tr (Focus), ta s phi s dng thuc tnh KeyPreview.

    Khi chng ta thit k mt Form, gi tr mc nh ca thuc tnh ny s l False, khi bt k mt s kin bn phm no cng u c gi n iu khin ang gi quyn iu khin. Tuy nhin nu gi tr ca thuc tnh l True th Form s l ni nhn mi s kin bn phm.

    Sau y l v d v iu ny: Private Sub Form_KeyPress (KeyAscii As Integer) ' Gi iu khin n textbox u tin txtForward.SetFocus txtBackward.Text = Chr(KeyAscii) & txtBackward.Text xtAscii.Text = txtAscii.Text & CStr(KeyAscii) & ", t End Sub

    Trang 76

  • Visual Basic

    Hnh VI.15 Cc s kin bn phm Trong v d trn, nu nh gi tr ca thuc tnh KeyPreview l False th cc TextBox Backward v Ascii khng th nhn c gi tr.

    IV. X l ha v giao din IV.1 Hin th hnh nh

    Bi v h iu hnh Windows l h iu hnh s dng giao din ha, do mt phn quan trng trong ng dng ca ta l cch thc hin th hnh nh trong ng dng ca mnh. VB cung cp cho chng ta 4 loi iu khin hin th v qun l hnh nh: Picture Box, Image, Shape v Line.

    IV.1.1 S dng Picture Box Cch dng chnh ca iu khin Picture Box l hin th hnh nh. Hnh nh

    mc nh m Picture Box hin th c tn c xc nh bi thuc tnh Picture (c th bao gm c ng dn).

    Ta cng cn ch mt iu l i tng Form cng c th hin th mt hnh nh xem nh l nh nn thng qua thuc tnh Picture.

    Thuc tnh AutoSize ca iu khin Picture Box quy nh kch thc ca iu khin c th thay i mt cch t ng hay khng? Nu gi tr ca thuc tnh ny l True, th kch thc ca iu khin s thay i theo kch thc ca hnh nh m n cha. Tuy nhin s thay i ny c th lm ng dng ca chng ta tr nn xu i do s thay i kch thc ca iu khin Picture Box s khng quan tm n cc v tr ca cc iu khin khc cng c trn biu mu. Tt hn ht l chng ta nn th qua tt c cc hnh nh c th hin th ti thi im thit k quy nh kch thc ca iu khin cho hp l.

    Trang 77

  • Visual Basic

    Hn th na, c th thay i hnh nh hin th bn trong Picture Box bng cch s dng phng thc LoadPicture thay i gi tr ca thuc tnh Picture.

    Ngoi ra ta c th dng Picture Box nh mt vt cha cc iu khin khc. Cng nh iu khin Frame, ta c th t cc iu khin khc bn trong Picture Box. Ta thng s dng Picture box cha cc iu khin Label hin th cc thng tin v trng thi ca ng dng.

    Mt cch dng khc ca Picture box l xem nh mt khung v trng v ta dng cc phng thc Circle, Line, PSet hay Point v ln trn iu khin ny.

    IV.1.2 S dng Image Control Image control cng nh iu khin Picture Box nhng ch dng hin th

    hnh nh. N khng th dng lm vt cha v cng khng c mt s thuc tnh nh iu khin Picture Box.

    Cc phng thc dng hin th, thay i hnh nh cng nh iu khin Picture Box, tuy nhin thuc tnh quy nh vic kch thc thay i mt cch t ng l thuc tnh Stretch.

    Mt trong nhng ng dng ch yu ca iu khin Image Co