You are on page 1of 8

Chng Hai- Vit chng trnh u tin

Bn ang lm quen vi mi trng trin khai lp trnh (Integrated Development Environment - IDE) ca MS VB6 v rt nng rut mun vit nhng dng m u tin cho mng th gii. Ta th n li mt s vn m c l bn bit ri. Mt chng trnh Visual Basic gm c phn m lp trnh v cc hnh nh (visual components). Bn c th thit k phn hnh nh bng cch dng nhng ngh (Controls hay Objects) t Ti ngh (Toolbox) nm bn tri. Nu bn khng thy ci Ti ngh th dng mnh lnh Menu View|Toolbox bt n hin ra. Khi bn bt u thit k mt chng trnh bng cch chn Standard EXE, mi trng trin khai lp trnh (IDE) cho bn sn mt Form tn l Form1. Bn c th i tn (Name) n trong ci ca s Propeties nm pha di bn phi (trong hnh di y ta edit Name property ca Form1 thnh ra frmMainForm). Bn cng c th sa ta (Title) ca form ra ci g c ngha hn bng cch i Caption ca form cng trong ca s Propeties (trong hnh di y ta edit Caption property ca form thnh ra "Chi tiet cua ban toi").

Sp t cc vt dng ln Form
Mun t mt Control ln Form, click hnh ci Control trong Toolbox ri Drag (bm nt tri ca con chut ri ko cho thnh hnh ch nht trc khi bung nt tri ra) con chut trn Form v thnh c ca Control. Nhng Controls bn s dng thng nht t Toolbox l Label (nhn), Textbox (hp nh ch vo) v CommandButton (nt bm mnh lnh).

Trong hnh trn ta c ba Label v ba Textbox. Mun sa ch Label1 ra "Ten" th edit Property Caption. Cn Textbox khng dng Property Caption m dng Property Text. Ta cng c th thay i cc Property Caption v Text trong khi chy chng trnh (at run-time). Trong lc thit k (design time) bn c th sa i kiu ch ca nhng Controls bng cch edit Property Font ca chng trong ca s
1

Properties (click bn phi ca Property Font trong Properties Window, IDE s pop-up ci Font dialog bn la chn nhng c tnh ca Font nh trong hnh di y).

Nu bn thy bc mnh ti sao ci c ch t c (default size) ca cc Control hi nh, bn c th gii quyt bng cch sa c ch ca chnh Form cho n ln hn. V khi mt Control c t ln mt Form, n tha k c ch ca Form. sp xp cho mt s Control thng hng vi nhau bn chn c nhm ri dng mnh lnh Menu Format|Align|Lefts .v.v..Nu bn cha bit cch chn mt nhm Control th c hai cch. Cch th nht bn nt Shift trong khi click cc Control bn mun chn. Ci Control m bn chn sau cng s l ci chun cc Control khc s lm ging theo. Cch th hai l Drag cho si dy thun (rubber band) bc chung quanh cc Control. Trong trng hp cc Control ny nm trong mt container, th d nh mt khung (Frame) hay PictureBox, th bn phi click Form trc, ri nt Ctrl trong khi Drag rubber band bao cc Control.

Cha mi th ca mt d n VB
Ti y bn thy trong ca s bn phi, pha trn, gi l Project Explorer, c hnh ging nh mt ci cy (tree) cho thy ta c mt Form trong mt Project (d n). Project l mt cch tin dng ta sp xp nhng g cn thit cho mt d n. Thng th mt d n c nhiu Form v c th cn nhng th khc. Mi Form s c cha vo a di dng "frmMainForm.frm". Bn save mt form bng menu command File | Save formfilename.frm. Nu trong Form1 c cha hnh nh (th d bn dng Properties Window chn mt icon hnh gng mt ci lm icon cho frmMainForm) th cc hnh nh ca frmMainForm s uc t ng cha trong h s "frmMainForm.frx". Lu l khng nht thit tn ca h s (file) m bn phi cho bit khi cha (save) phi ging nh tn ca Form m bn dng trong chng trnh. Tuy nhin bn nn dng cng mt tn cho c hai sau ny d tm h s nu c tht lc. Theo qui c thng thng, cc Form c t tn bt u bng "frm", th d nh "frmMainForm". Khi bn save mt Project th c ngha l save tt c h s dng cho d n, k c cc Form v mt h s cho chnh Project, th d nh "MyFirstProg.vbp" ("vbp" l vit tt ch Visual Basic Project). Bn save Vb6 project bng menu command File | Save Project. , mun i tn Project, bn click ln hng trn cng bn phi trong ca s Project Explorer (Project1 (Project1.vbp)), ri edit tn ca Project trong ca s Properties pha di. Bn nn cha tt c nhng h s dng cho cng mt Project trong cng mt tp (Folder/Directory). Bn c th dng Notepad m ra xem chi, coi trong "frmMainForm.frm" c g. Bn s thy trong y gm c hai phn: phn u l din t cc Control nm trong Form, phn cn li l m lp trnh m bn
2

vit. Bn cng s ch l cc properties m bn sa cho cc Control u c ghi li trong phn u ni trn. VB da vo phn din t cc Control thit lp li (reconstruct) hnh nh ca Form.

Sau ny, khi lo luyn VB, bn c th dng mt chng trnh t ng ch (generate) ra nhng hng din t cc Control cho mt Form. l k thut dng trong cc Wizards ca VB ch mt s chng trnh khi u cho chng ta t cc bng km (Template).

Thm m lp trnh x l mt s c
Hu ht lp trnh trong Visual Basic l vit m x l cc s c (Event). Th d mun chm dt chng trnh, ngi s dng s click nt "Xuat". thc hin iu ny trong khi trin khai chng trnh bn doubleClick (click lin tip 2 ln) nt "Xuat". VB IDE s vit sn cho bn ci v ca mt Subroutine:
Private Sub cmdXuat_Click() End ' Bn ch vit thm dng ny kt thc chng trnh End Sub

l tn (Name) ca nt Xuat l "cmdXuat" ("cmd" l vit tt ch CommandButton), VB gn thm du gch di v Event Click lm thnh tn cmdXuat_Click ca Sub, chng trnh nh s c x l khi ngi s dng click nt Xuat. Chng trnh nh hay Subroutine ny cn c gi l Event Handler cho Event Click. Hng ch xanh l cy l dng gii thch cho lp trnh vin (gi l
3

Comment), VB s hon ton khng ch n n khi x l Sub cmdXuat_Click. Comment c ngha l ch thch. Trong VB ch thch bt u bng du single quote '. Khi VB thy du ny l n b qua nhng g cn li trn dng m. L Lp trnh vin chuyn nghip bn nn tp thi quen dng Comment mi ni gip ngi khc v chnh bn hiu chng trnh ca mnh. Nn nh l tin ph tn bo tr mt chng trnh th t nht l tng ng vi s tin b ra ln u trin khai. Bo tr c ngha l thm ving li chng trnh sa li (fix bug) v thm cc c im cho hay hn (enhancement). Ni chung h bn lm iu g b him hay cc c th lm n gii thch r rng. Nu mun ct mt dng m VB ra lm hai dng th chm dt dng th nht bng du gch di _. Tip theo, bn doubleClick nt "Viet vao dia" v vit nhng hng m sau:
Private Sub cmdViet_Click() Open "myFriends.txt" For Output As #2 ' M mt h s vit ra v gi l cng s 2 ' Vit vo cng s 2: Tn, a ch v Tui, ngn cch nhau bng du chm phy Print #2, txtTen & ";" & txtDiachi & ";" & txtTuoi Close #2 ' ng cng s 2 End Sub

Trong Sub cmdViet_Click, trc ht ta m mt h s tn l "myFriends.txt" v gi n l cng s 2. Sau khi m h s vit ra ta rp Tn, a ch v Tui li, ngn cch bng du chm phy (;) nh du nh sau ny ta mun g ring ba th ra tr li. Du "&" l operator rp (concatenate) hai dng ch (text string) li vi nhau. Print #2 c ngha l vit ra cng s 2, tc l h s "myFriends.txt". Th chng ta vit ra cng 2 l Tn, a ch v Tui (txtTen & ";" & txtDiachi & ";" & txtTuoi).

Nhng rc ri ca vic m mt h s
Ci cng s 2 trn l ta t chn (arbitrary). Tht ra mun gi cng s my cng c, min l cha c phn no khc trong cng chng trnh ny ang dng cng s y. y l mt cch VB lm vic cho tin thay v gi nguyn mt ci tn h s di. Nu mun chc chn khng trng s cng vi ch no khc, ta c th lm nh sau:
fileNo = freefile

Ri thay th s 2 bng ch fileNo trong Sub cmdViet_Click. freeFile l mt Function (chng trnh nh dng tnh ra mt th g) nh VB cp pht cho mt con s i din h s cha ai dng. Ch Output trong cu ( Open "myFriends.txt" For Output As #2 ) dng y ni t CPU (Central Processing Unit) ta mun "vit ra" mt h s. Khi m mt h s vit ra kiu ny th nu h s cha c n s c dng nn (created). Nu h s c ri th n s b xo b (delete) v ng thi mt h s trng v mi s c dng nn. ng t chuyn mn l "vit chng ln" (overwrite). Nu ta m mt h s "c vo" th dng ch "Input" thay v "Output". Cn nu "vit thm" vo mt h s c sn (ch khng overwrite h s y) th dng ch "Append" thay v "Output". Trong trng hp y bn phi kim xem h s "myFriends.txt" c sn cha. Bn c th vit nh sau:
If Dir("myFriends.txt") <> "" then ' Nu h s "myFriends.txt" hin hu Open "myFriends.txt" For Append As #2 ' M mt h s vit thm v gi l cng s 2 Else Open "myFriends.txt" For Output As #2 ' M mt h s vit ra v gi l cng s 2 End If

Function Dir("myFriends.txt") dng trn s cho ta tn ca h s nu h s hin hu, ngc li n s cho mt dng ch trng (empty string), biu hiu l "". Ti y, nu lanh bn s hi h s "myFriends.txt" nm folder no. Cu tr li l khng bit chc. Nu bn cha cha (save) chng trnh vo da (v mi vit) th n nm folder ca VB6.EXE. Cn nh cha chng
4

trnh ri th c l n nm folder ca chng trnh bn. Mun h s "myFriends.txt" lun lun i cng vi chng trnh, bn c th lm nh sau:
MyLocalFolder = App.path ' Ly folder ca chng trnh x l ca bn If Right(MyLocalFolder,1) <> "\" then ' Nu ch cui cng khng phi l backslash MyLocalFolder = MyLocalFolder & "\" ' th gn thm mt backslash cui End If ' M mt h s vi tn c folder (full pathname) vit ra v gi l cng s 2 Open MyLocalFolder & "myFriends.txt" For Output As #2

Cui cng ta ng h s li bng cu Close #2.. T ry VB c th cp s 2 lm cng cho ch khc trong chng trnh.

Default Property ca mt Control


"txtTen" c dng y l vit tt cho "txtTen.text", v Default Property ca mt TextBox l text ca n. Default Property ca mt Control l Property c VB dng khi bn ch cho tn ca Control m thi. Trong khi Default Property ca Label l Caption. V txtTen c dng nh txtTen.txt ni n mt dng ch, nn trong chng trnh ta nhc n n y nh mt variable (m s) dng cho mt string. Do vi qui c dng ba ch u "txt" cho tn ca mt Textbox gip ta nhn din ngay n khng phi l mt string variable bnh thng. Hy lu s khc bit khi gi mt Sub trong hai trng hp sau:
Call CheckmyTextbox (txtDiachi) ' txtDiachi c xem l Textbox trn vn CheckmyTextbox txtDiachi ' txtDiachi c xem l txtDiachi.text, mt dng ch

Th t cc Control trn mt Form


Trong chng trnh ny ta mun ngi x dng cho vo d kin theo th t "Tn, a ch, Tui". Khi mi vo, ta mun ci du chp tt (cursor ) nm trong txtTen ngay ngi x dng khi mt cng click vo Textbox y khi mun mang cursor tr li . Ta ni l txtTen c ci Focus. Sau khi ngi x dng cho tn vo ri, c s nh nt Tab di chuyn cursor qua Control tip theo, m ta mun l txtDiachi. sp th t cc Control cho s di chuyn ca cursor khi ngi x dng nh nt Tab ta edit Property TabIndex ca cc Control. TabIndex bt u bng s 0. Nhiu khi ngi x dng thch dng nt Enter thay v Tab di chuyn Cursor qua Control tip theo, bn c th lm nh sau cho Textbox txtTen:
Private Sub txtTen_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then ' Nu nt bm l Enter SendKeys "{TAB}" ' gi mo gi nt Tab KeyAscii = 0 ' Nut trng nt Enter Windows khng cn lo cho n End If End Sub

Cho cc Textbox khc nh txtDiachi, txtTuoi bn cng lm tng t nh vy. Khi bn doubleClick txtTen ln u vit m, VB cho bn Private Sub txtTen_Change(). Bn phi click ci Combobox bn phi, pha trn ca Code Window, cho n m ra v chn Event KeyPress.

Nu bn mun chng trnh mnh cn chuyn nghip hn, bn cho php ngi x dng bm nt Alt+o (bm nt Alt xung trong khi bm nt o) mang Cursor v txtTuoi hay Alt+d mang Cursor v txtDiachi. Mun th bn phi thm vo du "&" pha trc cc ch T, D v o trong Caption ca cc label lblTen, lblDiachi v lblTuoi. K bn phi cho gi tr TabIndex ca lblTen, txtTen, lblDiachi, txtDiachi, lblTuoi, txtTuoi lin tip l 0,1,2,3,4,5. Khi ngi x dng nh Alt+o, VB s mang Cursor v nhn lblTuoi, nhng v khng c ch cho n p trong label nn n phi p vo Control k , tc l txtTuoi. Khi ta cho TabIndex ca cc Control nhng gi tr k trn th khi Form hin ra Cursor s nm trong TextBox txtTen v mc du lblTen c TabIndex nh nht(0), n khng phi l ch Cursor p ln c, nn Cursor phi p ln textbox c TabIndex value k , tc l 1. Nu bn khng mun Cursor ngng li mt TextBox no th edit Property TabStop ca TextBox cho bng False. Trong trng hp y ngi s dng vn c th click vo TextBox v sa dng ch c nh thng. Nu bn tht s khng mun cho php ngi s dng sa g TextBox th edit Property Enabled bng False hay Property Locked bng True. Khi Enabled ca mt TextBox bng False th TextBox tr nn m i. Nhn tin ta edit thm du "&" pha trc cc ch X v V trong Caption cc CommandButton "Xuat" v "Viet vao dia". Sau ny ngi s dng c th bm Alt-X coi nh tng ng vi click nt "Xuat". Nu nh trong Form bn c nhiu Textbox qu, i nt Enter ra nt Tab cho tng Textbox mt th mt cng qu. Bn c th lm mt ci chung cho c Form. Tc l ni rng bn khng cn bit nt Enter va mi c nh TextBox no, bn c nhm mt i n ra nt Tab. Trc ht bn phi chn (select) Form ri edit Property KeyPreview ca n thnh True. Bn lm vic ny dn Form git ci nt ngi s dng nh (keystroke) trc khi TextBox thy. Form s tro nt Enter thnh Tab ri lng lng trao cho TextBox. Bn c th thay th tt c cc KeyPress event handler ca cc TextBox bng on m nh sau:
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then ' Nu nt bm l Enter SendKeys "{TAB}" ' gi mo gi nt Tab KeyAscii = 0 ' Nut trng nt Enter Windows khng cn lo cho n End If End Sub

Khi bn doubleClick ln bt c ch no trn Form khng c Control nm, ln u vit m, VB cho bn Private Sub Form_Load(). Bn phi click ci Combobox bn phi, pha trn ca Code Window, cho n m ra v chn Event KeyPress.

em ra trnh lng
lm thnh mt h s p dng EXE, bn dng mnh lnh Menu File|Make MyFirstProg.exe. Cho thm cht hng v ca cuc i ti click Form ri edit Property Icon, chn cho n t folder: D:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Misc
6

mt icon hnh gng mt ci. Ri bm mnh lnh Menu File|Save Project. Khi dng Explorer xem cc h s ca MyFirstProg.vbp bn s thy nh di y:

ng l ti dng mt folder khc thay v VB98 cha d n MyFirstProg.vbp. H s MyFirstProg.vbw l Workspace (ch lm vic) dnh cho VB, ta khng nn ng ti. Bn c th lm mt Shortcut cho MyFirstProg.exe vi ci icon hnh gng mt ci t ln Desktop chy bn ngoi IDE ca VB. C l bn mun Download h s:MyFirstProg.zip, nn chung tt c cc h s ni trn trong d n MyFirstProg.vbp. By gi ngay trong VB IDE bn c th chy chng trnh bng cch dng mnh lnh Menu Run|Start hay bm F5.

Bn cng c th Click ln du tam gic ch v bn phi (nt Play ca cassette) nm trong toolbar ngay pha di VB menu.

Cch nn cc files trong mt folder thnh mt zip file duy nht


gi nhiu files bng cch nh km (attach) mt Email trn Internet ta cn phi nn cc files y thnh mt file duy nht, gi l Zip file. Trc ht, trong Window Explorer bn chn nhng files bn mun Zip chung li. Bn chn nhiu files bng cch nt Ctrl trong khi click ln tn tng file mt. Nu bn ln nt Shift, thay v nt Ctrl, th c mi lc bn click, Window Explorer s select c mt dc tn cc files nm gia tn hai files bn click mi nht. Ngoi ra bn cng c th dng Menu Command Edit | Select All, hay Ctrl+A select tt c cc files trong mt folder. y l trng hp bn s dng khi Zip tt cc cc files trong mt VB6 project gi qua Thy/C. Sau khi select cc file ri, bn right click ln cc file y context menu pop-up. Chn Add to Zip. Nu bn khng thy pop-up command Add to Zip th l bn cha install chng trnh Winzip. Trong trng hp y, download Winzip t Internet v install.

By gi bn th khi ng VB6, i do quanh n th bit cc phn ca VB6 IDE, v th lm theo nh bi ny. Nu c thc mc g th hi Tutor ca bn.

You might also like