Logo of Vovisoft

Chương 3_ Phần 4_ Đoạn 1 : Creating an Instance of a class

    Trong Visual Basic, class module được xử dụng như là một templates ( bản định việc làm đă h́nh thành) cho từng bộ phận.  Do đó, để xử dụng Class module, việc đầu tiên là các bạn phải cho biết bạn cần ǵ ? để Class module có thể đáp ứng cho các bạn.  Từ chuyên nghiệp gọi là create an instance of the class module.  Class Module khác standard Module ở 2 điểm :

  1. Các bạn phải tạo thành một instance cho class module đó trước khi xử dụng nó.

  2. Các bạn có thể tạo thành một instance tổng hợp cho class module đó.

Để tạo thành Instance, các bạn phải xử dụng Dim, Set và Dim As New statements.  Thí dụ như sau :

    Dim empCurrent As CEmployee

    Set empCurrent = New CEmployee

Bạn cũng có thể viết 2 hàng thành một hàng :

    Dim empCurrent As New CEmployee

Nhưng tốt hơn hết là các bạn viết 2 hàng riêng biệt, v́ dể dàng cho các bạn điều chỉnh sau này.

Trao trả Class trở về dạng sẳn sàng như lúc ban đầu : Bởi v́ class chiếm một số memory (bộ nhớ trong máy vi tính) cho nên sau khi xử dụng xong bạn nên trả nó về vị trí ban đầu.  Sau đây là hàng code dùng để trao trả memory trở về máy vi tính :

    Set empCurrent = Nothing

Chương 3_ Phần 4 _Đoạn 2 : Using a Class

          Một khi các bạn đă tạo một instance cho class module rồi, bạn có thể thử methods và property của class đó xem có tiến hành được hay không ?  Các bạn có thể dùng Object Browser để nh́n xem ḿnh có bao nhiêu properties, methods và events.

Xếp đặt và Phục hồi properties : Sau đây là những hàng code làm sao để xếp đặt và phục hồi properties ( Setting and retrieving properties)

    Dim empCurrent As CEmployee

    Set empCurrent = New CEmployee

    empCurrent.FirstName = “Bill” ‘Calls Let Procedure.

    MsgBox empCurrent.FirstName ‘Calls Get Procedure.

Sau đây là thí dụ làm sao để gọi methods :

    Dim empCurrent As CEmployee

    Dim bHired As Boolean

    Set empCurrent = New CEmployee ‘Calls the Hired method

    bHired = empCurrent.Hire

    If bHired Then

        MsgBox empCurrent.FirstName & “was hired!”

    End If

Chương 3_Phần 4_Đoạn 3 : Xử lư Events

    Theo những bước sau đây, các bạn sẽ xử lư event events chứa đựng bởi COM component :

  1. Xử dụng WithEvents keyword để xác định các bộ phận trong class mà các bộ phận đó sẽ tham gia vào trong events

  2. Lập thành tiến tŕnh event để điều khiển.

  3. Tạo thành instance để tiếp ứng cho events

Khi các bạn xác định WithEvents variable rồi th́ danh sách những bộ phận có liên quan đến event (tiết mục) đó đều có ở trong code windows.  Như thí dụ sau đây :

Dim WithEvents ordCurrent As COrder

Private Sub Order_Status(ByVal StatusText As String)

          MsgBox StatusText

End Sub

Khi hoàn thành các bạn sẽ thấy như h́nh ảnh sau :

    Kế tiếp là bạn phải tạo thành một instance cho Object mà object đó sẽ tham dự vào trong tiết mục (Events) sẽ tiến hành trong class của bạn.  Thí dụ như bạn tạo thành một instance là Order để gọi SubmitOrder method như sau :

Private Sub cmdSubmitOrder_Click()

          Dim ordCurrent As COrder

          Set ordCurrent = New COrder

          ordCurrent.SubmitOrder

End Sub

Chương 3_Phần 5 : Creating Data bound Class

    Với Visual Basic dưới version 6, các bạn sẽ bị giới hạn trong việc binding data (thu nhận và giao trả nhu liệu).  Nhưng với Visual Basic 6, các bạn xử dụng BindingCollection, th́ các bạn có thể tạo thành Data Source Class và Data Consumer Class một cách dể dàng.

Chương 3_ Phần 5_Đoạn 1 : Creating Data Source Class

    Khi các bạn tạo thành cho ứng dụng của ḿnh một Data Source Class rồi, nó sẽ tự động thu nhận và giao trả nhu liệu mà không cần user interface (một số controls đă được loại bỏ).  Theo các bước sau đây, các bạn có thể tạo thành Data Source

  1. Đổi DataSourceBehavior trong object window properties thành vbDataSource.  Đồng thời với việc này Visual Basic tự động tạo thành GetDataMember event procedure luôn.
  2. Lúc tiến hành Initialize event procedure, thu nhận các nhu liệu cần thiết cho việc giao trả sau này.

Private rBooks As Recordset

Private cStateUBookstore As Connection

Private Sub Class_Initialize()

Dim sConnect As String

         ' define the OLE DB connection string

         sConnect = "Provider=SQLOLEDB;" & _

               "Data Source=MSERIES1;" & _

               "Initial Catalog=StateUBookstore"

' create the ADO objects

         Set cStateUBookstore = New Connection

         Set rBooks = New Recordset

' open the database connection

         cStateUBookstore.Open sConnect, "sa", ""

' create a recordset from the Books table

         rBooks.Open "Select * from Books", cStateUBookstore, adOpenStatic

End Sub

 

  1. Viết code cho GetDataMember event procedure.  GetDataMember có 2 parameters (ngăn lớp) là DataMember và Data.  DataMember là một ngăn lớp riêng biệt cho một số nhu liệu nếu các bạn xử dụng multiple data members (tổng hợp nhiều loại data).  Ngăn lớp Data là ngăn lớp thuần túy khi giao trả nhu liệu trong quá tŕnh tiến hành procedure.  Thí dụ như sau :

Private Sub Class_GetDataMember_(DataMember As String, Data As Object)

          ' return the data to the consumer

          Set Data = rsBooks

End Sub

  1. Thêm vào các chức năng khác như di chuyển kế tiếp hoặc lùi lại...mà nó cần thiết cho ứng dụng của bạn.

Private Sub NextBook()

                  rsBooks.MoveNext

End Sub

 

Private Sub PrevBook()

                  rsBooks.MovePrevious

End Sub

Xử dụng Data Source Class : Các bạn có thể lắp ráp bất cứ data consumer thông thường nào như text box và ngay cả data consumer không thông thường (không xử dụng user interface ) như caption của form... Để có Data Source, các bạn hăy theo các bước sau đây :

  1. Vào trong Project menu, chọn references, check ở Microsoft Data Binding Collection check box.

  2. Trong procedure mà bạn muốn lắp data vào, tạo thành một instance cho BindingCollection đó.

  3. Trong BindingCollection object mà bạn vừa mới tạo thành đó, đổi thành DataSource property.

  4. Nếu cần thiết, như phần trên chúng tôi có nói qua 2 parameters là DataMember và Data, nếu là Data tổng hợp, các bạn cần phải đổi DataMember thành một tên riêng biệt.

  5. Thêm vào các bộ phận mà ứng dụng của bạn yêu cầu bằng cách xử dụng Add method.

Sau đây là thí dụ một click event xử dụng Data Source Class :

Private bc As BindingCollection

  ' declare the data source class

Private dsBookStore as CBookStore  

Private Sub cmdEstablishBinding_Click()

         ' create the Binding Collection object

         Set bc = New BindingCollection  

         ' create an instance of the data source class

         Set dsBookstore = New CBookStore  

         ' establish data source object

         Set bc.DataSource = dsBookStore

         ' identify data member to use if source provides more than one

         bc.DataMember = "Books"

         ' bind a field from the data member to

         '   a text box on this form

         bc.Add txtTitle, "Text", "Title"

 

End Sub

Chương 3 _Phần 5_Đoạn 2 : Creating a Data Consumer Class

    Data consumer là bộ phận dùng để giao trả những nhu liệu từ trong kho nhu liệu cho những ǵ mà ứng dụng của bạn yêu cầu.  Theo các bước sau đây, các bạn sẽ có một Data Consumer Class :

  1. Trong Window Properties của class mà bạn muốn tạo thành Data Consumer, đổi DataBindingBehavior property thành vbSimpleBound, bạn cũng có thể đổi thành vbComplexBound property tùy theo sự sắp xếp của ứng dụng nếu các bạn muốn lắp ráp nhiều nhu liệu trong kho.

  2. Thêm vào các properties, Methods, Events... để hoàn thành Data Consumer Class.

Xử dụng Data Consumer Class : Cũng giống như Data Source Class, các bạn xử dụng BindingCollection object để ráp nhu liệu vào trong class.  Theo các bước sau đây, các bạn sẽ làm cho Data Consumer Class sẳn sàng để xử dụng :

  1. Vào trong Project menu, chọn references, check ở Microsoft Data Binding Collection check box.

  2. Trong procedure mà bạn muốn lắp data vào, tạo thành một instance cho BindingCollection đó.

  3. Trong BindingCollection object mà bạn vừa mới tạo thành đó, đổi thành DataSource property.

  4. Nếu cần thiết, như phần trên chúng tôi có nói qua 2 parameters là DataMember và Data, nếu là Data tổng hợp, các bạn cần phải đổi DataMember thành một tên riêng biệt.

  5. Thêm vào các bộ phận mà ứng dụng của bạn yêu cầu bằng cách xử dụng Add method.

Sau đây là thí dụ làm sao để có Data Consumer Class :

Private bc As BindingCollection

' declare the data source class

Private dsBookStore as CBookStore

' declare the data consumer class

Private dcBookList as CBookList

Private Sub EstablishBinding()

         ' create the Binding Collection object

         Set bc = New BindingCollection

         ' create an instance of the data source class

         Set dsBookstore = New CBookStore

         ' establish data source object

         Set bc.DataSource = dsBookStore

         ' identify data member to use if source provides more than one

         bc.DataMember = "BookList"

         ' bind a field from the data member to

         '   the data consumer object's Title property

         bc.Add dcBookList, "Title", "Title"

 

End Sub

 

Mời bạn đón xem phần kế tiếp...