1. Trang chủ
  2. » Công Nghệ Thông Tin

Tự học visual basic phần 1

88 158 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

T H C VISUAL BASIC 6.0 - PH N I M CL C Ch ng M t - Hoan nghênh đ n v i VB6 Ch ng Hai- Vi t ch Ch ng Ba – Form Controls thông th Ch ng B n - Vi t Code 43 Ch ng N m - Các lo i d ki n .55 Ch ng Sáu - Dùng d ki n .67 Ch ng B y - Dùng List Controls 78 ng trình đ u tiên 15 ng 27 T H C VISUAL BASIC 6.0 - PH N I Ch ng M t - Hoan nghênh đ n v i VB6 Chào m ng b n đ n v i Visual Basic Dùng VB6 cách nhanh t t nh t đ l p trình cho Microsoft Windows Cho dù b n chuyên nghi p hay m i m đ i v i ch ng trình Windows, VB6 s cung c p cho b n m t b công c hoàn ch nh đ đ n gi n hóa vi c tri n khai l p trình ng d ng cho MSWindows Visual Basic gì? Ph n "Visual" đ c p đ n ph ng pháp đ c s d ng đ t o giao di n đ h a ng i dùng (Graphical User Interface hay vi t t c GUI) Có s n nh ng b ph n hình nh, g i controls, b n tha h s p đ t v trí quy t đ nh đ c tính c a chúng m t khung hình, g i form N u b n t ng s d ng ch ng trình v ch ng h n nh Paint, b n có s n k n ng c n thi t đ t o m t GUI cho VB6 Ph n "Basic" đ c p đ n ngôn ng BASIC (Beginners All-Purpose Symbolic Instruction Code), m t ngôn ng l p trình đ n gi n, d h c, đ c ch cho khoa h c gia (nh ng ng i gi đ h c l p trình n toán) dùng Visual Basic đ c t MSBasic, Bill Gates vi t t th i dùng cho máy tính bits 8080 hay Z80 Hi n ch a đ n hàng tr m câu l nh (commands), hàm (functions) t khóa (keywords) R t nhi u commands, functions liên h tr c ti p đ n MSWindows GUI Nh ng ng i m i b t đ u có th vi t ch ng trình b ng cách h c ch m t vài commands, functions keywords Kh n ng c a ngôn ng cho phép nh ng ng i chuyên nghi p hoàn thành b t k u nh s d ng ngôn ng l p trình MSWindows khác Ng i mang l i ph n "Visual" cho VB ông Alan Cooper Ông gói môi tr ng ho t đ ng c a Basic m t ph m vi d hi u, d dùng, không c n ph i ý đ n s tinh x o c a MSWindows, nh ng v n dùng ch c n ng c a MSWindows m t cách hi u qu Do đó, nhi u ng i xem ông Alan Cooper cha già c a Visual Basic Visual Basic có hai d ng khác: Visual Basic for Application (VBA) VBScript VBA ngôn ng n m phía sau ch ng trình Word, Excel, MSAccess, MSProject, v.v g i Macros Dùng VBA T H C VISUAL BASIC 6.0 - PH N I MSOffice, ta có th làm t ng ch c n ng b ng cách t ch ng trình đ ng hóa VBScript đ c dùng cho Internet Operating System Dù cho m c đích c a b n t o m t ti n ích nh cho riêng b n, m t nhóm làm vi c c a b n, m t công ty l n, hay c n phân b ch ng trình ng d ng r ng rãi th gi i qua Internet, VB6 c ng s có công c l p trình mà b n c n thi t Các n b n Visual Basic Có ba n b n VB6: Learning, Professional Enterprise Chúng ta gát qua n b n Learning B n có th dùng n b n Professional hay Enterprise n b n Professional cung c p đ y đ nh ng b n c n đ h c tri n khai m t ch ng trình VB6, nh t control ActiveX, nh ng b ph n l p trình ti n ch r t h u d ng cho ch ng trình ng d ng (application programs) c a b n t ng lai Ngoài đ a compact cho VB6, tài li u đính kèm g m có sách Visual Studio Professional Features hai đ a CD Microsoft Developer Network (MSDN) n b n Enterprise n b n Professional c ng thêm công c Back Office ch ng h n nh SQL Server, Microsoft Transaction Server, Internet Information Server Cài đ t VB6 cài đ t VB6, máy tính c a b n c n ph i có m t đ a CD-ROM (CD drive) B n c n nh t 32 MB RAM, GB hard disk CPU Pentium II Khi b VB6 CD vào CD drive, s t kh i đ ng đ display menu cho b n ch n nh ng th c n Setup, click Install Visual Basic 6.0 đ cài VB6 Ngo i tr file h u hành (Operating System) th m c (folder) \Os, file đ a compact đ u không b nén Vì th , b n có th s d ng chúng tr c ti p t đ a Ví d , có nhi u công c thành ph n folder \Tools v n có th đ c cài đ t tr c ti p t CD-ROM Ngoài ra, b n có th ch y Setup c n thi t Ví d , b n có th ch y T H C VISUAL BASIC 6.0 - PH N I Setup đ cài đ t l i Visual Basic folder khác, ho c đ cài đ t thêm b t ph n c a VB6 N u lý h th ng không install đ a compact MSDN (b n s khám phá u n y th y Help m t lúc ch y VB6), b n có th cài đ t chúng tr c ti p t đ a s c a b MSDN b xung xóa thành ph n VB: B đ a compact vào CD drive N u menu không t đ ng hi n lên ch y ch ng trình Setup có s n tong folder g c đ a compact Ch n nút Custom h p tho i (dialog) Microsoft Visual Basic 6.0 Setup Ch n hay xóa thành ph n b ng cách check hay uncheck h p danh sách Options c a dialog Custom Th c hi n ch d n Setup hình Ghi chú: Trong lúc cài VB6, nh ch n Graphics n u không b n s thi u m t s hình nh nh icons, bitmaps v.v l Microsoft cho t đ ng cài đ t Graphics, t c Default (không có nói gì) cài đ t Graphics Integrated Development Environment (IDE) c a VB6 Khi kh i đ ng VB6 b n s th y m nhi u c a s (windows), scrollbars, v.v n m ch ng lên New Project dialog VB6 cho b n ch n m t nhi u lo i công trình T H C VISUAL BASIC 6.0 - PH N I Ch n Standard EXE M t lát sau nh s hi n giao di n c a môi tr ng phát tri n tích h p (Integrated Development Environment IDE ) gi ng nh d i đây: T H C VISUAL BASIC 6.0 - PH N I IDE c a VB6 bao g m y u t sau: Menu Bar Ch a đ y đ commands mà b n s d ng đ làm vi c v i VB6, k c menu đ truy c p ch c n ng đ c bi t dành cho vi c l p trình ch ng h n nh Project, Format, ho c Debug Trong Menu Add-Ins có Add-Ins Manager cho phép b n g n thêm nh ng menu nhi m ý đ ch y ch ng trình l i ích cho vi c l p trình Trong Add-Ins Manager dialog b n ch n m t Add-In r i check m t hay nhi u h p khung Load behavior: Toolbars (Debug, Edit, form Editor, Standard) Các toolbars có hình icons cho phép b n click đ th c hi n công vi c t ng đ ng v i dùng m t menu command, nh ng nhanh ti n h n B n dùng menu command View | Toolbars (click lên menu command View cho popupmenu hi n r i click command Toolbars) đ làm cho toolbars hi n hay bi n m t B n có th thay đ i v trí m t toolbar b ng cách n m vào hai g ch vertical n m bên trái toolbar r i d i toolbar ch khác (n m ngh a đ pointer c a mouse lên ch T H C VISUAL BASIC 6.0 - PH N I ch m đ hình phía d i r i b m xu ng gi nút bên trái c a mouse, kéo pointer n i khác) Ngoài b n c ng có th s a đ i toolbars theo ý thích b ng cách dùng Menu command View | Toolbars | Customize Toolbox ây h p đ ngh v i công c , g i controls, mà b n có th đ t lên form lúc thi t k (design) N u Toolbox bi n m t, b n có th display tr l i b ng cách dùng menu command View | Toolbox B n T H C VISUAL BASIC 6.0 - PH N I có th n toolbox display nhi u controls h n b ng cách ch n Components t context menu (ch n Toolbox r i b m nút ph i c a mouse đ display context menu) hay dùng menu command Project | Components Ngoài vi c trình bày Toolbox m c đ nh, b n có th t o cách trình bày khác b ng cách ch n Add Tab t context menu b sung control cho tab t k t qu Project Explorer S li t kê forms modules project hi n hành c a b n M t project s t p h p files mà b n s d ng đ t o m t trình ng d ng T c là, VB6, nói vi t m t program có ngh a tri n khai m t project Properties window Li t kê đ c tính c a forms ho c controls đ c ch n M t property m t đ c tính c a m t object ch ng h n nh size, caption, ho c color Khi b n s a đ i m t property b n s th y hi u qu l p t c, thí d thay đ i property Font c a m t Label s th y Label y đ c display b ng Font ch m i Khi b n ch n m t Property c a control hay form Properties window, phía bên ph i ch value c a property có th display ba ch m ( .) hay m t tam giác ch a xu ng B m vào đ display m t T H C VISUAL BASIC 6.0 - PH N I dialog cho b n ch n value Thí d d i dialog đ ch n màu cho property ForeColor c a control Label1 Form Layout B n dùng form Layout đ ch nh v trí c a forms form hi n l n đ u lúc ch ng trình ch y Dùng context command Resolution Guides đ th y n u dùng m t nh v i đ m n (resolution) t h n, thí d nh 640 X 480, s nh nh th T H C VISUAL BASIC 6.0 - PH N I 10 Form Designer Dùng đ thi t k giao di n l p trình B n b sung controls, đ h a (graphics), hình nh m t form đ t o s ma sát mà b n mu n M i form trình ng d ng c a b n có designer form riêng c a Khi b n maximise m t form designer, chi m c khu làm vi c Mu n làm cho tr l i c bình th ng đ ng th i đ th y form designers khác, click nút Restore Window góc bên ph i, phía Immediate Window Dùng đ g r i (debug) trình ng d ng c a b n B n có th display d ki n ch y ch ng trình ng d ng Khi ch ng trình t m ng ng m t break point, b n có th thay đ i giá tr variables hay ch y m t dòng ch ng trình View Code button Click lên nút n y đ xem code c a m t form mà b n ch n Window c a code gi ng nh d i đây: T H C VISUAL BASIC 6.0 - PH N I 74 Trong thí d sau đây, ta create m t Array of Labels tên lblClass m t Array of Textboxes tên txtClassMark Trong Sub Form_Load ta generate Captions c a Labels Private Sub Form_Load() Dim i As Integer For i = To ' Label Index starts at 0, but Class number starts at lblClass(i) = "Mark of Class " & CStr(i + 1) Next End Sub Sub CmdCalculateTotal_Click() ' Three classes, each has up to students Dim myStudentMarks(1 To 3, To 5) As Integer Dim TotalMark As Integer Dim ClassMark As Integer Dim i As Integer ' Use as ArrayIndex for Class Dim j As Integer ' Use as ArrayIndex for StudentMark ' Students' marks of first class myStudentMarks(1, 1) = myStudentMarks(1, 2) = myStudentMarks(1, 3) = myStudentMarks(1, 4) = myStudentMarks(1, 5) = ' Students' marks of second class myStudentMarks(2, 1) = myStudentMarks(2, 2) = myStudentMarks(2, 3) = ' Students' marks third class myStudentMarks(3, 1) = myStudentMarks(3, 2) = myStudentMarks(3, 3) = myStudentMarks(3, 4) = For i = To ClassMark = ' Intialise ClassMark of class i to ' Now go through each Student in Class i For j = To ClassMark = ClassMark + myStudentMarks(i, j) ' Accumulate ClassMark of class i TotalMark = TotalMark + myStudentMarks(i, j) Next ' Display ClassMark of class i Note that txtClassMark Index starts at 0, NOT txtClassMark(i - 1).Text = CStr(ClassMark) Next txtTotal.Text = CStr(TotalMark) ' Display TotalMark End Sub Ghi chú: N u b n có m t Array of Textboxes g m ch có Textboxes, r i sau b n Delete m t Textbox mu n dùng Textbox l i làm Textbox nh t, b n v n ph i refer (nh c đ n nó) b ng cách dùng Index (thí d : txtClassMark(0) ), dù r ng bây gi Textbox nh t mang tên y N u b n mu n d p v Index b n ph i vào Properties Window đ Delete Index value c a ArrayTextbox N u b n không l u T H C VISUAL BASIC 6.0 - PH N I 75 ý m n y có b n s b t tóc không hi u t i dùng tên mà VB6 v n nh t đ nh r ng Textbox b n nói đ n không hi n h u, VB6 c n Index value c a Textbox Th nh tho ng, Declare Array b n không bi t rõ s c n Elements cho m i dimension Trong tr ng h p y b n có th dùng Dynamic Arrays Declare m t Array nh sau: Private myStudentMarks() As Integer Vì b n không đ m t s gi a hai d u ngo c đ n nên VB6 bi t b n mu n dùng Dynamic Array dimension c a có th s thay đ i t ng lai Khi mu n thay đ i dimension c a Dynamic Array b n dùng ReDim keyword: ReDim myStudentMarks(10) ReDim Preserve myStudentMarks(10) C hai statements đ u đ i dimension c a Array myStudentMarks thành 11 (t Element đ n Element 10), nh ng statement th nhì ch Preserve gi nguyên values c a Elements c a Array Khi làm vi c v i Array th nh tho ng b n c n bi t Elements th p nh t cao nh t b ng cách dùng LBound UBound Private MyArray(10 to 20) As String LowestNum = LBound(MyArray) ' LBound returns 10 HighestNum = UBound(MyArray) ' UBound returns 20 Private YourArray( to 5, 10 to 15) As Integer LowestNumOfFirstDimension = LBound(YourArray,1) ' LBound returns HighestNumOfSecondDimension = UBound(YourArray,2) ' UBound returns 15 T H C VISUAL BASIC 6.0 - PH N I 76 Ngoài n u dùng Dynamic Array, b n có th assign m t Array n y cho m t Array khác, thay ph i dùng FOR LOOP đ copy t ng Array Element MyArray = HisArray Data Type c a b n B n có th gom m nh Data c a m t v t thành m t nhóm đ t tên cho lo i Data Type y nh sau: Type EmployeeRec ' EmployeeRec as name of this new Data Type Firstname As String Surname As String Salary As Single DateOfBirth As Date End Type ' Now declare a variable of the new data type Dim MyEmployee As EmployeeRec MyEmployee.Firstname = "David" MyEmployee.Surname = "Smith" MyEmployee.Salary = 25000 MyEmployee.DateOfBirth = #14/6/1963# Trong Software Engineering, ng i ta g i lo i Data Type n y Structured Data Type đ phân bi t v i lo i Simple Data Type nh Integer, Boolean, Single v.v B n đ ý cách nói đ n m t m nh data, MyEmployee.Firstname, gi ng nh Property Firstname c a m t control tên MyEmployee Có m t cách vi t khác đ tránh typing nhi u l n ch MyEmployee b ng cách dùng keyword With nh sau: With MyEmployee Firstname = "David" Surname = "Smith" Salary = 25000 DateOfBirth = #14/6/1963# End With M c d u đ nh ngh a dùng Structured Data Type cách n y r t ti n l i, nh ng sau n y ta có th dùng Class đ đ t đ c m t m c tiêu mà h u hi u h n n a Trong Class ch ng nh ng ta đ nh ngh a nh ng m nh data mà đ cách x lý chúng n a T H C VISUAL BASIC 6.0 - PH N I 77 T H C VISUAL BASIC 6.0 - PH N I Ch 78 ng B y - Dùng List Controls Có hai lo i List controls dùng VB6 Ðó Listbox Combobox C hai đ u display m t s hàng đ ta có th l a ch n Listbox chi m m t khung ch nh t, n u chi u ngang nh có không display đ y đ m t hàng, n u chi u dài không đ đ display t t c m i hàng Listbox t đ ng cho ta m t vertical scroll bar đ cho bi t có nhi u hàng b che ta có th xem hàng y b ng cách dùng vertical scroll bar Combobox th ng th ng ch display m t hàng, nh ng ta có th ch n display b t c hàng khác Combobox gi ng nh m t t p h p c a m t Textbox n m phía m t Listbox n m phía d i Listbox có r t nhi u công d ng r t uy n chuy n Trong ch ta s h c qua áp d ng sau c a Listbox: ng n y • Display nhi u s l a ch n đ User selects b ng cách click hay drag-drop • Nh ng cách dùng Property Sorted • Cách dùng Multiselect • Dùng đ display Events • Dùng đ Search hay process text • Cách dùng Itemdata song song v i Items c a List • Dùng làm Queue T H C VISUAL BASIC 6.0 - PH N I 79 Listbox Display nhi u s l a ch n Ta b t đ u vi t m t ch ng trình g m có m t Listbox tên lstNames n m m t Form Trong lstNames ta đánh vào tên c a b y ng i, m i l n xu ng hàng nh đánh Ctrl-Enter, thay ch Enter, n u không VB6 t ng ta đánh xong nên close property List Các tên n y nh ng hàng s hi n Listbox ta b t đ u ch y program Ngoài lstNames ta cho thêm m t Label v i Caption STUDENTS đ trang hoàng, m t Label khác tên lblName M i User click lên hàng tên ta mu n display hàng tên y lblName Sau ta cho vào m t CommandButton tên CmdExit đ cho User ph ng ti n Stop program Ta s có ch ng trình nh sau: Private Sub lstNames_Click() ' Assign the selected line of Listbox lstNames to Caption of Label lblName lblName.Caption = lstNames.List(lstNames.ListIndex) ' or = lstNames.text End Sub Private Sub CmdExit_Click() End End Sub T H C VISUAL BASIC 6.0 - PH N I 80 Gi s ta click vào tên John Smith Listbox, ta s th y tên y c ng đu c display Label lblName Trong thí d n y, Listbox lstNames có hàng ( Items) Con s Items n y Property ListCount c a Listbox Các Items c a Listbox đ c đ m t đ n ListCount-1 Trong tr ng h p n y t đ n Khi User click lên m t hàng, Listbox s generate Event lstNames_Click Lúc b y gi ta có th bi t đ c User v a m i Click hàng b ng cách h i Property ListIndex c a lstNames, s có value t đ n ListCount1 Lúc program m i ch y, ch a Click lên Item c a Listbox ListIndex = -1 Nh ng Items Listbox đ c xem nh m t Array c a String Array n y đ c g i List Do đó, ta nói đ n Item th nh t c a Listbox lstNames b ng cách vi t lstNames.List(0) , t ng t nh v y, Item cu i lstNames.List( lstNames.ListCount-1) Ta có th nói đ n item v a đ c Clicked b ng hai cách: ho c lstNames.List(lstNames.ListIndex), ho c lstNames.text Save content c a Listbox Bây gi đ l u tr content c a lstNames, ta thêm m t CommandButton tên CmdSave Ta s vi t code đ User click nút CmdSave program s m m t Output text file vi t m i items c a lstNames vào đó: Private Sub CmdSave_Click() Dim i, FileName, FileNumber ' Obtain Folder where this program's EXE file resides T H C VISUAL BASIC 6.0 - PH N I 81 FileName = App.Path ' Make sure FileName ends with a backslash If Right(FileName, 1) "\" Then FileName = FileName & "\" FileName = FileName & "MyList.txt" ' name output text file MyList.txt ' Obtain an available filenumber from the operating system FileNumber = FreeFile ' Open the FileName as an output file , using FileNumber as FileHandle Open FileName For Output As FileNumber ' Now iterate through each item of lstNames For i = To lstNames.ListCount - ' Write the List item to file Make sure you use symbol # in front of FileNumber Print #FileNumber, lstNames.List(i) Next Close FileNumber ' Close the output file End Sub App m t Object đ c bi t đ i di n cho program ch y ta dùng Property Path đ bi t lúc program ch y execute module EXE c a n m đâu Lý th ng th ng ta đ files liên h c n thi t cho program l n qu n ho c folder c a program hay m t subfolder, ch ng h n nh data, logs, v.v App có m t s Properties khác c ng r t h u d ng nh PrevInstance, Title, Revision v.v N u m i started m t program mà th y App.PrevInstance = True lúc b y gi c ng có m t copy khác c a program ch y N u c n ta End program n y đ tránh ch y copies c a program m t lúc App.Title App.Revision cho ta tin t c v Title Revision c a program ch y Ð vi t m t Text file ta c n ph i Open mode Output tuyên b t tr s dùng m t s (FileNumber) đ đ i di n File thay dùng FileName Ð tránh dùng m t FileNumber hi n h u, t t nh t ta h i xin Operating System cung c p cho m t s ch a dùng b ng cách g i Function FreeFile Con s FileNumber n y đu c g i FileHandle (Handle tay c m) Sau ta Close FileNumber s n y tr nên FREE Operating System s có th dùng l i Do b n ph i tránh g i FreeFile liên ti p hai l n, OS s cho b n m t s T c là, sau g i FreeFile ph i dùng b ng cách Open m t File r i m i g i FreeFile l n k đ có m t s khác Ð ý cách dùng ch Input, Output cho files relative (t ng đ i) v i v trí c a program (nó n m memory c a computer) Do t T H C VISUAL BASIC 6.0 - PH N I 82 memory vi t hard disk nói Output Ng c l i đ c t m t Text file n m hard disk vào memory cho program ta g i Input Load m t Text file vào Listbox Trong n y, thay đánh Items c a Listbox vào Property List c a lstNames ta có th populate (làm đ y) lstNames b ng cách đ c Items t m t Text file Ta th thêm m t CommandButton tên CmdLoad Ta s vi t code đ User click nút CmdLoad program s m m t Input text file đ c t ng hàng đ b vào lstNames: Private Sub CmdLoad_Click() Dim i, FileName, FileNumber, anItem ' Obtain Folder where this program's EXE file resides FileName = App.Path ' Make sure FileName ends with a backslash If Right(FileName, 1) "\" Then FileName = FileName & "\" FileName = FileName & "MyList.txt" ' Obtain an available filenumber from the operating system FileNumber = FreeFile ' Open the FileName as an input file , using FileNumber as FileHandle Open FileName For Input As FileNumber lstNames.Clear ' Clear the Listbox first ' Now read each line until reaching End-Of-File, i.e no more data Do While NOT EOF(FileNumber) Line Input #FileNumber, anItem ' Read a line from the Text file into variable anItem lstNames.AddItem anItem ' Add this item to the bottom of lstNames Loop Close FileNumber ' Close the input file End Sub Ð đ c t m t Text file ta c n ph i Open mode Input Tr c populate lstNames ta c n ph i delete t t c m i items có s n bên Ð th c hi n vi c ta dùng method Clear c a Listbox Sau ta dùng method AddItem đ cho thêm t ng hàng vào Listbox By default, n u ta không nói nhét vào ch hàng AddItem nhét Item m i vào d i chót c a Listbox N u mu n nhét hàng m i vào tr vi t: c item th (ListIndex = 4), ta lstNames.AddItem newItemString, ' newItemString contains "Ross Close", for example ' To insert a new Item at the beginning of the Listbox, write: lstNames.AddItem newItemString, Nh m i l n b n Add m t Item vào Listbox ListCount c a Listbox increment by T H C VISUAL BASIC 6.0 - PH N I 83 Mu n delete m t item t Listbox ta dùng method RemoveItem, thí d nh mu n delete item th ba (ListIndex=2) c a lstNames, ta vi t: lstNames.RemoveItem M i l n b n RemoveItem t Listbox the ListCount c a Listbox decrement by Do n u b n dùng Test d a vào ListCount c a m t ListBox đ nh y kh i m t Loop ph i coi ch ng tránh làm cho value ListCount thay đ i Loop AddItem hay RemoveItem Ta đ c t ng hàng c a m t Text file b ng cách dùng Line Input #FileNumber Khi đ c đ n cu i File, system d cho ta value EOF(FileNumber) = True Ta dùng value y đ cho program nh y kh i While Loop Câu Do While NOT EOF(FileNumber) có ngh a Trong ch a đ n End-Of-File c a Text File đ i di n b i FileNumber đ c t hàng b vào Listbox Gi ng nh "Trong ch a tr h t n nhà v ph i ti p t c r " Drag-Drop Ta h c qua Click Event c a Listbox Bây gi đ dùng Drag-Drop cho Listbox b n đ t Labels m i lên Form Cái th nh t tên c ng đ c nh ng có Caption Room A Hãy g i Label th hai lblRoom cho Property BorderStyle c a b ng Fixed Single K đ n select c hai Labels (Click a Label then hold down key Ctrl while clicking the second Label) r i click copy paste lên Form VB6 s cho b n Array c a hai lblRoom labels Ð cho lstNames m t DragIcon, b n click lstNames, click Property DragIcon đ pop-up m t dialog cho b n ch n m t dragdrop icon t folder C:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Dragdrop, ch ng h n nh DRAG2PG.ICO: T H C VISUAL BASIC 6.0 - PH N I 84 Ta s dùng Event MouseDown c a lstNames đ pop-up DragIcon hình trang gi y cho User Drag qua bên ph i r i b xu ng lên m t hai lblRoom Khi DragIcon r i lên lblRoom, lblRoom s generate Event DragDrop Ta s dùng Event DragDrop n y đ assign property Text c a Source (t c lstNames, control t phát xu t Drag action) vào Property Caption c a lblRoom L u ý ta dùng m t tên cho c hai lblRoom nên ch c n vi t code m t ch đ handle Event DragDrop Private Sub lstNames_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ' Start Pop-up DragIcon and start Drag action lstNames.Drag End Sub Private Sub lblRoom_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single) ' Assign Property Text of Source (i.e lstNames) to Label's Caption lblRoom(Index).Caption = Source.Text End Sub K t qu sau Drag hai tên t Listbox qua Labels nh sau: T H C VISUAL BASIC 6.0 - PH N I 85 Dùng Property Sorted Trong thí d ta có th quy t đ nh v trí c a m t Item m i ta nhét vào Listbox Ðôi ta mu n Items c a Listbox đ c t đ ng s p theo th t Alphabet B n có th set Property Sorted = True đ th c hi n chuy n n y Có m t gi i h n b n ph i cho Property Sorted m t value (True hay False) lúc design, ch ch y program b n không th làm cho Property Sorted c a Listbox thay đ i Gi d ta mu n sort Items c a m t Listbox c n V y ta làm sao? Gi i pháp r t đ n gi n B n t o m t Listbox tên lstTemp ch ng h n Cho Property Visible= False (đ không th y nó) Property Sorted=True Khi c n sort lstNames ch ng h n, ta copy content c a lstNames b vào lstTemp, đo n Clear lstNames r i copy content (đã đ c sorted) c a lstTemp tr l i lstNames L u ý ta có th AddItem vào m t Listbox v i Property Sorted=True, nh ng không th xác đ nh nhét Item vào tr c hàng nào, v trí c a Items Listbox quy t đ nh sort Items Ta cho thêm vào Form m t CommandButton m i tên CmdSort vi t code cho Event Click c a nh sau: Private Sub CmdSort_Click() Dim i lstTemp.Clear ' Clear temporary Listbox ' Iterate though every item of lstNames For i = To lstNames.ListCount - ' Add the lstNames item to lstTemp lstTemp.AddItem lstNames.List(i) Next lstNames.Clear ' Clear lstNames ' Iterate though every item of lstTemp For i = To lstTemp.ListCount - ' Add the lstTemp item to lstNames lstNames.AddItem lstTemp.List(i) Next lstTemp.Clear ' Tidy up - clear temporary Listbox End Sub Nhân ti n, ta mu n có option đ sort tên theo FirstName hay Surname Vi c n y h i r c r i h n m t chút, nh ng nguyên t c v n dùng sorted Listbox vô hình tên lstTemp B n đ t lên phía lstName hai cál Labels m i tên lblFirstName lblSurName cho chúng Caption "FirstName" "SurName" T ta Load file "MyList.txt" vào lstNames b ng cách Click button CmdLoad ch không Edit Property List c a lstNames đ enter Items lúc design n a Ngoài ta dùng d u ph y (,) đ tách FirstName kh i T H C VISUAL BASIC 6.0 - PH N I 86 SurName m i tên ch a file MyList.txt Content c a file MyList.txt bây gi tr thành nh sau: Peter,Jones Kevin,White Sue,Rose John,Smith Trevor,Kennedy Alan,Wright Ron,Bruno Ta s s a code Sub CmdLoad_Click l i đ nhét tên vào lstNames, FirstName SurName m i th chi m 10 characters Ð ch Items c a lstNames s p hàng ng n ta đ i Font c a lstNames Courier New Courier New m t lo i Font mà chi u ngang c a ch m b ng ch i, h u h t Fonts khác nh Arial, Times Roman v.v Proportional Spacing, có ngh a ch m r ng h n ch i Listing m i c a Sub CmdLoad_Click tr thành nh sau: Private Sub CmdLoad_Click() Dim i, Pos Dim FileName, FileNumber, anItem Dim sFirstName As String * 10 ' fixed length string of 10 characters Dim sSurName As String * 10 ' fixed length string of 10 characters ' Obtain Folder where this program's EXE file resides FileName = App.Path ' Make sure FileName ends with a backslash If Right(FileName, 1) "\" Then FileName = FileName & "\" FileName = FileName & "MyList.txt" ' Obtain an available filenumber from the operating system FileNumber = FreeFile ' Open the FileName as an input file , using FileNumber as FileHandle Open FileName For Input As FileNumber lstNames.Clear ' Clear the Listbox first ' Now read each line until reaching End-Of-File, i.e no more data Do While Not EOF(FileNumber) Line Input #FileNumber, anItem ' Read a line from the Text file ' Now separate FirstName from SurName Pos = InStr(anItem, ",") ' Locate the comma "," ' The part before "," is FirstName sFirstName = Left(anItem, Pos - 1) sFirstName = Trim(sFirstName) ' Trim off any unwanted blank spaces ' The part after "," is SurName sSurName = Mid(anItem, Pos + 1) sSurName = Trim(sSurName) ' Trim off any unwanted blank spaces lstNames.AddItem sFirstName & sSurName ' Add this item to the bottom of lstNames Loop Close FileNumber ' Close the input file End Sub T H C VISUAL BASIC 6.0 - PH N I 87 Vì FirstName n m bên trái c a m i Item nên sort theo FirstName c ng gi ng nh sort c Item Vi c y ta làm b ng Sub CmdSort_Click r i, User click Label lblFirstName ta ch c n g i CmdSort_Click nh sau: Private Sub lblFirstName_Click() CmdSort_Click End Sub Ð sort theo SurName ta c n ph i t m th i đ SurName qua bên trái c a Item tr c b vào lstTemp Ta th c hi n chuy n n y b ng cách hoán chuy n v trí c a FirstName SurName Item tr c b vào lstTemp Sau đó, copy Items t lstTemp đ b vô l i lstNames ta l i nh hoán chuy n FirstName SurName đ chúng n m l i v trí T c là, mánh c a ta mu n bi t Item ph i n m đâu lstNames, ch d nhiên display m i Item đ u có FisrtName bên trái Code đ sort tên theo SurName c ng gi ng nh CmdSort_Add nh ng thêm th t chút nh sau: Private Sub lblSurName_Click() Dim i, anItem Dim sFirstName As String * 10 ' fixed length string of 10 characters Dim sSurName As String * 10 ' fixed length string of 10 characters lstTemp.Clear ' Clear temporary Listbox ' Iterate though every item of lstNames For i = To lstNames.ListCount - anItem = lstNames.List(i) ' Identify FistName and SurName sFirstName = Left(anItem, 10) sSurName = Mid(anItem, 11) ' Swap FirstName/SurName positions before adding to lstTemp lstTemp.AddItem sSurName & sFirstName Next lstNames.Clear ' Clear lstNames ' Iterate though every item of lstTemp For i = To lstTemp.ListCount - anItem = lstTemp.List(i) ' Identify FistName and SurName sSurName = Left(anItem, 10) ' SurName now is on the left sFirstName = Mid(anItem, 11) ' Add FirstName/SurName in correct positions to lstNames lstNames.AddItem sFirstName & sSurName Next lstTemp.Clear ' Tidy up - clear temporary Listbox End Sub Các Items lstNames sorted theo SurName hi n nh sau: T H C VISUAL BASIC 6.0 - PH N I 88 Nhân ti n ta s a Sub CmdSave_Click l i m t chút đ Save Items theo sorted order m i n u c n: Private Sub CmdSave_Click() Dim i, FileName, FileNumber, anItem ' Obtain Folder where this program's EXE file resides FileName = App.Path ' Make sure FileName ends with a backslash If Right(FileName, 1) "\" Then FileName = FileName & "\" ' Call Output filename "MyList.txt" FileName = FileName & "MyList.txt" ' Obtain an available filenumber from the operating system FileNumber = FreeFile ' Open the FileName as an output file , using FileNumber as FileHandle Open FileName For Output As FileNumber ' Now iterate through each item of lstNames For i = To lstNames.ListCount - anItem = lstNames.List(i) anItem = Trim(Left(anItem, 10)) & "," & Trim(Mid(anItem, 11)) ' Write the List item to file Make sure you use symbol # in front of FileNumber Print #FileNumber, anItem Next Close FileNumber ' Close the output file End Sub [...]... T H C VISUAL BASIC 6.0 - PH N I 12 Nh n tr giúp trong khi đang làm vi c Trong khi l p trình b n có th c n tìm hi u các thông tin liên quan đ n các commands, functions v.v c a VB6 B n có th kh i đ ng Microsoft Developer Network | MSDN Library Visual Studio 6.0 t nút Start, hay click Help | Contents t Menu Bar c a VB6, hay ch n m t keyword (highlight keyword) r i n F1 đ đ c Help T H C VISUAL BASIC 6.0... cho m t control v a m t Focus Trong thí d d i đây, n u User không đánh vào m t con s trong Textbox Text1 thì s đ c thông báo và Tab Cursor s tr l i Textbox Text1 Private Sub Text1_LostFocus() If Not IsNumeric(Text1.Text) Then MsgBox "Please enter a number!" Text1.SetFocus End If End Sub T H C VISUAL BASIC 6.0 - PH N I o 36 DragDrop : xãy ra khi ta drop m t cái gì lên control Parameter Source cho ta... b n mà thôi T H C VISUAL BASIC 6.0 - PH N I Ch ng Hai- Vi t ch 15 ng trình đ u tiên B n đang làm quen v i môi tr ng tri n khai l p trình (Integrated Development Environment - IDE) c a MS VB6 và r t nóng ru t mu n vi t nh ng dòng mã đ u tiên đ chào m ng th gi i Ta th ôn l i m t s v n đ mà có l b n đã bi t r i M t ch ng trình Visual Basic g m có ph n mã l p trình và các hình nh (visual components) B... dùng KeyDown event Trong thí d d i đây, ta display Function key User b m: Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer) If (KeyCode >= 11 2) And (KeyCode ... nh sau: For i = To 16 Step ' Iterate from to 16 with Step=2 Total = Total + i ' Add the number to the Total Next T H C VISUAL BASIC 6.0 - PH N I 51 Total s b ng 4+6+8 +10 +12 +14 +16 = 70 Trong thí... a Visual Basic Visual Basic có hai d ng khác: Visual Basic for Application (VBA) VBScript VBA ngôn ng n m phía sau ch ng trình Word, Excel, MSAccess, MSProject, v.v g i Macros Dùng VBA T H C VISUAL. .. Text3_KeyDown(KeyCode As Integer, Shift As Integer) If (KeyCode >= 11 2) And (KeyCode

Ngày đăng: 04/12/2015, 00:36

TỪ KHÓA LIÊN QUAN