1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình đào tạo Visual Basic_5 doc

27 330 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 1,63 MB

Nội dung

RaiseEvent Draw(mvarX, mvarY) End Sub 3. Tìm th t c x lý s ki n ủ ụ ử ự ệ Click c a bi u m u. Tìm và xoá dòng l nh t oủ ể ẫ ệ ạ đ i t ng ố ượ A_Box và thêm m t dòng vào ph n ộ ầ General Declarations: Private WithEvents A_Box As clsBox Private Sub Form_Click() Dim nIndex As Integer With A_Box .Y = 0 .Width = 1000 .Height = 1000 For nIndex = 0 To 1000 .DrawBox Me, Me.BackColor .X = nIndex .DrawBox Me Next End With End Sub 4. Thêm m t dòng vào s ki n ộ ự ệ Form_Load: Private Sub Form_Load() Set A_Box = New clsBox End Sub 5. Ch n ọ A_Box t danh sách trong c a s ừ ử ổ Code. Ch n s ki n ọ ự ệ Draw t danhừ sách các s ki n.ự ệ 6. Trong s ki n này, ta dùng l nh ự ệ ệ Print đ in ra to đ c a h p trong c a sể ạ ộ ủ ộ ử ổ g r i (hay còn g i là c a s Immediate)ỡ ố ọ ử ổ Private Sub A_Box_Draw(X As Integer, Y As Integer) Debug.Print "The box just got drawn at " & X & ", " & Y End Sub 7. Thi hành ch ng trình. Nh n chu t trên bi u m u, ta th y h p tr t quaươ ấ ộ ể ẫ ấ ộ ượ màn hình. Đ ng th i trong c a s ồ ờ ử ổ Immediate, ta th y các dòng văn b n hi n thấ ả ể ị to đ hi n hành c a h p.ạ ộ ệ ủ ộ đây, ta dùng ph ng th c Ở ươ ứ RaiseEvent đ yêu c u VB phát ra s ki n ể ầ ự ệ Draw, và truy n 2 giá tr c a 2 bi n thu c tính ề ị ủ ế ộ mvarX và mvarY ch a to đ (x, y) c a h pứ ạ ộ ủ ộ cho s ki n ự ệ Draw m i.ớ Đ có th x lý các s ki n c a m t đ i t ng t t o, ta c n khai báo đ i t ngể ể ử ự ệ ủ ộ ố ượ ự ạ ầ ố ượ h i khác m t chút. Tr c h t, nó ph i đ c khai báo là ơ ộ ướ ế ả ượ Private trong bi u m uể ẫ (ho c modul), thay vì là Private trong m t th t c. Sau đó, ta ph i dùng tặ ộ ủ ụ ả ừ WithEvents thay vì Dim: Private WithEvents A_Box As clsBox T khóa ừ WithEvents báo cho VB bi t ta đang khai báo m t đ i t ng có s ki n, vàế ộ ố ượ ự ệ ta d đ nh vi t ch ng trình đ x lý nh ng s ki n này.ự ị ế ươ ể ử ữ ự ệ Chú ý t khoá ừ New b lo i b trong dòng l nh ị ạ ỏ ệ WithEvents. Khi ta vi t:ế Dim A_Box As New clsBox Nghĩa là không ch thông báo cho VB r ng ta s p s d ng m t đ i t ng d a theoỉ ằ ắ ử ụ ộ ố ượ ự l p ớ clsBox, ta còn yêu c u VB c p phát vùng nh cho đ i t ng và t o nó. Tuyầ ấ ớ ố ượ ạ nhiên, do h n ch c a VB, đi u này không đ c th c hi n v i t khoá ạ ế ủ ề ượ ự ệ ớ ừ WithEvents. Thay vào đó, ta ph i t o đ i t ng riêng, b ng cách thêm dòng l nh vào s ki nả ạ ố ượ ằ ệ ự ệ Form_Load. Tóm l i, đ i v i s ki n, ta c n nh :ạ ố ớ ự ệ ầ ớ o Khai báo s ki n dùng Public Event.ự ệ o Phát s ki n dùng RaiseEventự ệ o T o đ i t ng v i Dim WithEvents, không dùng New.ạ ố ượ ớ o T o đ i t ng nh sau:ạ ố ượ ư Set <đ i t ng> = New <l p>ố ượ ớ o Vi t ch ng trình đ b t s ki n t ng t x lý s ki n c a đi uế ươ ể ắ ự ệ ươ ự ử ự ệ ủ ề khi n.ể 10.1.5Hu đ i t ngỷ ố ượ Sau khi s d ng m t đ i t ng và không c n d ng n a, ta c n hu nó đi. Đi u nàyử ụ ộ ố ượ ầ ừ ữ ầ ỷ ề đ c bi t quan tr ng khi ta s d ng nhi u đ i t ng trong ng d ng. N u khôngặ ệ ọ ử ụ ề ố ượ ứ ụ ế hu đ i t ng, s hao h t vùng nh s làm gi m kh năng ho t đ ng c a ngỷ ố ượ ự ụ ớ ẽ ả ả ạ ộ ủ ứ d ng. Ta dùng dòng l nh sau:ụ ệ Set <đ i t ng> = Nothingố ượ N i lý t ng đ hu m t đ i t ng là trong s ki n ơ ưở ể ỷ ộ ố ượ ự ệ Unload c a bi u m u.ủ ể ẫ Ví d :ụ Private Sub Form_Unload (Cancel As Integer) Set A_Box = Nothing End Sub 10.2 Bi n đ i t ngế ố ượ Cho đ n bây gi , ta ch tham chi u đ n đi u khi n hay bi u m u thông qua tên taế ờ ỉ ế ế ề ể ể ẫ đ t cho chúng lúc thi t k . Cách làm này ch phù h p đ i v i các ch ng tình đ nặ ế ế ỉ ợ ố ớ ươ ơ gi n. Đ t đ i t ng vào bi n và tham chi u đ n nó b ng tên bi n cho phép ta sả ặ ố ượ ế ế ế ằ ế ử d ng cùng đo n ch ng trình cho vô s các instance khác nhau c a m t ki u đ iụ ạ ươ ố ủ ộ ể ố t ng.ượ V i bi n đ i t ng ta có th :ớ ế ố ượ ể o T o đi u khi n m i trong lúc thi hành.ạ ề ể ớ o Copy đi u khi n đ sinh ra m t instance m i c a điêu khi n hi nề ể ể ộ ớ ủ ể ệ hành. o T o b n sao bi u m u cùng tên, cùng đi u khi n và ch ng trình;ạ ả ể ẫ ề ể ươ nh ng t ng bi u m u ch a và x lý nh ng d li u khác nhau – t ng tư ừ ể ẫ ứ ử ữ ữ ệ ươ ự nhi u tài li u trong ng d ng c a Word hay nhi u ề ệ ứ ụ ủ ề b ng tínhả trong Excel. Bi n đ i t ng cung c p kh năng xây d ng các th t c t ng quát đ x lý v iế ố ượ ấ ả ự ủ ụ ổ ể ử ớ nh ng đi u khi n nh t đ nh. Ví d , m t th t c ki m tra d li u c a h p văn b nữ ề ể ấ ị ụ ộ ủ ụ ể ữ ệ ủ ộ ả ch dùng trong tr ng h p tên đi u khi n đ c ch ra trong ch ng tình. Tuy nhiên,ỉ ườ ợ ề ể ượ ỉ ươ đ th t c tr thành đ c l p v i đi u khi n b t kỳ, ta xem đi u khi n nh m tể ủ ụ ở ộ ậ ớ ề ể ấ ề ể ư ộ bi n đ i t ng.ế ố ượ Dim NewEmployee As New cEmployee 10.2.1T o đi u khi n lúc thi hànhạ ề ể Cách đ n gi n nh t là t o m t m ng đi u khi n vào lúc thi t k , sau đó, m r ngơ ả ấ ạ ộ ả ề ể ế ế ở ộ m ng b ng ch ng trình lúc thi hành. N u ta đ nh thu c tính ả ằ ươ ế ị ộ Index c a đi u khi nủ ề ể đ u tiên là 0 lúc thi t k , ta có thêm đi u khi n lúc thi hành. Đi u khi n t o lúc thiầ ế ế ề ể ề ể ạ hành có cùng tên, ki u, và th t c x lý s ki n nh đi u khi n ban đ u.ể ủ ụ ử ự ệ ư ề ể ầ T ng t bi n m ng, ta có th m r ng ho c rút g n m ng đi u khi n. Đi m khácươ ự ế ả ể ở ộ ặ ọ ả ề ể ể nhau là ta không Redim m ng đi u khi n nh v i bi n m ng. Thay vào đó, ta ph iả ề ể ư ớ ế ả ả Load b n ả instance m i c a đi u khi n vào m ng. Khi mu n xoá đi u khi n, taớ ủ ề ể ả ố ề ể Unload chúng. Ví d m u - T o đi u khi n lúc thi hànhụ ẫ ạ ề ể Th t o m t dãy các nút l nh trên bi u m u. V m t nút l nh lúc thi t k và dùngử ạ ộ ệ ể ẫ ẽ ộ ệ ế ế ch ng trình đ t o ph n còn l i.ươ ể ạ ầ ạ 1. T o đ án m i và v m t nút l nh trên bi u m u.ạ ề ớ ẽ ộ ệ ể ẫ 2. Đ i thu c tính ổ ộ Index thành 0. Khi y m t m ng đi u khi n có m t ph n tấ ộ ả ề ể ộ ầ ử đ c t o ra.ượ ạ 3. Đ a đo n ch ng tình sau vào th t c ư ạ ươ ủ ụ Click c a nút l nh:ủ ệ Private Sub Command1_Click(Index As Integer) Static sNextOperation As String Dim nIndex As Integer For nIndex = 1 To 5 If sNextOperation = "UNLOAD" Then Unload Command1(nIndex) Else Load Command1(nIndex) With Command1(nIndex) .Top = Command1(nIndex - 1).Top + Command1(nIndex - 1).Height .Caption = nIndex .Visible = True End With End If Next If sNextOperation = "UNLOAD" Then sNextOperation = "LOAD" Else sNextOperation = "UNLOAD" End If End Sub 4. Thi hành đo n ch ng trình và nh n trên nút l nh vài l n. M i l n nh n, 5ạ ươ ấ ệ ầ ỗ ầ ấ nút l nh đ c t o ho c xoá.ệ ượ ạ ặ 5. L u vào đĩa v i tên ư ớ NewCtrl.vbp Vòng l p ặ For Next t o ho c xoá nút l nh này tuỳ theo n i dung bi nạ ặ ệ ộ ế sNextOperation. Tr c h t, n i dung c a ướ ế ộ ủ sNextOperation đ c ki m tra đ xemượ ể ể c n ầ Load hay Unload các ph n t . L n đ u, ầ ử ầ ầ sNextOperation ch a đ c gán, nó r iư ượ ơ vào ph n False, nghĩa là ầ Load. B i m c đ nh, đi u khi n m i t o lúc thi hành xu t hi n t i cùng v trí v i đi uở ặ ị ề ể ớ ạ ấ ệ ạ ị ớ ề khi n g c, và không hi n th . Do đó, ta có th đ i v trí và đi u ch nh kích c màể ố ể ị ể ổ ị ề ỉ ỡ không đ ng i s d ng th y. Nó cũng c m Windows v l i m i l n n p các đi uể ườ ử ụ ấ ấ ẽ ạ ỗ ầ ạ ề khi n, không nh ng làm ch m ch ng trình mà còn hi n th không có tr t t trongể ữ ậ ươ ể ị ậ ự khi ta đang di chuy n chúng. Ta ch cho chúng hi n th sau khi đã có v trí m i.ể ỉ ể ị ị ớ 10.2.2S ki n c a m ng đi u khi nự ệ ủ ả ề ể M c dù hi n th khác nhau, 6 ph n t v n chia s m t th t c x lý s ki n, vìặ ể ị ầ ử ẫ ẻ ộ ủ ụ ử ự ệ nh n vào m t nút b t kỳ, chúng đ đáp ng nh nau. Ta có th x lý các s ki nấ ộ ấ ề ứ ư ể ử ự ệ theo t ng nút l nh phân bi t, d a trên ừ ệ ệ ự Index c a m ng đi u khi n.ủ ả ề ể Ví d m u - X lý s ki n v i m ng đi u khi nụ ẫ ử ự ệ ớ ả ề ể 1. M đ án ở ề NewCtrl.vbp và ch n s ki n ọ ự ệ Click trên nút l nh.ệ 2. Thêm đo n ch ng trình sau vào:ạ ươ Private Sub Command1_Click(Index As Integer) Static sNextOperation As String Dim nIndex As Integer Select Case Index Case 0 For nIndex = 1 To 5 If sNextOperation = "UNLOAD" Then Unload Command1(nIndex) Else Load Command1(nIndex) With Command1(nIndex) .Top = Command1(nIndex - 1).Top + Command1(nIndex - 1).Height .Caption = nIndex .Visible = True End With End If Next If sNextOperation = "UNLOAD" Then sNextOperation = "LOAD" Else sNextOperation = "UNLOAD" End If Case 1, 2, 3, 4, 5 MsgBox "You pressed Button " & Index End Select End Sub 3. Thi hành ch ng trình. Nh n chu t trên t ng nút l nh, m t thông đi p xu tươ ấ ộ ừ ệ ộ ệ ấ hi n cho bi t th t nút nh n.ệ ế ứ ự ấ 10.2.3Qu n lý đi u khi n nh bi n đ i t ngả ề ể ư ế ố ượ Không ch dùng bi n đ i t ng nh m ng đi u khi n, ta còn có th truy n bi n đ iỉ ế ố ượ ư ả ề ể ể ề ế ố t ng và m ng đ i t ng vào th t c hay hàm.ượ ả ố ượ ủ ụ Ví d , ta có kho ng 30 h pp văn b n trên bi u m u, t ng cái nh n d li u khácụ ả ọ ả ể ẫ ừ ậ ữ ệ nhau. M t s ch nh n ki u s , m t s ch nh n ch cái, s khác ch p nh n c hai,ộ ố ỉ ậ ể ố ộ ố ỉ ậ ữ ố ấ ậ ả trong khi s còn l i ki m tra s ký t nh p vào xem có v t quá s l ng quy đ nhố ạ ể ố ự ậ ượ ố ượ ị không? N u x lý riêng r t ng đi u khi n, ta s t n r t nhi u đo n ch ng tình.ế ử ẽ ừ ề ể ẽ ố ấ ề ạ ươ Gi i pháp là xem h p văn b n nh m t đ i t ng, và truy n nó đ n m t th t cả ộ ả ư ộ ố ượ ề ế ộ ủ ụ t ng quát.ổ 10.2.3.1 Hàm ki m tra h p văn b n ể ộ ả Hàm này s t đ ng bi t ki u d li u mà m i h p văn b n cũng nh chi u dài t iẽ ự ộ ế ể ữ ệ ỗ ộ ả ư ề ố đa c a d li u.ủ ữ ệ Ví d m u - Ki m tra h p văn b nụ ấ ể ộ ả 1. T o đ án m i và v m t bi u m u g m các đi u khi n nh sau:ạ ề ớ ẽ ộ ể ẫ ồ ề ể ư 2. Thi t l p thu c tính cho h p văn b n nh sau:ế ậ ộ ộ ả ư Mô tả Thu c tínhộ Giá trị H p “alphabetic only” (chộ ỉ nh n ch )ậ ữ Name Index Tag txtValidate 0 A12 H p “Numbers” (ch nh nộ ỉ ậ s )ố Name Index Tag txtValidate 1 N5 H p “Anything” (nh n m iộ ậ ọ th )ứ Name Index Tag txtValidate 0 *4 L u ý r ng ch cái trong thu c tính ư ằ ữ ộ Tag trong c a s ử ổ Properties ph i là ch in hoa,ả ữ n u không ví d không ho t đ ng.ế ụ ạ ộ 3. Ph n còn l i là vi t ch ng trình. M c a s ầ ạ ế ươ ở ử ổ Code, đ a đo n ch ng trìnhư ạ ươ sau vào: Option Explicit Private Sub ValidateKeyPress(txtControl As TextBox, nKeyAscii As Integer) Dim sMaxLength As String Dim sKey As String * 1 If nKeyAscii < 32 Or nKeyAscii > 126 Then Exit Sub sMaxLength = Right$(txtControl.Tag, Len(txtControl.Tag) - 1) If Len(txtControl.Text) >= Val(sMaxLength) Then Beep nKeyAscii = 0 Exit Sub End If Select Case Left$(txtControl.Tag, 1) Case "A" sKey = UCase(Chr$(nKeyAscii)) If Asc(sKey) < 65 Or Asc(sKey) > 90 Then Beep nKeyAscii = 0 Exit Sub End If Case "N" If nKeyAscii < 48 Or nKeyAscii > 57 Then Beep nKeyAscii = 0 Exit Sub End If End Select End Sub 4. Thi hành ch ng trình.ươ ValidateKeyPress là th t c m c bi u m u và đ c khai báo trong ph n ủ ụ ở ứ ể ẫ ượ ầ General. nKeyAscii là mã c a phím nh n. Vì t khoá ủ ấ ừ ByVal không đ c nêu ra, nên tham sượ ố đ c truy n b ng tham chi u. Đ i ượ ề ằ ế ổ KeyAscii v 0 trong s ki n ề ự ệ KeyPress nghĩa là phím nh n.ấ Thu c tính ộ Tag đ c dùng nh m t nhãn riêng đa năng cho các đi u khi n. Nó choượ ư ộ ề ể bi t ki u d li u đ c cho phép trong m i h p văn b n. Ký t đ u tiên đ nh nghĩaế ể ữ ệ ượ ỗ ộ ả ự ầ ị ki u d li u cho phép, ‘A’ nghĩa là ch có ch cái, ‘N’ nghĩa là s , còn l i là cácể ữ ệ ỉ ữ ố ạ ki u khác. Con s k ti p quy đ nh s ký t t i đa trong m i h p văn b n.ể ố ế ế ị ố ự ố ỗ ộ ả Ta có th đ i ki u d li u c a m i h p văn b n b ng cách đ i thu c tính ể ổ ể ữ ệ ủ ỗ ộ ả ằ ổ ộ Tag trong c a s ử ổ Properties. Giai đo n đ u tiên, ch ng tình ki m tra ạ ầ ươ ể nKeyAscii cho các ký t đ c bi t. N uự ặ ệ ế chúng đ c nh n, phím đó s đ c b qua.ượ ấ ẽ ượ ỏ If nKeyAscii < 32 Or nKeyAscii > 126 Then Exit Sub Dòng l nh k l y giá tr t thu c tính ệ ế ấ ị ừ ộ Tag đ a vào bi n ư ế sMaxLength. Sau đó, ki m tra chi u dài t i đa:ể ề ố If Len(txtControl.Text) >= Val(sMaxLength) Then Beep nKeyAscii = 0 Exit Sub End If Select Case so sánh phím ký t v i ki u d li u quy đ nh trong thu c tính ự ớ ể ữ ệ ị ộ Tag. Hàm Chr$ chuy n mã ký t ể ự nKeyAscii thành chu i ký t t ng ng. Hàm ỗ ự ươ ứ Asc làm ng c l i và tr v mã ký t ASCII c a m t ký t .ượ ạ ả ề ự ủ ộ ự 10.2.4Khai báo bi n đ i t ng ế ố ượ Ta có th khai báo m t bi n đ i t ng m t cách t ng minh nh khai báo bi nể ộ ế ố ượ ộ ườ ư ế thông th ng b ng cách cung c p m t ki u d li u mà VB nh n ra.ườ ằ ấ ộ ể ữ ệ ậ Dim txtControl As TextBox Ch ng trình s hi u qu , d g r i và ch y nhanh h n khi khai báo bi n đ iươ ẽ ệ ả ễ ỡ ố ạ ơ ế ố t ng t ng minh. Tuy nhiên, VB cũng cho phép khai báo m t bi n đ i t ngượ ườ ộ ế ố ượ “ n”:ẩ Dim cltControl As Control Tham s hàm và th t c có th khai báo ki u này. Nó cho phép ta truy n m t đi uố ủ ụ ể ể ề ộ ề khi n b t kỳ. Sau đó, dùng dòng l nh TypeOf đ ki m tra ki u đi u khi n liênể ấ ệ ể ể ể ề ể quan đ n m t đ i t ng.ế ộ ố ượ N u khai báo t ng minh, VB ki m tra thu c tính c a đ i t ng ngay lúc biên d ch.ế ườ ể ộ ủ ố ượ ị N u khai báo n, VB ch ki m tra thu c tính lúc thi hành.ế ẩ ỉ ể ộ 10.2.4.1 Ki u c a bi n đ i t ngể ủ ế ố ượ Sau đây là danh sách các ki u đ i t ng t ng minh mà VB có th nh n ra:ể ố ượ ườ ể ậ CheckBox ComboBox CommandButton MDIForm Data DirListBox DriveListBox FileListBox Grid Frame HscrollBar Image Label Line ListBox menu OptionButton OLE PictureBox Shape TextBox Timer VscrollBar Form Đây là nh ng đ i t ng chu n. Chúng là nh ng tên l p và đ c đ t k bên tên đi uữ ố ượ ẩ ữ ớ ượ ặ ế ề khi n trong c a s Properties.ể ử ổ Ví d m u – So sánh khai báo t ng minh và nụ ẫ ườ ẩ 1. T o đ án m i. V bi u m u nh sau:ạ ề ớ ẽ ể ẫ ư 2. Đ t tên đi u khi n nhãn tr ng là ặ ề ể ố lblTime, nút l nh là ệ cmdExplicit và cmdImplicit. 3. M c a s ở ử ổ Code, đ a đo n ch ng trình sau vào:ư ạ ươ Private Sub cmdExplicit_Click() Dim varTime As Variant Dim nIndex As Integer varTime = Now For nIndex = 1 To 15000 Time_Explicit cmdExplicit, nIndex Next cmdExplicit.Caption = "&Explicit" lblTime.Caption = Minute(Now - varTime) & " Mins, " & _ Second(Now - varTime) & " Secs" End Sub Private Sub cmdImplicit_Click() Dim varTime As Variant Dim nIndex As Integer varTime = Now For nIndex = 1 To 15000 Time_Implicit cmdImplicit, nIndex Next cmdImplicit.Caption = "&Implicit" lblTime.Caption = Minute(Now - varTime) & " Mins, " & _ Second(Now - varTime) & " Secs" End Sub Đ a 2 th t c sau vào ph n (ư ủ ụ ầ General) Private Sub Time_Explicit(cmdCommand As CommandButton, nNumber As Integer) cmdCommand.Caption = nNumber End Sub Private Sub Time_Implicit(cmdCommand As Control, nNumber As Integer) cmdCommand.Caption = nNumber End Sub 4. Thi hành ng d ng b ng cách nh n ứ ụ ằ ấ F5. 5. Khi bi u m u xu t hi n, nh n nút ể ẫ ấ ệ ấ Explicit. Ch ng trình báo th i gian hi nươ ờ ể th liên t c 15000 tiêu đ khác nhau trên nút l nh. Nút l nh là m t bi n đ iị ụ ề ệ ệ ộ ế ố t ng đ c khai báo t ng minh.ượ ượ ườ 6. Nh n chu t trên nút ấ ộ Implicit. M i vi c x y ra t ng t , nh ng l n này nútọ ệ ả ươ ự ư ầ l nh là m t bi n đ i t ng đ c khai báo n.ệ ộ ế ố ượ ượ ẩ Đ ý b n s th y nh n trên ể ạ ẽ ấ ấ Implicit ch m h n nh n trên ậ ơ ấ Explicit kho ng 10%.ả 10.3 T p h pậ ợ M i bi u m u trong ng d ng có m t t p h p các đi u khi n n i t i. Trong lúc thiỗ ể ẫ ứ ụ ộ ậ ợ ề ể ộ ạ hành, ta có th dùng t p h p đ truy c p đ n đi u khi n trên bi u m u. Ta khôngể ậ ợ ể ậ ế ề ể ể ẫ c n bi t tên c a m i đi u khi n, th m chí ki u đi u khi n. Khác v i m ng đi uầ ế ủ ỗ ề ể ậ ể ề ể ớ ả ề khi n, ta không c n khai báo, và t t c đi u khi n trên bi u m u đ c t đ ngể ầ ấ ả ề ể ể ẫ ượ ự ộ xem nh m t ph n c a bi u m u. Khi thêm hay xoá m t đi u khi n trên bi uư ộ ầ ủ ể ẫ ộ ề ể ể m u, VB t đ ng qu n lý vi c thêm hay xoá đi u khi n trong t p h p.ẫ ự ộ ả ệ ề ể ậ ợ Truy c p ph n t trong t p h p t ng t truy c p ph n t trong m ng thôngậ ầ ử ậ ợ ươ ự ậ ầ ử ả th ng.ườ T p h p r t ti n l i cho các bi u m u nh p li u. Ví d , ta có th vi t m t th t cậ ợ ấ ệ ợ ể ẫ ậ ệ ụ ể ế ộ ủ ụ chung đ duy t qua t p h p này và tìm ki m ch nh ng đi u khi n d li u và sauể ệ ậ ợ ế ỉ ữ ề ể ữ ệ đó gán cho thu c tính CSDL c a chúng m t đ ng d n đ n t p tin CSDL c aộ ủ ộ ướ ẫ ế ậ ủ khách hàng. Khác v i m ng đi u khi n, t p h p đi u khi n không h tr các s ki n. Tuyớ ả ề ể ậ ợ ề ể ỗ ợ ự ệ nhiên, t ng đi u khi n trong t p h p đ u có nh ng thu c tính, ph ng th c và sừ ề ể ậ ợ ề ư ộ ươ ứ ự ki n.ệ 10.3.1Thu c tính Controlsộ Thu c tính ộ Controls c a bi u m u ch đ c truy c p thông qua ch ng tình. Nóủ ể ẫ ỉ ượ ậ ươ th c ch t là m t m ng các bi n đ i t ng, trong đó, m i ph n t c a m ng là m tự ấ ộ ả ế ố ượ ỗ ầ ử ủ ả ộ đi u khi n đ n: ph n t s 0 là đi u khi n đ u tiên trên bi u m u, ph n t s 1 làề ể ơ ầ ử ố ề ể ầ ể ẫ ầ ử ố đi u khi n th 2 ề ể ứ S th t trong m ng đ c gán t đ ng khi ta v đi u khi n lên bi u m u trong lúcố ứ ự ả ượ ự ộ ẽ ề ể ể ẫ thi t k . N u có 2 h p văn b n trên bi u m u, ta có th đ i thu c tính Text c aế ế ế ộ ả ể ẫ ể ổ ộ ủ t ng đi u khi n nh sau:ừ ề ể ư Form1.Controls(0).Text=”Control 0” Form1.Controls(1).Text=”Control 1” Cú pháp: <tên bi u m u>.Controls(<s th t >).<thu c tính>=<giá tr >ể ẫ ố ứ ự ộ ị 10.3.2Xác đ nh đi u khi n trên bi u m uị ề ể ể ẫ M ng ả Controls có m t thu c tính g i là ộ ộ ọ Count, xác đ nh s đi u khi n trên bi uị ố ề ể ể m u. L u ý r ng m ng đ c đánh s t 0. N u ẫ ư ằ ả ượ ố ừ ế Count là 3, nghĩa là các ph n t sầ ử ẽ đánh s l n l t là 0,1,2.ố ầ ượ Ta có th dùng ể TypeOf đ x lý v i nhóm các đi u khi n t ng t . M c dù khôngể ử ớ ề ể ươ ự ặ ch ra chính xác m t ph n t , nh ng ta có th xác đ nh các đi u khi n cùng ki u.ỉ ộ ầ ử ư ể ị ề ể ể For cControlNo = 0 To Form1.Controls.Count –1 If TypeOf Form1.Controls(nControlNo) Is TextBox Then : : End if Next Ta duy t qua t ng ph n t c a t p h p trên Form1 t 0 đ n ph n t cu i cùng,ệ ừ ầ ử ủ ậ ợ ừ ế ầ ử ố Count –1. V i t ng đi u khi n, ta dùng ớ ừ ề ể TypeOf đ ki m tra xem nó có ph i là h pể ể ả ộ văn b n hay không.ả Tuy nhiên, làm vi c trên ch m c h i thô thi n, ta dùng cách khác tr c quan h n:ệ ỉ ụ ơ ể ự ơ For Each objControl In Form1.Controls If TypeOf objControl Is TextBox Then : : End if Next Ví d m u -Đ i màuụ ẫ ổ Dùng m ng đi u khi n đ đ i màu các đi u khi n trên bi u m u.ả ề ể ể ổ ề ể ể ẫ 1. T o đ án m i và v các đi u khi n lên bi u m u nh sau:ạ ề ớ ẽ ề ể ể ẫ ư L u ý r ng ta c n đ t 2 ư ằ ầ ặ đi u khi n khungề ể lên bi u m u, sau đó thêm các đi uể ẫ ề khi n khác lên trên. Khi đó, m i l n di chuy n khung, đi u khi n cũng s diể ỗ ầ ể ề ể ẽ chuy n theo.ể 2. Đ t tên bi u m u là ặ ể ẫ frmColors và tên nút l nh l n l t là ệ ầ ượ cmdBackground, cmdForeground, cmdQuit. Tên h p đánh d u l n l t là ộ ấ ầ ượ chkCheckBoxes, chkFrames, chkTextBoxes và chkLabels. 3. Thêm m t đi u khi n h p tho i thông d ng vào bi u m u và đ t tên làộ ề ể ộ ạ ụ ể ẫ ặ dlgColors. L u ý r ng n u đi u khi n ch a có trong h p công c , ch n ư ằ ế ề ể ư ộ ụ ọ Components t menuừ Project, sau đó, đánh d u ch n ấ ọ Microsoft Common Dialog Control 6.0. 4. Vi t ch ng trình cho nút Background:ế ươ Private Sub cmdBackground_Click() Dim nColor As Long Dim FormControl As Control On Error GoTo BackcolorError dlgColors.CancelError = True dlgColors.Flags = &H1& dlgColors.ShowColor nColor = dlgColors.Color For Each FormControl In frmColors.Controls If TypeOf FormControl Is TextBox And chkTextBoxes.Value = 1 Then FormControl.BackColor = nColor If TypeOf FormControl Is Frame And chkFrames.Value = 1 Then FormControl.BackColor = nColor If TypeOf FormControl Is Label And chkLabels.Value = 1 Then FormControl.BackColor = nColor If TypeOf FormControl Is CheckBox And chkCheckBoxes.Value = 1 Then FormControl.BackColor = nColor Next Exit Sub BackcolorError: MsgBox ("You pressed the cancel button.") [...]... Enterprise của VB 6 Trình xây dựng biểu mẫu dữ liệu ( Data Form Wizard ) đợc kết hợp với trình tạo ứng dụng ( Application wizard ), tạo biểu đồ ( Chart ) và lới ( FlexGrid ) Wizard này đợc thiết kế để tự động phát sinh các biểu mẫu Visual Basic chứa các điều khiển rằng buộc dữ liệu và các thủ tục dùng quản lý thông tin dẫn xuất từ các bảng và các câu truy vấn Ta có thể dùng Wizard để tạo các biểu mẫu... 12.1.6Dựng Visual Basic to mt c s d liu Sau khi to xong lc v chnh sa thit k, ó n lỳc ta phi to c s d liu thc s o c s d liu Jet dựng Visual Basic, ta cú th dựng tin ớch gi l Visual Data Manager Tin ớch ny trong n bn Visual Basic Professional v Enterprise cho phộp ta to cỏc c s d liu tng thớch vi Microsoft Access Lu ý : Do Visual Basic v Access 97 chia s cựng b mỏy c s d liu ta cú th hoc l dựng Visual. .. liu cui cựng u nh nhau chy Visual Data Manager, ta theo cỏc bc sau : 1 T menu ca Visual Basic chn mc Add-ins, Visual Data Manager, ca s Visual Data Manager s xut hin 2 T menu ca Visual Data Manager, chn File, New T menu con, chn Microsoft Access, Version 7.0 MDB Mt hp thoi tp tin xut hin : Lu ý : Version 2.0 MDB l phiờn bn ca Jet tng thớch vi phiờn bn 16 bit ca Access v Visual Basic 3 Chn th mc ta... cú s tng ng mt-mt gia kiu d liu Visual Basic v kiu d liu trng c s d liu Vớ d, ta khụng th quy nh mt trng c s d liu l kiu nh ngha bi ngi dựng hay bin Object ca Visual Basic Hn na nu ta dựng Microsoft Access to c s d liu s dng trong cỏc ng dng Visual Basic, lu ý rng mt s kiu d liu hu dng trong ng dng Visual Basic khụng xut hin trong thit kờ bng ca Microsoft Access Bi vỡ Visual Basic h tr lp trỡnh c s... gồm : Dòng lệnh SELECT Các lệnh tuỳ chọn nh INSERT, UPDATE, DELETE Add-In đợc dùng khi ta cần : Tạo các Recordset cho phép cập nhật từ các thủ tục đã lu trữ Tạo các User Control để hiển thị và thao tác với CSDL Tự động phát sinh chơng trình của VISUAL BASIC để thể hiện mối liên hệ giữa các dữ liệu Tạo các điều khiển để cho phép hiển thị và thao tác với các mối liên hệ tìm kiếm Dùng mô tả bằng văn... Enterprise của VB 6 Trình đối tợng dữ liệu ( Data Object Wizard ) tự động tạo ra các đối tợng tầng giữa ( middle-tier object ) rằng buộc với môi trờng dữ liệu ( Data Environment ) hoặc các UserControl Nó cho phép phát sinh các đoạn chơng trình để tạo ra nguồn dữ liệu hiệu chỉnh và User Control để hiển thị và thao tác các dữ liệu thông qua các thủ tục đã lu trữ Lu ý rằng, trớc hết ta phải tạo một Data Environment... trong VB chúng ta sẽ đề cập tới Add-in Các công cụ trong add-in Trình đóng gói và triển khai ứng dụng Visual Basic cho phép nạp và gỡ bỏ các Add-in dùng để mở rộng môi trờng trong phát triển Visual Basic 11.1 ADD-INS Từ menu Add-ins, chọn Add-ins manager hộp thoại Add-in xuất hiện 11.2 Cỏc cụng c trong ADD-INS 11.2.1Trỡnh ci t ng dng Là Trình đóng gói và triển khai ứng dụng sẽ đợc nói rõ ở phần sau... Điều khiển ADO Dùng chơng trình của ADO Dùng lớp dữ liệu ( Data class ) Chọn nguồn cho mẩu tin Chọn điều khiển ta muốn xuất hiện trên biểu mẫu và cho phép Wizard tạo chơng trình cho chúng Đó là các nút Add, Update, Edit, Refresh, Close, Show Data Control Kết thúc 11.2.3.2 To biu mu Master/ Detail Xác định cơ sở dữ liệu là ODBC hay Access Chọn biểu mẫu (tơng tự phần tạo biểu mẫu trớc ) Xác định... Server cp n truy cn cha trong c s d liu nh l View ; trong khi cỏc nh lp trỡnh Access v Visual Basic li gi truy vn l QueryDef C hai khỏi nim ny u l nh nhau Nu bn ó tng dựng phiờn bn c ca VB - nht l Visual Basic 3, ta cn bit mt vi im mi trong lp trỡnh c s d liu Visual Basic cha phiờn bn mi nht ca B mỏy c s d liu Jet ( Visual Basic chia s vi Microsoft Access ) Phiờn bn ny ca Jet a ra cỏc b sung cho b mỏy... ta ó lm quen vi Visual Basic trong cỏc chng trc Cng nh cỏc kiu i tng khỏc trong Visual Basic, cỏc i tng Recordset cú cỏc thuc tớnh v phng thc riờng Lu ý : Ta cú th lp trỡnh to v s dng cỏc recordset theo mt trong ba th vin truy cp d liu Cỏc i tng truy cp dliu ( DAO ), cỏc i tng truy cp d liu t xa ( RDO ) v cỏc i tng d liu ActiveX ( ADO ) 12.1.4Cỏc kiu c s d liu C s d liu ni ti ca Visual Basic, Jet, . tới Add-in Các công cụ trong add-in Trình đóng gói và triển khai ứng dụng Visual Basic cho phép nạp và gỡ bỏ các Add-in dùng để mở rộng môi trờng trong phát triển Visual Basic. 11.1 ADD-INS Từ menu. dùng khi ta cần : Tạo các Recordset cho phép cập nhật từ các thủ tục đã lu trữ Tạo các User Control để hiển thị và thao tác với CSDL Tự động phát sinh chơng trình của VISUAL BASIC để thể hiện. Thi hành ng d ng b ng cách nh n ứ ụ ằ ấ F5. 5. Khi bi u m u xu t hi n, nh n nút ể ẫ ấ ệ ấ Explicit. Ch ng trình báo th i gian hi nươ ờ ể th liên t c 150 00 tiêu đ khác nhau trên nút l nh. Nút

Ngày đăng: 14/08/2014, 13:21

TỪ KHÓA LIÊN QUAN

w