Bài giảng môn Tin học đối tượng - Chương 9: Định nghĩa thủ tục & sử dụng

pdf 12 trang phuongnguyen 2730
Bạn đang xem tài liệu "Bài giảng môn Tin học đối tượng - Chương 9: Định nghĩa thủ tục & sử dụng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mon_tin_hoc_doi_tuong_chuong_9_dinh_nghia_thu_tuc.pdf

Nội dung text: Bài giảng môn Tin học đối tượng - Chương 9: Định nghĩa thủ tục & sử dụng

  1. Lệnh gọi thủ tục (tt) ‰ Sau khi đã định nghĩa thủ tục, ta có thể dùng (gọi) nó. Thủ tục chỉ được thi hành khi người ta gọi nó bằng lệnh gọi thủ tục. Cú pháp của lệnh gọi như sau : [Call] name [arglist] Ví dụ : giả sử ta đã định nghĩa (viết) 1 thủ tục sau đây : Private Sub Update_Display(d As Byte) nó cho phép hiệu chỉnh giá trị Display sau khi người dùng ấn thêm ký số d. Như vậy khi người dùng ấn thêm ký số 5, ta sẽ thực hiện gọi thủ tục như sau : Call Update_Display (5) hay : Update_Display (5) Lưu ý : Trong trường hợp gọi thủ tục không có bất kỳ tham số nào ta nên dùng thêm từ khóa "Call' để chương trình trong sáng, dễ đọc. Môn : Tin học Khoa Công nghệ Thông tin Chương 8 : Các lệnh thực thi VB Trường ĐH Bách Khoa Tp.HCM Slide 235 MÔN TIN HỌC Chương 9 ĐỊNH NGHĨA THỦ TỤC & SỬ DỤNG 9.1 Thủ tục & tầm vực sử dụng thủ tục 9.2 Cú pháp định nghĩa hàm. 9.3 Cú pháp định nghĩa thủ tục 9.4 Gọi thủ tục 9.5 Cơ chế truyền tham số 9.6 Các thủ tục định nghĩa sẵn Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 236 118
  2. Nhắclạicấutrúctổ chức1 chương trình ‰ Mộtchương trình thường cung cấp nhiềuchứcnăng cho người dùng ⇒ Chương trình thường là 1 hệ thống phứctạp. Để dễ quảnlývàxâydựng chương trình, ngườitathường chia nó ra nhiều đơnvị nhỏ hơn. Hiệncó2 phương pháp chia nhỏ chương trình : ƒ phương pháp có cấutrúc: chương trình đượcchianhỏ thành nhiều module chứcnăng, mỗi module chứa nhiều điểmnhập (entry), mỗi điểmnhập cung cấp1 dịch vụ (chứcnăng) rõ ràng, đơngiản nào đó. Ta gọimỗi điểmnhậplàthủ tụcthựchiệnchứcnăng tương ứng. ƒ phương pháp hướng đốitượng : chương trình đượcchianhỏ thành nhiều đốitượng, mỗi đốitượng chứa nhiều điểmnhập (entry), mỗi điểmnhập cung cấp1 dịch vụ (chứcnăng) rõ ràng, đơngiản nào đó. Ta gọimỗi điểmnhậplàthủ tụcthựchiệnchứcnăng tương ứng. ‰ Tóm lại, dù dùng phương pháp chia nhỏ chương trình nào thì đơnvị chức năng nhỏ nhấtmàngườilậptrìnhcóthể xây dựng và dùng (gọi) lại nhiều lần trong chương trình là thủ tục. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 237 9.1 Phân loạithủ tụctrongVB ‰ Nếutaphântíchchương trình theo cấutrúcthìchương trình VB là tậpcác standard module, trong mỗi module ta có thểđịnh nghĩa n thủ tục khác nhau thuộc 1 trong 2 dạng : ƒ thủ tục-Sub: 1 đoạnlệnh thực thi VB để thựchiện1 chứcnăng rõ ràng, đơngiảnnhưng không trả về giá trị kèm theo tên thủ tục. ƒ hàm - Function : 1 đoạnlệnh thực thi VB để thựchiện1 chứcnăng rõ ràng, đơngiảnvàtrả về giá trị kèm theo tên hàm. ‰ Nếutaphântíchchương trình theo hướng đốitượng thì chương trình VB là tập các form hay class module, trong mỗi module ta có thểđịnh nghĩan thủ tục khác nhau thuộc 1 trong 3 dạng : ƒ thủ tục-Sub: 1 đoạnlệnh thực thi VB để thựchiện1 chứcnăng rõ ràng, đơngiảnnhưng không trả về giá trị kèm theo tên thủ tục. ƒ hàm - Function : 1 đoạnlệnh thực thi VB để thựchiện1 chứcnăng rõ ràng, đơngiảnvàtrả về giá trị kèm theo tên hàm. ƒ truy xuấtthuộc tính - Property : 1 đoạnlệnh thực thi VB để đọc/ghi 1 thuộc tính tương ứng của đốitượng. Có 3 thủ tụcloại này là Get, Set và Let. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 238 119
  3. Tầmvựcsử dụng thủ tục trong VB ‰ Trong mỗi standard module, ta có thể xác định tầmvựcsử dụng củatừng thủ tục: ƒ cụcbộ trong module : dùng từ khóa Private trong lệnh định nghĩathủ tục. ƒ toàn cục trong chương trình : dùng từ khóa Public trong lệnh định nghĩathủ tục. ‰ Trong mỗi form hay class module, ta có thể xác định tầmvựcsử dụng củatừng thủ tục: ƒ cụcbộ trong module (đốitượng) : dùng từ khóa Private trong lệnh định nghĩa thủ tục. ƒ cụcbộ trong Project : dùng từ khóa Friend trong lệnh định nghĩathủ tục. ƒ công cộng (ai dùng cũng được) : dùng từ khóa Public trong lệnh định nghĩa thủ tục. Các thủ tụccôngcộng của đốitượng đượcgọi là method để phân biệtvới Sub/Function. ƒ Về nguyên tắc, các thủ tục Property Get, Set và Let đềuphảicótầmvực công cộng (dùng từ khóa Public). Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 239 9.2 Cú pháp định nghĩa hàm - Function ‰ Cú pháp để định nghĩa 1 hàm : [Public | Private | Friend] [Static] Function name [(arglist)] [As type] [statements] [name = expression] [Exit Function] [statements] [name = expression] End Function ‰ Dùng từ khóa Public để định nghĩa hàm có tầmvực toàn cục, nghĩalà bấtkỳ lệnh nào củachương trình đềucóthể gọi hàm Public. ‰ Dùng từ khóa Friend để định nghĩa method thuộc 1 class module nhưng chỉ có tầmvựccụcbộ trong Project, nghĩalàchỉ có các lệnh trong cùng Project mớicóthể gởi thông điệp đến hàm Friend của đốitượng đó, còn các lệnh ở ngoài Project thì không thấy hàm Friend của đốitượng này. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 240 120
  4. Cú pháp định nghĩa hàm - Function (tt) ‰ Dùng từ khóa Private để định nghĩa hàm có tầmvựccụcbộ trong module, nghĩalàchỉ có các lệnh trong cùng module mớicóthể gọi hàm Private trong module tương ứng. ‰ Dùng từ khóa Static để định nghĩa các biếncụcbộ trong hàm đềulà Static, nghĩalàgiátrị của chúng vẫntồntại qua các lầngọi khác nhau đếnhàmnày. ‰ [statements] là danh sách các lệnh định nghĩabiến, hằng, kiểucụcbộ trong function và các lệnh thực thi miêu tả chính xác chứcnăng của hàm. ‰ Lệnh gán name = expression cho phép gán giá trị trả về cho lệnh gọi hàm. ‰ Lệnh Exit Function cho phép trả ngay điềukhiểnvề lệnh gọi hàm này (thay vì thựcthitiếpcáclệnh còn lạicủa hàm). Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 241 Cú pháp định nghĩa hàm - Function (tt) ‰ arglist là danh sách các tham số hình thức, mỗi tham số đượccách nhau bởidấu ',' và được định nghĩa theo cú pháp như sau : [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [=defaultvalue] ‰ Dùng từ khóa Optional để khai báo rằng tham số tương ứng là nhiệmý trong lúc gọi hàm : truyền hay không cũng được. Trong trường hợp này ta nên dùng thêm thành phần[= defaultvalue] để xác định giá trị cần truyền nhiệmý. ‰ Dùng từ khóa ByRef để khai báo việctruyền tham số bằng tham khảo, đây là chếđộtruyềnthamsố nhiệmý. Ngượclại dùng từ khóa ByVal để khai báo cơ chế truyền tham số bằng giá trị. ‰ Chỉ có thể dùng từ khóa ParamArray cho tham số cuối trong danh sách tham số, tham số này cho phép ta truyền bao nhiêu tham số cụ thể cũng được. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 242 121
  5. Thí dụđịnh nghĩahàm ‰ Đoạn code sau định nghĩa hàm tính n! giai thừa theo giảithuật đệ qui : Public Function giaithua(ByVal n As Long) As Long If n 1 thì tính theo công thức n! = n * (n-1)! giaithua = n * giaithua(n - 1) End Function Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 243 9.3 Cú pháp định nghĩathủ tục-Sub ‰ Cú pháp để định nghĩa 1 thủ tục Sub : [Private | Public | Friend] [Static] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub ‰ Ý nghĩacủacáctừ khóa Public, Private, Friend, Static cũng như các thành phần arglist, Exit Sub, statements giống y như trong việc định nghĩa hàm mà chúng ta đãgiớithiệu ở những slide trước. ‰ Sự khác biệtgiữa hàm và thủ tục là hàm luôn trả về giá trị kếthợpvới tên hàm, còn thủ tục thì không trả về trị kếthợpvớitênthủ tục(nhưng nó vẫncóthể trả kếtquả về thông qua các tham số truyềnbằng tham khảo). ‰ Nếu quan sát kỹ, ta thấy các hàm xử lý sự kiệnchocácđốitượng giao diện đềulàSub, chứ không phải là Function, do đótừđây ta dùng đoạn câu "thủ tụcxử lý sự kiện" thay cho "hàm xử lý sự kiện". Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 244 122
  6. Cú pháp định nghĩa method Get thuộctínhđốitượng ‰ Cú pháp để định nghĩa 1 method Get : [Public | Private | Friend] [Static] Property Get name [(arglist)] [As type] [statements] [name = expression] [Exit Property] [statements] [name = expression] End Property ‰ Ý nghĩacủacáctừ khóa Public, Private, Friend, Static cũng như các thành phần arglist, Exit Property, statements, [name = expression] giống y như trong lệnh định nghĩa hàm mà chúng ta đãgiớithiệu ở những slide trước. ‰ Method Get cho phép bên ngoài có thểđọcgiátrị của 1 thuộc tính bên trong đốitượng nhưng dướisự kiểm soát của đốitượng đó. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 245 Cú pháp định nghĩa method Let thuộctínhđốitượng ‰ Cú pháp để định nghĩa 1 method Let : [Public | Private | Friend] [Static] Property Let name ([arglist,] value) [statements] [Exit Property] [statements] End Property ‰ Ý nghĩacủacáctừ khóa Public, Private, Friend, Static cũng như các thành phần arglist, Exit Property, statements giống y như trong lệnh định nghĩa hàm mà chúng ta đãgiớithiệu ở những slide trước. ‰ Method Let cho phép bên ngoài có thể gán giá trị mới cho 1 thuộc tính bên trong đốitượng nhưng dướisự kiểm soát của đốitượng đó. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 246 123
  7. Cú pháp định nghĩa method Set thuộctínhđốitượng ‰ Cú pháp để định nghĩa 1 method Set : [Public | Private | Friend] [Static] Property Set name ([arglist,] reference) [statements] [Exit Property] [statements] End Property ‰ ý nghĩacủacáctừ khóa Public, Private, Friend, Static cũng như các thành phần arglist, Exit Property, statements giống y như trong lệnh định nghĩa hàm mà chúng ta đãgiớithiệu ở những slide trước. ‰ Method Set cho phép bên ngoài có thể gán tham khảo cho 1 thuộc tính bên trong đốitượng nhưng dướisự kiểm soát của đốitượng đó. ‰ Sự khác biệtgiữa method Let và Set là Let gán giá trị thuộc1 kiểucổ điển, còn Set gán tham khảo vào 1 thuộctínhcókiểulàclass đốitượng. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 247 9.4 Gọithủ tục ‰ Sau khi thủ tục đã được định nghĩa, ta có thể sử dụng (gọi) nó nhờ lệnh gọithủ tục. Cú pháp gọithủ tục đã đượcmiêutả trong slide 216 (chương 8). Do Function là dạng thủ tụccótrả về kếtquả kếthợpvới tên hàm nên lệnh gọi hàm thường được dùng trong 1 biểuthức(lệnh gọi hàm là biểuthứccơ bản để cấu thành biểuthứcphứctạphơn). ‰ Thí dụ, giả sử ta đã định nghĩa hàm tính n! tên là giaithua(n) thì ta có thể gọinónhư sau : n = 8 MsgBox (n & "! = " & giaithua(n)) ‰ Thí dụ, giả sử ta đã định nghĩathủ tục hoán vị 2 số nguyên tên là Hoanvi(a,b) thì ta có thể gọinónhư sau : n = 8 m = 4 Call Hoanvi (n,m) ' hoặc Hoanvi n,m ' Lúc này n = 8 và m = 4 Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 248 124
  8. 9.5 Cơ chế truyềnthamsố ‰ Các tham số trong lệnh định nghĩathủ tục đượcgọi là tham số hình thức. Các tham số (thường là biểuthức) trong lệnh gọithủ tục đượcgọi là tham số thực. Nguyên tắcgọithủ tụclà: ƒ số lượng các tham số thựcphảibằng số lượng các tham số hình thức. ƒ và kiểucủatừng tham số thực trong lệnh gọithủ tụcphải trùng (hay tương thích) vớikiểucủa tham số hình thứctương ứng trong lệnh định nghĩathủ tục. ‰ Lệnh gọithủ tụcsẽ truyền tham số thực trong lệnh gọichothủ tụcrồi khởi động thủ tụcchạy để xử lý tham số thựcvừanhận được. Theo thời gian, thủ tụcsẽ đượcgọi nhiềulần, mỗilầnvới danh sách tham số thực cụ thể. ‰ Có 2 cơ chế truyềnthamsố cho thủ tụctạithời điểmgọithủ tục : truyền giá trị (nội dung của tham số) hay truyền tham khảo(địachỉ -vị trí bộ nhớ của tham số). Mỗicơ chế truyền tham số có tính chất riêng mà ta sẽ trình bày kỹ trong các slide kế tiếp: Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 249 Cơ chế truyềnthamsố (tt) ‰ Dùng từ khóa ByVal kếthợpvới tham số hình thức để khai báo nó được truyềnbằng giá trị. Khi gọithủ tục, giá trị củathamsố thực sẽ được truyềnchothủ tụccầnthựcthi. Nhờ cách truyền tham số này mà thủ tục cầnthựcthisẽ không thể truy xuấtdữ liệucủathủ tụcgọi. Tuy nhiên cách truyềnbằng giá trị chỉ thích hợp cho các tham số IN (truyềntừ phầntử gọi đếnthủ tụccầngọi) có kiểuvôhướng (scalar). ‰ Để truyềnhiệuquả tham số có nội dung chiếmnhiềuô nhớ hay để nhận kếtquả ta sẽ phải dùng cơ chế truyềnbằng tham khảo(địachỉ). Để định nghĩathamsố hình thức đượctruyềnbằng tham khảo, ta dùng từ khóa ByRef kếthợpvới tham số hình thức đó. Khi gọithủ tục, địachỉ của tham số thực sẽ đượctruyềnchothủ tụccầnthựcthi. Với đặc điểm này, tham số thựcphảilàbiếnchứ không thể là biểuthức. ‰ Lưuý rằng nếu ta không dùng từ khóa ByRef hay ByVal kếthợpvới tham số hình thức thì default nó đượctruyềnbằng tham khảo. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 250 125
  9. Cơ chế truyềnthamsố (tt) // version truyềnbằng giá trị Private Sub Hoanvi1(ByVal x As Integer, ByVal y As Integer) Dim tmp As Integer tmp = x x = y y = tmp End Sub // version truyềnbằng tham khảo Private Sub Hoanvi2(ByRef x As Integer, ByRef y As Integer) Dim tmp As Integer tmp = x x = y y = tmp End Sub // version truyềnbằng tham khảo Private Sub Hoanvi3(x As Integer, y As Integer) Dim tmp As Integer tmp = x x = y y = tmp End Sub Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 251 Cơ chế truyềnthamsố (tt) Hãy khảosátkỹ 3 thủ tục hoán vị dữ liệu trong slide trước. Bây giờ hãy chú ý tớiviệcsử dụng chúng và kếtquảđạt được: Dim intN As Integer Dim intM As Integer intN = 4 intM = 8 Call Hoanvi1(intN, intM) ' kếtquả intN = 4 và intM = 8 (không đổi) Call Hoanvi2(intN, intM) ' kếtquả intN = 8 và intM = 4 (đã hoán vị được) Call Hoanvi3(intN, intM) ' kếtquả intN = 4 và intM = 8 (đã hoán vị được) Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 252 126
  10. 9.6 Các thủ tục định sẵncủaVB ‰ Về nguyên tắc, ngườilập trình phải định nghĩathủ tục (Sub, Function, Property) trướckhicóthể sử dụng lại(gọi) nó. Tuy nhiên, VB đã định nghĩarất nhiềuthủ tụcdạng Sub, Function để thựchiệncácchứcnăng rấtphổ biến, ngườilậptrìnhcóthể gọi chúng bấtcứ khi nào cầnthiết. Ta gọicácthủ tục này là các thủ tục định sẵncủa VB. ‰ Nếuchưa đòi hỏi độ chính xác cao, ngườitacòngọicácthủ tục định sẵncủa VB là các lệnh thựcthi. ‰ Sau đây ta chúng ta hãy làm quen với1 số thủ tụcthường dùng. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 253 Hàm hiểnthị form thông báo ‰ Cú pháp MsgBox(prompt [, buttons] [, title] [, helpfile, context]) trong đó: ƒ prompt là biểuthứcchuỗimiêutả thông báo cầnhiểnthị. ƒ buttons là biểuthứcsố miêu tả số lượng và loại button đượchiểnthị trong thông báo, nhiệm ý là 0 nghĩalàchỉ có button Ok đượchiểnthị. ƒ title là biểuthứcchuỗimiêutả title bar của form thông báo. ƒ helpfile là biểuthứcchuỗimiêutảđường dẫn file Help được dùng với form thông báo (theo cơ chế context-sensitive Help). ƒ context là biểuthứcsố miêu tả chỉ số của "topic" cần dùng trong file Help ‰ Thường để gọidễ dàng hàm MsgBox, ta chỉ cầnmiêutả tham số prompt bắtbuộc. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 254 127
  11. Hàm hiểnthị form nhậpliệu(dạng chuỗi) ‰ Cú pháp InputBox (prompt [,title] [,default] [,xpos] [,ypos] [,helpfile,context]) trong đó: ƒ prompt, title, helpfile, context là các tham số với ý nghĩay như trong hàm MsgBox. ƒ xpos, ypos là biểuthứcsố miêu tả tọa độ (x,y) của điểm trên trái của form thông báo trong màn hình. Nếu không được khai báo, form thông báo sẽ đượcchỉnh vị trí tựđộng (giữa màn hình). ƒ default là biểuthứcchuỗimiêutả giá trị default củachuỗi đượcnhập. ‰ Thường để gọidễ dàng hàm InputBox, ta chỉ cầnmiêutả tham số prompt bắtbuộc. Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 255 Hàm chuyển đổikiểu ‰ VB cung cấp các hàm sau để ta có thể chuyểngiátrị từ kiểu nào đóvề kiểuxácđịnh : CBool (expression) : chuyểntrị củabiểuthứcvề kiểu Boolean CByte (expression) : chuyểntrị củabiểuthứcvề kiểuByte CCur (expression) : chuyểntrị củabiểuthứcvề kiểu Currency CDate (expression) : chuyểntrị củabiểuthứcvề kiểuDate CDbl (expression) : chuyểntrị củabiểuthứcvề kiểu Double CDec (expression) : chuyểntrị củabiểuthứcvề kiểu Decimal CInt (expression) : chuyểntrị củabiểuthứcvề kiểu Integer CLng (expression) : chuyểntrị củabiểuthứcvề kiểu Long CSng (expression) : chuyểntrị củabiểuthứcvề kiểu Single CStr (expression) : chuyểntrị củabiểuthứcvề kiểuString CVar (expression) : chuyểntrị củabiểuthứcvề kiểu Variant Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 256 128
  12. Các hàm thư viện liên kết động ‰ Trong code VB, ngoài việcgọicácthủ tục được định nghĩa trong Project và các thủ tục định sẵn, ngườilậptrìnhcòncóthể gọi các hàm trong các thư viện liên kết động. ‰ 1 thư viện liên kết động có dạng *.dll thường đượcxâydựng bằng ngôn ngữ VC++ và chứa 1 danh sách các hàm dịch vụ. Khi chương trình VB gọi1 hàm trong file thư viện DLL, file đượcnạpvàobộ nhớ và hàm được liên kếtvàovùng nhớ củachương trình để chươngtrìnhcóthể gọi được hàm cầngọi. Các hàm thư việnDLL đượcsử dụng chung cho mọiphầnmềm đang chạy, nghĩalàchỉ có 1 bản (copy) củahàmthư viện DLL trong bộ nhớ máy tính để phụcvụ cho mọi ứng dụng gọi nó. ‰ Ta có thể coi Windows như 1 thư việnphầnmềm DLL lớn, thư viện này cung cấprất nhiều hàm dịch vụ khác nhau, ngườitagọicáchàmnàylàcáchàmAPI (Application Programming Interface). Chương trình VB có thể gọibấtkỳ hàm nào trong thư việnnàytheocơ chế liên kết động nhưđã trình bày ở trên. ‰ Trước khi 1 hàm DLL được dùng trong module VB nào đó, ta cần khai báo đặc tả hàm DLL này nhờ lệnh Declare của VB với cú pháp được trình bày trong slide 153 (chương 6). Môn : Tin học Khoa Công nghệ Thông tin Chương 9 : Định nghĩathủ tục& sử dụng Trường ĐH Bách Khoa Tp.HCM Slide 257 MÔN TIN HỌC Chương 10 TƯƠNG TÁC GIỮA NGƯỜI DÙNG & CHƯƠNG TRÌNH 10.1 Tổng quát về tương tác giữa người dùng & chương trình 10.2 Giao tiêp với b2n phím. 10.3 Giao tiếp với chuột 10.4 Vẽ văn bản và đồ họa lên đối tượng giao diện 10.5 Vấn đề in ấn trong VB Môn : Tin học Khoa Công nghệ Thông tin Chương 10: Tương tác giữangười dùng & chương trình Trường ĐH Bách Khoa Tp.HCM Slide 258 129