Active X Control là một object trong ứng dụng, được viết dưới dạng *.ocx và bộ phận này đặt trong form và nối liền với những ứng dụng khác như Visual basic application, Microsoft Office documents (Word, Exel.), Web pages trình bày bởi Internet Explorer. Hãy xem khi các bạn xử dụng ActiveX Control, bạn sẽ có những lợi ích gì ?
Activex Controls là bộ phận được xử dụng nhiều lần, bao gồm visual elements và code.
Control Classes : Controls được hoán chuyển thành file dưới dạng *.ocx và các bạn sẽ đặt *.ocx file này vào trong form của ứng dụng. Bước này chúng ta gọi là design-time instance, khi người xử dụng cho form này chạy thì bộ phận ActiveX sẽ hoạt động, bước này gọi là run-time instance. Sau đây là hình ảnh trình bày về Control class và những bộ phận có liên quan với nó
8 trang |
Chia sẻ: ttlbattu | Lượt xem: 2757 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Visual Basic Bách Khoa - Chương 4: Xây dựng Active X Control, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 4 : Building ActiveX Control
ActiveX Control là một object trong ứng dụng, được viết dưới dạng *.ocx và bộ phận này đặt trong form và nối liền với những ứng dụng khác như Visual basic application, Microsoft Office documents (Word, Exel...), Web pages trình bày bởi Internet Explorer. Hãy xem khi các bạn xử dụng ActiveX Control, bạn sẽ có những lợi ích gì ?
Chương 4 _Phần 1 _Ðoạn 1 : Giới thiệu về Controls
Activex Controls là bộ phận được xử dụng nhiều lần, bao gồm visual elements và code.
Control Classes : Controls được hoán chuyển thành file dưới dạng *.ocx và các bạn sẽ đặt *.ocx file này vào trong form của ứng dụng. Bước này chúng ta gọi là design-time instance, khi người xử dụng cho form này chạy thì bộ phận ActiveX sẽ hoạt động, bước này gọi là run-time instance. Sau đây là hình ảnh trình bày về Control class và những bộ phận có liên quan với nó :
Project files : Source codes và property value được giử dưới dạng *.ctl (text file) và đi chung với *.frm (form file). Graphical elements được giử dưới dạng *.ctx và đi chung với *.frx . Tất cả các files trên không thể thiếu khi hoán chuyển thành dạng ứng dụng, vì thiếu chúng, các bạn sẽ gặp trở ngại. Sau đây là hình ảnh cho thấy một ActiveX bao gồm những gì ...
Chương 4_Phần 1_Ðoạn 2 : Cách tạo thành một ActiveX Control
Tuần tự chúng ta có 7 bước để tạo thành một ActiveX Control:
Mở một ActiveX Control project, giống như hình ảnh như sau
Thêm vào user interface cho nó, chẳng hạn như textbox, command button...
Xếp đặt properties và methods cho control đó.
Viết event procedure cho control đó, những tiết mục mà nó sẽ biểu diển, thí dụ như một clock control sẽ được xử dụng trên web page
Hoàn thành Events và các tiết mục sẳn sàng biểu diển khi gọi đến, thí dụ như tạo thành một clock control như sau
Tạo thành property pages cho Control
Ðiều chỉnh và chạy thử Control, bằng cách cho form mà có chứa control là start up project
Chương 4_Phần1 _Ðoạn 3 : Adding Constituent Controls
Một ActiveX Control bao gồm 2 bộ phận : UserControl object và Constituent Control.
UserControl Object : Ðậy là bộ phận căn bản để tạo thành ActiveX Control. UserControl Object gồm có code modules và visual designer như chúng ta đã nói ở phần trên. Khi chúng ta mở bộ phận UserControl object thì bộ phận này được trình bày trong Visual Designer Window. Các bạn cũng có thể xử dụng Visual Designer Window Property để thêm vào Constituent Control (Tổ hợp các control phụ trong ActiveX Control mà đã được đặt trong Form). Sau đây là hình ảnh cho thấy UserControl Visual Designer với các hàng code đi chung với nó :
Constituent Control : Nói cách khác là một instance của một bộ phận mà đã được đặt vào trong Form. Một khi mà bạn cho vào trong Form một ActiveX Control, thì cùng một lúc các instance của UserControl Object cũng được hình thành và hổ trợ cho nhau. Sau đây là hình ảnh cho thấy một UserControl Object cùng với các tổ hợp (constituent) của nó :
Khi các bạn xử dụng các ActiveX Control không có trong tiêu chuẩn của Visual Basic, các bạn cần phải có sự đồng ý của người làm ra ActiveX Control đó.
Chương 4_Phần 1_Ðoạn 4 : User Control events
ActiveX Control là bộ phận chạy trên Form hoặc là những thể loại chứa đựng Control khác như Frame...ngoại trừ OLE object...cho nên những events (tiết mục mà nó sẽ biểu diển hay nói cách khác là những công việc sẽ được tiến hành) có phần khác biệt với những control events đặt trên tiêu chuẩn *.exe form. Khi các bạn làm một Control cho ứng dụng của mình thì UserControl object sẽ làm việc như một bản sao (blueprint). Và bản sao này đặt vào trong Form thì instance của Control đó cũng đồng thời được dựng nên để mà hổ trợ cho nhau. Những việc đó làm xong rồi thì các tiết mục sẽ được biểu diển. Visual Basic xử dụng từ Event là từ ý nghĩa đó. Có phải là trước khi biểu diển các bạn phải chuẩn bị sân khấu hay không ? Có sân khấu rồi thì các diển viên đã sẳn sàng chưa ? Khi diển viên biểu diển thì âm thanh và ánh sáng đã sẳn sàng chưa ?...
Và trong UserControl event cũng tiến hành tương tự như vậy, control đã được đặt vào trong Form hay các Container khác hay chưa ? Instance của Control đó đã hình thành với các chức năng riêng biệt cho nó chưa? Kho nbu liệu đã sẳn sàng đáp ứng các tài liệu mà bạn muốn không ?...Một event quan trọng là initialize, nó kiểm duyệt ứng dụng của các bạn đã đáp ứng đúng các yêu cầu mà control sẽ làm cho các bạn hay chưa ? Chúng tôi sẽ trình bày cùng các bạn các event quan trọng trong UserControl sau đây :
User action
Type of Control instance
Events
Ðặt control vào trong Form
Design-time instance được hình thành
Initialize
InitProperties
Resize
Paint
Cho ứng dụng làm việc lúc Design-time
Design-time instance bị loại bỏ, run-time instance hình thành
WriteProperties
(if needed)
Terminate
Initialize
Resize
ReadProperties
Paint
Rời bỏ ứng dụng có chứa đựng Control trở về design mode
Run-time instance bị loại bỏ, design-time instance hình thành trở lại.
Terminate
Initialize
Resize
ReadProperties
Paint
Ðóng lại form mà form đó có chứa Control
Design-time instance bị loại bỏ
WriteProperties
(if needed)
Terminate
Hoán chuyển ứng dụng thành các dạng khác để có thể cho vay mượn
Run-time instance hình thành
Initialize
ReadProperties
Resize
Paint
Chương 4_Phần 1_Ðoạn 5 : Interacting with a Container Application
Bởi vì control object bản chất của nó là đa tính, đa dạng, cho nên các bạn không thể nào đoán trước được control mà bạn sắp sửa xử dụng sẽ nằm trong container nào ? và càng không thể biết control đó biến dạng lớn nhỏ cở nào...Do đó, các bạn khi sắp đặt control của mình vào bất cứ container nào, đều phải để ý tới bản chất chung quanh hay là ảnh hưởng chung quanh giửa container và control. Visual Basic 6 giúp bạn làm việc này bằng cách tạo sẳn cho bạn một object gọi là Ambient properties (đặc tính chung quanh giửa container và control phụ thuộc vào nhau như thế nào ?). Cở lớn nhỏ của control được Visual Basic điều khiển bởi Resize event (chúng ta đã nói qua ở phần trên).
Xử dụng Ambient Properties : Containers cung cấp cho Ambient Properties một số đặc tính để thích nghi với control, khi control đặt để vào trong container. Thí dụ như là BackColor property. Màu sắc của Control có phù hợp với container hay không ?...
AmbientChanged Event : Tiết mục này sẽ được biểu diển khi ambient property có biến đổi. Vì nó là một event, cho nên các bạn phải viết code và argument (phần mà event phụ trách) của nó là PropertyName để xác định propery nào thay đổi.
Ambient object : Bộ phận này giúp các bạn đọc được các giá trị của từng ambient property. Thí dụ như những hàng code sau đây cho chúng ta thấy cách xử dụng bộ phận Ambient trong AmbientChanged event :
Private Sub UserControl_AmbientChanged(PropertyName As String)
If PropertyName = "BackColor" Then
UserControl.BackColor = Ambient.BackColor
End If
End Sub
Xếp đặt cho property sẳn sàng hoạt động (Enabled Property) : Bạn phải làm 2 việc. Thứ nhất là viết code, dùng Get và Let procedure. Thứ nhì là đổi Enabled procedure ID thành Enabled. Thí dụ như những hàng code sau đây :
Public Property Get Enabled() As Boolean
Enabled = UserControl.Enabled
End Property
Public Property Let Enabled(ByVal NewValue As Boolean)
UserControl.Enabled = NewValue
PropertyChanged "Enabled"
End Property
Hãy theo các bước sau đây, các bạn có thể đổi Enabled procedure ID thành Enabled:
Trên Tools menu chọn Procedure Attributes.
Trong Name textbox, chọn Enabled procedure.
Bấm trên Advanced để mở rộng Procedure Attributes
Trong Procedure ID box, chọn Enabled thì code và user interface hòa hợp cùng nhau.
Chương 4_Phần 1_Ðoạn 6 : Setting Display Characteristics of your Control
Xếp đặt sao cho Control của bạn hiện hữu trong ứng dụng : Visual Basic làm dùm cho bạn một số properties và một event để giúp các bạn sắp xếp Control của mình xuất hiện trên khung ảnh máy vi tính khi ứng dụng tiến hành. Trong số đó có BackStyle property. BackStyle property có trong UserControl object dùng để sắp xếp sự xuất hiện của Control. Tuy nhiên, các bạn sẽ gặp một số trở ngại nếu các bạn có Control chứa đựng những vấn đề sau đây :
Control của bạn chứa nhiều constituent controls khác.
Control của bạn chứa bitmap với lượng màu cao.
Control của bạn có Label với TrueType font và lượng chử cao.
Một phương pháp hữu hiệu khác là dấu đi Control và khiến nó xuất hiện trong quá trình tiến hành ứng dụng. Thí dụ như Timer control...Và muốn dấu nó đi, chúng ta sẽ không lấy làm khó khăn khi đổi InvisibleAtRuntime trong UserControl Object.
Một điều quan trọng nữa là : làm sao trình bày Control của mình khi user xử dụng ? Không dể dàng vì màn ảnh máy vi tính không những có nhiều cở không chưa đủ, user họ còn xếp đặt màn ảnh của họ lớn nhỏ nữa để thích nghi với yêu cầu làm việc của họ???...Nhưng các bạn không cần lo !!!...Vì Visual Basic làm cho bạn một event gọi là Resize event. Khi user xử dụng ứng dụng của bạn, với Resize event, họ sẽ không gặp trở ngại và chúng ta đở phiền phức. Sau đây là thí dụ về Resize event :
Private Sub UserControl_Resize()
Const MinWide = 2000
If UserControl.ScaleWidth < MinWide Then
Text1.Width = 1000
Else
'Scale textbox to size of the UserControl.
Text1.Width = UserControl.ScaleWidth - Text1.Left
End If
End Sub
Chương 4_Phần 1_ Ðoạn 7 : Customizing your Control for the VB Environment
Sau khi các bạn đã tạo thành một ActiveX Control rồi thì để dể dàng cho những người khác trong nhóm viết ứng dụng xử dụng cái ActiveX control đó, có 2 chuyện chúng ta nên làm :
Thêm vào Control đó một About box nói khái quát về ActiveX control
Thêm vào một Bitmap để trình bày về ActiveX control đó trong Visual Basic toolbox
Thêm About box vào ActiveX Control : Ðó là một property trong Properties Window. About box này sẽ trình bày khái quát về Công ty, chuyên nghiệp, chức năng của ActiveX control...Dưới đây là hình ảnh cho thấy About box property:
Theo các bước sau đây, các bạn sẽ thêm About box property vào trong control một cách dể dàng:
1. Mở một form và đặt tên là form About
2. Viết một Public procedure như sau :
Public Sub ShowAbout()
frmAbout.Show vbModal
Unload frmAbout
Set frmAbout = Nothing
End Sub
3. Phân phối Pubilc procedure cho About box property :
a) Trên Tool menu, chọn procedure Attributes
b) Trong khung ảnh Procedure Attributes, chọn procedure mà nó trình bày About box, rồi bấm trên Advanced
c) Trong danh sách Procedure ID, chọn About box, rồi bấm trên OK
Dùng Bitmap tượng trưng cho ActiveX control trong toolbox : Trong UserControl object, có một property là ToolboxBitmap, property này giúp các bạn thêm bitmap vào trong toolbox. Khi hoàn thành, các bạn sẽ có một bitmap xuất hiện trong toolbox như sau: