Logo of VovisoftMastering Visual Basic 6

Chương 4_ Phần 2 : Exposing Properties, Methods, Events

ActiveX Control sẳn sàng cho các bạn xử dụng những chức năng của nó.  Properties, methods, events của ActiveX control đều xài được cả.  Phương pháp đơn giản nhất là xử dụng ActiveX Control Interface Wizard để tạo thành properties, methods, events.  Các bạn cũng có thể tạo thành properties, methods, events mà không cần xài ActiveX Control Wizard.  Trong chương này, chúng tôi sẽ trình bày cùng Quí vị những vấn đề sau đây: Xử dụng Property procedure để tạo thành properties, xác nhập properties vào một control đa dạng (Multiple Control), giử và giao trả các giá trị của properties, thêm vào methods và dẩn đưa events vào trong ứng dụng.

Chương 4_Phần 2_Ðoạn 1 : Xử dụng ActiveX Control Interface Wizard

          Visual Basic 6 có thể lập thành cho các bạn một ActiveX Control đơn giản bằng ActiveX Control Interface Wizard.  Chúng ta có 3 bộ phận chính là property object, method object và event object mà chúng ta phải dẩn đưa vào trong Control.  Do đó, để không gặp trở ngại về sau, chúng ta phải hiểu rỏ ràng sự quan hệ giửa các bộ phận đó với nhau như thế nào.  Theo các bước sau đây, các bạn sẽ tự tạo cho mình một ActiveX Control đơn giản:

1).  Vào trong Add In Manager, chọn VB6 ActiveX Control và bấm vào check box(loaded)

2).  Chúng ta sẽ thấy khung ảnh ActiveX Control Interface Wizard và bắt đầu chạy cái Wizard (chương trình tự động).  Wizard sẽ làm cho chúng ta 2 việc : xác định properties, methods, events và viết code cho những bộ phận đó.

3).  Chọn các properties, methods, events tiêu chuẩn mà Visual Basic 6 đã có sẳn cho bạn.

4).  Thêm vào những properties, methods, events mà bạn muốn lập thành.

5).  Tiếp tục thêm properties, methods, events cho đến khi đã đầy đủ.

6).  Mapping _ tạo mối quan hệ lẩn nhau giửa properties, control và member.  Một trong những bước quan trọng, vì nếu không mapping, tạo mối quan hệ, thì các tính chất của các bộ phận không hổ trợ cho nhau và các bạn sẽ gặp trở ngại.

7).  Xác định tính chất của từng bộ phận, như bộ phận nào sẽ giao trả những giá trị gì...

8).  Bấm vào nút Finish khi chấm dứt xử dụng ActiveX Control Interface Wizard.

9).  Kiểm lại code trong View Code window để xem Wizard đã viết những gì...

 

Chương 4_Phần 2 _Ðoạn 2 : Adding Properties

    Thành lập Property : Ðể thành lập một property, các bạn cần xác định nơi chứa đựng tài liệu, nhu liệu cho property đó, rồi mới lập một tiến trình để xếp đặt và bàn giao những nhu liệu hay tài liệu mà property hàm chứa.  Ðồng thời, các bạn cũng phải cho Visual Basic biết khi property có sự biến đổi.  Ðể Visual Basic biết sự biến đổi đó, bạn xử dụng method gọi là PropertyChanged.  Method này có trong UserControl object ngay trong tiến trình của procedure.

    Xử dụng Property Procedure : Như chúng ta đã nói ở phần trên, procedure đi với nhau từng cặp, Set hay Let với Get (Xin lưu ý là các Property procedure này có cùng một tên).  Lý do là khi ứng dụng đọc property thì Property Get procedure tiến hành.  Khi ứng dụng bàn giao một giá trị nào đó của property thì Property Let procedure hay Property Set procedure tiến hành.  Sau đây là một thí dụ là làm sao thay đổi giá trị của hàng chữ thành chữ viết hoa.  Visual Basic gọi là UpperCase property, chúng ta sẽ thấy một cặp property Let và Get như sau:

Private m_UpperCase as Boolean

Public Property Get UpperCase()As Boolean

       UpperCase = m_UpperCase

End Property

Public Property Let UpperCase(ByVal New_UpperCase As Boolean)

       m_UpperCase = New_UpperCase

       PropertyChanged "UpperCase"

End Property

Chương 4_ Phần 2_ Ðoạn 3 : Exposing Constituent Control Properties  

Trong quá trình tạo thành ActiveX Control, bạn phải phô bày Constituent Control (Một tổ hợp control không có bao gồm trong Visual basic.  Do đó, khi người xử dụng làm việc với ActiveX control của bạn, họ sẽ không thể làm việc được nếu bạn không trình bày cho cho những tổ hợp control riêng biệt đó.  Một cách đơn giản nhất là bạn làm properties (đặt tính hay tính chất của bộ phận) sẳn sàng trong UserControl object, cái control mà bạn để trong ứng dụng.  Thí dụ như bạn muốn làm một control trong đó chứa đựng Label control và Textbox control, hãy xử dụng property procedure để đưa các control đó vào trong UserControl object.  Sau đây là thí dụ về một Caption property của Label control, nó là một tổ hợp control trong UserControl object:

Public Property Get Caption()As String

       Caption = lblName.Caption

End Property

 

Public Property Let Caption(ByVal NewCaption As String)

       lblName.Caption = NewCaption

       PropertyChanged "Caption"

End Property

 

Lưu ý là có một số property có cùng tên, chẳng hạn như Width, các bạn phải xác định một tên khác để khỏi lầm lẩn.  Thí dụ sau đây là làm sao để thêm vào Control một tính chất (propperty) LastNameWidth được cột với Width property trong tổ hợp Control là txtLastName :

Public Property Get LastNameWidth()As Integer

       LastNameWidth = txtLastName.Width

End Property

 

Public Property Let LastNameWidth(ByVal NewLastNameWidth As Integer)

       txtLastName.Width = NewLastNameWidth

       PropertyChanged "LastNameWidth"

End Property

 

Ðồng thời các bạn cũng có thể tạo mối quan hệ giửa property với nhiều tổ hợp control khác.  Thí dụ như ForeColor property có thể liên hệ với một tổ hợp control đa dạng như sau :

Public Property Get ForeColor() As OLE_COLOR

       ForeColor = UserControl.ForeColor

End Property

 

Public Property Let ForeColor(ByVal New_ForeColor As OLE_COLOR)

       Dim ctl As Object

       UserControl.ForeColor = New_ForeColor

       For Each ctl In Controls

              If(TypeOf ctl Is Label) _

              Or (TypeOf ctl Is CheckBox) Then

                     ctl.ForeColor = New_ForeColor

              End If

       Next

       PropertyChanged "ForeColor"

End Property

 

Chương 4_ Phần 2_ Ðoạn 4 : Adding methods

 

          Method là một Sub hay là Function procedure được trình bày bởi một bộ phận (object).  Các bạn có thể làm cho mình một method riêng biệt dựa trên những methods có sẳn trong tổ hợp control (constituent control).

          Thành lập một method : Bạn có thể thành lập một method bằng cách nhận định Public Sub hoặc là Function procedure.  Tương tự như thành lập method trong chương 3, xử dụng Class Module.  Sau đây là thí dụ căn bản làm sao để có một method cho một ActiveX control.  Các bạn làm một procedure là stop và start button cho một ActiveX control.

1.      Thêm code vào trong control để tạo mối liên hệ giửa design-time và run-time.

2.      Thêm vào command để gọi method đó.

    a)     Lúc design-time

    b)     Lúc run-time

3.      Chạy thử ứng dụng

 

    Cũng như cách trên, các bạn có thể thêm methods vào trong các tổ hợp control khác.  Thí dụ như để thêm một SetFocus method vào trong tổ hợp textbox control, textbox txtEmpID là một tổ hợp control vì nó liên hệ với kho nhu liệu (Database)

 

Public Sub IDFocus()

          txtEmpID.SetFocus

End Sub

 

 

(...còn tiếp...mời Quí vị xem trang kế tiếp ...)