Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
278,46 KB
Nội dung
MÔN TIN HỌC Chương ĐỊNH NGHĨA THỦ TỤC & SỬ DỤNG Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 218 Nhắc lại cấu trúc tổ chức chương trình Một chương trình thường cung cấp nhiều chức cho người dùng ⇒ Chương trình thường hệ thống phức tạp Để dễ quản lý xây dựng chương trình, người ta thường chia nhiều đơn vị nhỏ Hiện có phương pháp chia nhỏ chương trình : phương pháp có cấu trúc : chương trình chia nhỏ thành nhiều module chức năng, module chứa nhiều điểm nhập (entry), điểm nhập cung cấp dịch vụ (chức năng) rõ ràng, đơn giản Ta gọi điểm nhập thủ tục thực chức tương ứng phương pháp hướng đối tượng : chương trình chia nhỏ thành nhiều đối tượng, đối tượng chứa nhiều điểm nhập (entry), điểm nhập cung cấp dịch vụ (chức năng) rõ ràng, đơn giản Ta gọi điểm nhập thủ tục thực chức tương ứng Tóm lại, dù dùng phương pháp chia nhỏ chương trình đơn vị chức nhỏ mà người lập trình xây dựng dùng (gọi) lại nhiều lần chương trình thủ tục Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 219 Phân loại thủ tục VB Nếu ta phân tích chương trình theo cấu trúc chương trình VB tập standard module, module ta định nghĩa n thủ tục khác thuộc dạng : thủ tục - Sub : đoạn lệnh thực thi VB để thực chức rõ ràng, đơn giản không trả giá trị kèm theo tên thủ tục hàm - Function : đoạn lệnh thực thi VB để thực chức rõ ràng, đơn giản trả giá trị kèm theo tên hàm Nếu ta phân tích chương trình theo hướng đối tượng chương trình VB tập form hay class module, module ta định nghĩa n thủ tục khác thuộc dạng : thủ tục - Sub : đoạn lệnh thực thi VB để thực chức rõ ràng, đơn giản không trả giá trị kèm theo tên thủ tục hàm - Function : đoạn lệnh thực thi VB để thực chức rõ ràng, đơn giản trả giá trị kèm theo tên hàm truy xuất thuộc tính - Property : đoạn lệnh thực thi VB để đọc/ghi thuộc tính tương ứng đối tượng Có thủ tục loại Get, Set Let Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 220 Tầm vực sử dụng thủ tục VB Trong standard module, ta xác định tầm vực sử dụng thủ tục : cục module : dùng từ khóa Private lệnh định nghĩa thủ tục toàn cục chương trình : dùng từ khóa Public lệnh định nghĩa thủ tục Trong form hay class module, ta xác định tầm vực sử dụng thủ tục : cục module (đối tượng) : dùng từ khóa Private lệnh định nghĩa thủ tục cục Project : dùng từ khóa Friend lệnh định nghĩa thủ tục công cộng (ai dùng được) : dùng từ khóa Public lệnh định nghĩa thủ tục Các thủ tục công cộng đối tượng gọi method để phân biệt với Sub/Function Về nguyên tắc, thủ tục Property Get, Set Let phải có tầm vực cơng cộng (dùng từ khóa Public) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 221 Cú pháp định nghĩa hàm - Function Cú pháp để định nghĩa 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ầm vực tồn cục, nghĩa lệnh chương trình gọi hàm Public Dùng từ khóa Friend để định nghĩa method thuộc class module có tầm vực cục Project, nghĩa có lệnh Project gởi thơng điệp đến hàm Friend đối tượng đó, cịn lệnh ngồi Project khơng thấy hàm Friend đối tượng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 222 Cú pháp định nghĩa hàm - Function (tt) Dùng từ khóa Private để định nghĩa hàm có tầm vực cục module, nghĩa có lệnh module gọi hàm Private module tương ứng Dùng từ khóa Static để định nghĩa biến cục hàm Static, nghĩa giá trị chúng tồn qua lần gọi khác đến hàm [statements] danh sách lệnh định nghĩa biến, hằng, kiểu cục function lệnh thực thi miêu tả xác chức hàm Lệnh gán name = expression cho phép gán giá trị trả cho lệnh gọi hàm Lệnh Exit Function cho phép trả điều khiển lệnh gọi hàm (thay thực thi tiếp lệnh cịn lại hàm) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 223 Cú pháp định nghĩa hàm - Function (tt) arglist danh sách tham số hình thức, tham số cách dấu ',' định nghĩa theo cú pháp sau : [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [=defaultvalue] Dùng từ khóa Optional để khai báo tham số tương ứng nhiệm ý lúc gọi hàm : truyền hay không Trong trường hợp 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ệc truyền tham số tham khảo, chế độ truyền tham số nhiệm ý Ngược lại dùng từ khóa ByVal để khai báo chế truyền tham số giá trị Chỉ dùng từ khóa ParamArray cho tham số cuối danh sách tham số, tham số cho phép ta truyền tham số cụ thể Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 224 Khoa Công nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Thí dụ định nghĩa hàm Đoạn code sau định nghĩa hàm tính n! giai thừa theo giải thuật đệ qui : Public Function giaithua(ByVal n As Long) As Long If n AltDown = (Shift And vbAltMask) > CtrlDown = (Shift And vbCtrlMask) > If KeyCode = vbKeyF2 Then ' Display key combinations If ShiftDown And CtrlDown And AltDown Then Txt = "SHIFT+CTRL+ALT+F2." ElseIf ShiftDown And AltDown Then Txt = "SHIFT+ALT+F2." ElseIf ShiftDown And CtrlDown Then Txt = "SHIFT+CTRL+F2." ElseIf CtrlDown And AltDown Then Txt = "CTRL+ALT+F2." ElseIf ShiftDown Then Txt = "SHIFT+F2." ElseIf CtrlDown Then Txt = "CTRL+F2." ElseIf AltDown Then Txt = "ALT+F2." ElseIf SHIFT = Then Txt = "F2." End If Text1.Text = "You pressed " & Txt End If End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 247 15 Dùng thuộc tính KeyPreview Thường form giao diện (hộp thoại) chứa nhiều điều khiển bên ⇒ Khi thao tác phím điều khiển form kiện gởi cho điều khiển hay form ? Để qui định cụ thể điều này, VB cung cấp thuộc tính KeyPreview cho form, ta xem/hiệu chỉnh giá trị nhờ lệnh gán : FormName.KeyPreview [= boolean_expr] : FormName tên form liên quan boolean_expr biểu thức luận lý có giá trị True/False Khi ta gán trị luận lý vào thuộc tính form : trị = True form nhận xử lý biến cố trước tới điều khiển trị = False điều khiển nhận xử lý biến cố, cịn form khơng Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 248 Giao tiếp với chuột thơng qua đối tượng giao diện Tương tự bàn phím, người dùng thao tác chuột, VB tạo biến cố sau gởi cho phần tử 'focus' hành : MouseMove : kiện xảy người sử dụng di chuyển chuột MouseDown : kiện xảy người sử dụng ấn nút chuột (tùy loại chuột mà có 1/2/3 nút) MouseUp : kiện xảy người sử dụng thả nút vừa ấn Click : kiện xảy người sử dụng ấn thả chuột DblClick : kiện xảy người sử dụng 'Click' chuột liên tục hai lần thời gian đủ nhỏ (do người dùng qui định chung cho môi trường Windows) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 249 16 Thủ tục xử lý kiện MouseDown & MouseUp Thủ tục có dạng sau : Private Sub ControlName_MouseDown (Button As Integer, Shift As Integer, x As Single, y As Single) Private Sub ControlName_MouseUp (Button As Integer, Shift As Integer, x As Single, y As Single) : ControlName tên điều khiển nhận kiện MouseDown/MouseUp Button giá trị miêu tả trạng thái nút chuột ấn/thả (là dãy bit với bit cho nút trái, bit cho nút phải bit cho nút giữa) Shift giá trị miêu tả trạng thái ấn giữ phím điều khiển (là dãy bit với bit cho phím SHIFT, bit cho phím CTRL, bit cho phím ALT) x, y miêu tả tọa độ (x,y) vị trí chuột ấn/thả hình Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 250 Thủ tục xử lý kiện MouseMove Thủ tục có dạng sau : Private Sub ControlName_MouseMove (Button As Integer, Shift As Integer, x As Single, y As Single) : ControlName tên điều khiển nhận kiện MouseDown/MouseUp Button giá trị miêu tả trạng thái nút chuột ấn/thả (là dãy bit với bit cho nút trái, bit cho nút phải bit cho nút giữa) Shift giá trị miêu tả trạng thái ấn giữ phím điều khiển (là dãy bit với bit cho phím SHIFT, bit cho phím CTRL, bit cho phím ALT) x, y miêu tả tọa độ (x,y) vị trí chuột hành hình Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 251 17 Thủ tục xử lý kiện Click & DblClick Thủ tục có dạng sau : Private Sub ControlName_Click () Private Sub ControlName_DblClick () : ControlName tên điều khiển nhận kiện Click/DblClick Thủ tục xử lý kiện Click DblClick khơng có tham số để xác định vị trí ấn chuột hay nút chuột ấn Trong trường hợp cần thông tin phụ để xử lý chi li hơn, bạn nên dùng thủ tục xử lý kiện MouseDown hay MouseUp Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 252 Thí dụ thủ tục xử lý kiện chuột ' biến qui định trạng thái vẽ/không vẽ Dim PaintNow As Boolean 'Khởi động thông số vẽ Private Sub Form_Load () DrawWidth = 10 ' Use wider brush ForeColor = RGB(0, 0, 255) ' Set drawing color End Sub Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single) PaintNow = True ' Enable painting End Sub Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single) PaintNow = False ' Disable painting End Sub Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single) If PaintNow Then PSet (X, Y) ' Draw a point End If End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 253 18 Vẽ văn đồ họa lên đối tượng giao diện Các điều khiển thường chứa thuộc tính Text, Caption hay Value phép chương trình truy xuất (đọc/ghi) thuộc tính Tuy nhiên đối tượng giao diện phức hợp Form, PictureBox, Printer hiển thị nhiều nội dung chi tiết dạng văn bản, đồ họa hay ảnh bitmap Để hiển thị nội dung này, ta dùng method sau đối tượng tương ứng : Cls : xóa tồn nội dung hiển thị trước đối tượng Print : hiển thị hay nhiều chuỗi văn PSet : hiển thị điểm pixel với màu xác định Point : trả giá trị màu điểm pixel Line : vẽ đoạn thẳng hay hộp hình chữ nhật Circle : cẽ hình trịn, ellipse hay cung PaintPicture : vẽ ảnh bitmap có vào đối tượng Các slide lại diễn tả chi tiết method thí dụ việc dùng chúng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 254 Thủ tục Print : xuất chuỗi thiết bị xuất luận lý Thủ tục có dạng sau : [objName.]Print [Spc(n) | Tab(n) | expression charpos]* : objName tên đối tượng nhận kết vẽ (Printer, Form, PictureBox), default form hành Spc(n) qui định n ký tự trống in Tab(n) qui định n ký tự Tab in ra, Tab đưa pointer in qua phải thêm cột (vị trí cột qui định trước) expression biểu thức chuỗi hay số cần in charpos qui định vị trí in liệu Nếu charpos = ";" liệu in in liền Nếu charpos = "," thêm Tab trước in liệu kế Nếu khơng có charpos sau vị trí in dời xuống đầu dịng Thơng tin font chữ phải thiết lập trước thủ tục Print thơng qua thuộc tính sau đối tượng vẽ : FontName, FontSize, FontItalic, FontBold, Nên thiết lập thuộc tính CurrentX, CurrentY để qui định rõ ràng vị trí in lệnh Print Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 255 19 Thí dụ việc dùng thủ tục Print Đoạn code sau hiển thị hàng văn hộp thoại About Box chỉnh : Const strAbout1 = "Trinh MiniIE" Const strAbout2 = "Version 1.0" Const strAbout3 = "Written by : Nguyen Van Hiep" Private Sub Form_paint() ScaleMode = vbPixels ' Xác định vị trí để chuỗi strAbout1 nằm hộp thoại CurrentX = (ScaleWidth - TextWidth(strAbout1)) / CurrentY = 40 Print strAbout1 ' Xác định vị trí để chuỗi strAbout2 nằm hộp thoại CurrentX = (ScaleWidth - TextWidth(strAbout2)) / CurrentY = 60 Print strAbout2 ' Xác định vị trí để chuỗi strAbout3 nằm hộp thoại CurrentX = (ScaleWidth - TextWidth(strAbout3)) / CurrentY = 80 Print strAbout3 End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 256 Function Format : chỉnh dạng liệu trước in Ta thường muốn format liệu số hay ngày tháng theo yêu cầu riêng trước in VB hỗ trợ chức thơng qua hàm Format có cú pháp sau : Format (expression [,format[,firstdayofweek[,firstweekofyear]]]) : expression biểu thức số hay ngày tháng cần format format chuỗi ký tự định dạng hay tên gợi nhớ miêu tả chuỗi định dạng sẵn có VB firstdayofweek firstweekofyear qui định ngày đầu tuần tuần đầu năm cần cho định dạng liệu ngày tháng Một số ký tự thường dùng chuỗi định dạng : miêu tả vị trí ký số, số khơng hiển thị hết vùng định đạng thêm số trước sau giá trị số cho đầy vùng định dạng # miêu tả vị trí ký số, khơng in số trước sau giá trị số miêu tả vị trí dấu ngăn đơn vị (qui định locale Windows) , miêu tả vị trí dấu ngăn đơn vị ngàn (qui định locale) - + % ( ) space miêu tả chỉnh xác ký tự tương ứng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 257 20 Thí dụ hàm Format Thí dụ chỉnh dạng liệu số : Format syntax Result Format(8315.4, "00000.00") 08315.40 Format(8315.4, "#####.##") 8315.4 Format(8315.4, "##,##0.00") 8,315.40 Format(315.4,"$##0.00") $315.40 Thí dụ chỉnh dạng liệu ngày tháng : Format(Now, "m/d/yy") 1/27/93 Format(Now, "dddd, mmmm dd, yyyy") Wednesday, January 27, 1993 Format(Now, "d-mmm") 27-Jan Format(Now, "mmmm-yy") January-93 Format(Now, "hh:mm AM/PM") 07:18 AM Format(Now, "h:mm:ss a/p") 7:18:00 a Format(Now, "d-mmmm h:mm") 3-January 7:18 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 258 Thủ tục PSet : vẽ điểm thiết bị xuất luận lý Thủ tục có dạng sau : [objName.]PSet [Step] (x, y), [color] : objName tên đối tượng nhận kết vẽ (Printer, Form, PictureBox), default form hành (x,y) miêu tả tọa độ vị trí điểm cần vẽ thiết bị luận lý Nếu từ khóa Step dùng (x,y) tọa độ tương đối so với vị trí hành xác định thuộc tính CurrentX, CurrentY đối tượng vẽ Nếu từ khóa Step khơng dùng (x,y) tọa độ so với điểm gốc (0,0) color giá trị kiểu Long miêu tả màu vẽ theo hệ màu RGB (hoặc dùng hàm QBColor() dùng hàm RGB(r,g,b) để xác định màu vẽ) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 259 21 Thủ tục Line : vẽ đoạn thẳng/box thiết bị xuất luận lý Thủ tục có dạng sau : [objName.]Line [Step] (x1, y1) - [Step] (x2, y2), [color], [B][F] : objName tên đối tượng nhận kết vẽ (Printer, Form, PictureBox), default form hành (x1,y1) miêu tả tọa độ điểm đầu đoạn thẳng cần vẽ đối tượng nhận kết Nếu từ khóa Step dùng trước tọa độ (x1,y1) tọa độ tương đối so với vị trí hành xác định thuộc tính CurrentX, CurrentY đối tượng nhận kết Nếu từ khóa Step khơng dùng (x1,y1) tọa độ so với điểm gốc (0,0) (x2,y2) miêu tả tọa độ điểm cuối đoạn thẳng cần vẽ Ý nghĩa (x2,y2) giống (x1,y1) color giá trị kiểu Long miêu tả màu vẽ theo hệ màu RGB khơng có thơng số B thủ tục Line vẽ đoạn thẳng qua điểm có thơng số B, thủ tục Line vẽ hình chữ nhật mà đỉnh chéo xác định điểm Trong trường hợp có thơng số F, hình chữ nhật tơ màu với màu vẽ, ngược lại thuộc tính FillColor FillStyle đối tượng nhận kết qui định màu tô Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 260 Thủ tục Circle : vẽ hình trịn/ellipse thiết bị xuất luận lý Thủ tục có dạng sau : [objName.]Circle [Step] (x, y), radius, [color, start, end, aspect] : objName tên đối tượng nhận kết vẽ (Printer, Form, PictureBox), default form hành (x,y) miêu tả tọa độ tâm điểm vòng tròn/ellipse/arc cần vẽ đối tượng nhận kết Nếu từ khóa Step dùng trước tọa độ (x,y) (x,y) tọa độ tương đối so với vị trí hành xác định thuộc tính CurrentX, CurrentY đối tượng nhận kết Nếu từ khóa Step khơng dùng (x,y) tọa độ so với điểm (0,0) radius miêu tả bán kính color giá trị kiểu Long miêu tả màu vẽ theo hệ màu RGB start, end miêu tả góc xác định điểm đầu cuối arc theo đơn vị radian (default điểm đầu điểm cuối 2π) aspect miêu tả tỉ lệ kích thước dọc/ngang ellipse (default để vẽ vịng trịn) Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 261 22 Các thuộc tính qui định thơng số vẽ Khi ta gọi method vẽ PSet, Line, Circle, PaintPicture đối tượng vẽ (Printer, Form, PictureBox) method dùng thuộc tính sau để qui định thông số vẽ chúng : CurrentX, CurrentY miêu tả tọa độ điểm hành, dùng làm gốc tọa độ cho điểm vẽ có dùng từ khóa Step kèm theo điểm vẽ FillStyle, FillColor xác định mẫu tơ màu tơ phần tử có diện tích (box, circle) BackColor xác định màu đối tượng ForeColor xác định màu để hiển thị text hay vẽ biên phần tử (line, box, circle) DrawMode xác định cách thức vẽ (vbBlackness, vbWhiteness, vbInvert ) DrawStyle xác định mẫu vẽ đường vẽ (line, box, circle) DrawWidth xác định độ dày đường vẽ (line, box, circle) Ta đọc/hiệu chỉnh lại giá trị thuộc tính theo u cầu Mơn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 262 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Chi tiết thuộc tính qui định đơn vị tính kích thước Thuộc tính ScaleMode miêu tả đơn vị tính kích thước với qui định sau : Constant Setting Description vbUser vbPoints Indicates that one or more of the ScaleHeight, ScaleWidth, ScaleLeft, and ScaleTop properties are set to custom values (Default)Twip (1440 twips per logical inch; 567 twips per logical centimeter) Point (72 points per logical inch) vbTwips vbPixels Pixel (smallest unit of monitor or printer resolution) vbCharacters vbInches vbMillimeters vbCentimeters vbHimetric vbContainerPosition vbContainerSize 10 Character (horizontal = 120 twips per unit; vertical = 240 twips per unit) Inch Millimeter Centimeter HiMetric Units used by the control's container to determine the control's position Units used by the control's container to determine the control's size Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 263 23 Chi tiết thuộc tính miêu tả màu Mỗi màu chế độ TrueColor tổng hợp từ thành phần màu Red Green - Blue Trọng số thành phần màu miêu tả giá trị Byte (từ đến 255) Xác định màu xác định thành phần màu Các thuộc tính BackColor, ForeColor, FillColor có giá trị miêu tả màu dạng RGB với qui định sau : Color Red Value Green Value Blue Value Black 0 Blue 0 255 Green 255 Cyan 255 255 Red 255 0 Magenta 255 255 Yellow 255 255 White 255 255 255 Thí dụ ta viết lệnh gán : Form1.BackColor = RGB(0,0,0) để thiết lập màu form tên Form1 màu đen Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 264 Chi tiết thuộc tính miêu tả màu (tt) Nếu muốn dùng 16 màu QBasic (version Basic Microsoft chạy DOS), ta dùng hàm QBColor Bảng sau liệt kê 16 màu : Number Color Number Color Black Gray Blue Light Blue Green 10 Light Green Cyan 11 Light Cyan Red 12 Light Red Magenta 13 Light Magenta Yellow 14 Light Yellow White 15 Bright White Thí dụ ta viết lệnh gán : Form1.BackColor = QBColor(15) để thiết lập màu form tên Form1 màu trắng sáng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 265 24 Chi tiết thuộc tính mẫu tơ Thuộc tính FillStyle có giá trị miêu tả mẫu tô với qui định sau : Constant Setting Description VbFSSolid Solid VbFSTransparent (Default) Transparent VbHorizontalLine Horizontal Line VbVerticalLine Vertical Line VbUpwardDiagonal Upward Diagonal VbDownwardDiagonal Downward Diagonal VbCross Cross VbDiagonalCross Diagonal Cross Thí dụ ta viết lệnh gán : Form1.FillStyle = VbVerticalLine để thiết lập mẫu tô phần tử form đường thẳng đứng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 266 Chi tiết thuộc tính mẫu vẽ đường viền Thuộc tính DrawStyle có giá trị miêu tả mẫu vẽ đường viền với qui định sau : Constant Setting Description VbSolid (Default) Solid VbDash Dash VbDot Dot VbDashDot Dash-Dot VbDashDotDot Dash-Dot-Dot VbInvisible Transparent VbInsideSolid Inside Solid Thí dụ ta viết lệnh gán : Form1.DrawStyle = VbDash để thiết lập mẫu vẽ đường viền phần tử form đường gạch-gạch dài Lưu ý thuộc tính DrawStyle có nghĩa theo bảng ta thiết lập thuộc tính DrawWidth = Trong trường hợp DrawWidth > DrawStyle tạo nét vẽ liên tục Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 267 25 Function PaintPicture : vẽ ảnh bitmap Mỗi đối tượng vẽ có method PaintPicture cho phép ta vẽ ảnh bitmap Cú pháp sau : [objName.]PaintPicture picture, dx, dy, dw, dh, sx, sy, sw, sh, opcode : objName tên Form, PictureBox hay Printer, khơng có form hành vẽ picture ảnh bitmap gốc dùng để vẽ dx, dy toạ độ đỉnh trái vùng chứa ảnh vẽ đối tượng vẽ dw, dh độ rộng, độ cao vùng chứa ảnh vẽ đối tượng vẽ sx, sy toạ độ đỉnh trái vùng chứa ảnh ảnh gốc sw, sh độ rộng, độ cao vùng chứa ảnh ảnh gốc opcode miêu tả hành vi đưa ảnh gốc vào đối tượng vẽ, ta thường dùng mã sau : vbSrcCopy : copy ảnh gốc vào vị trí qui định đối tượng vẽ vbSrcPaint : Or pixel ảnh gốc với bit đối tượng vẽ tương ứng vbSrcInvert : Xor pixel ảnh gốc với bit đối tượng vẽ tương ứng vbSrcAnd : And pixel ảnh gốc với bit đối tượng vẽ tương ứng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 268 Thí dụ việc dùng function PaintPicture Tạo form trống, 'add' điều khiển PictureBox chứa ảnh gốc vào form, set thuộc tính Visible = False, thuộc tính Picture = đườn dẫn file ảnh, viết đoạn code sau cho form : Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Form_Load() AutoRedraw = False ' để VB gọi hàm xử lý biến cố Paint End Sub Private Sub Form_Paint() ' hiển thị ảnh chạy từ từ sang phải Dim x As Integer, y As Integer ScaleMode = vbPixels ' đơn vị tính form pixel Picture1.ScaleMode = vbPixels ' đơn vị tính ảnh gốc pixel x=0 ' thiết lập vị trí đầu ảnh y = 50 While True PaintPicture Picture1, x, y, 60, 60, 0, 0, , , vbMergePaint ' vẽ ảnh vị trí x,y DoEvents ' cho phép ứng dụng đáp ứng kiện Sleep (10) ' ngủ chờ 10ms Line (x, y)-(x + 60, y + 60), BackColor, BF ' xóa ảnh vừa vẽ x=x+4 ' di chuyển vị trí bên phải pixel If (x - 60 > ScaleWidth) Then x = ' ảnh đạt lề phải set trái Wend End Sub Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 269 26 Vấn đề in ấn VB Trong chương trình VB, ta in thông tin máy in cách dùng cách sau : dùng method vẽ văn bản, đồ họa ảnh bitmap lên form theo ý muốn gọi method PrintForm để in form kết máy in Đây cách dễ dàng để kiểm tra kết trước in giấy thực sự, kết có độ phân giải khơng cao (vì trùng với độ phân giải hình) dùng method vẽ văn bản, đồ họa ảnh bitmap theo ý muốn trực tiếp lên đối tượng Printer method điều khiển NewPage & EndDoc để xuất kết trực tiếp máy in default Windows Cách cho kết có độ phân giải với máy in (thường cao so với độ phân giải hình) dùng lệnh Set Printer = Printers(n) để chọn máy in cụ thể danh sách driver máy in có Windows dùng method vẽ văn bản, đồ họa ảnh bitmap theo ý muốn trực tiếp lên đối tượng Printer method điều khiển NewPage & EndDoc để xuất kết trực tiếp máy in vừa chọn Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 10: Tương tác người dùng & chương trình Slide 270 27 ... Chương : Định nghĩa thủ tục & sử dụng Slide 229 Gọi thủ tục Sau thủ tục định nghĩa, ta sử dụng (gọi) nhờ lệnh gọi thủ tục Cú pháp gọi thủ tục miêu tả slide 216 (chương 8) Do Function dạng thủ tục. .. : Định nghĩa thủ tục & sử dụng Slide 234 Các thủ tục định sẵn VB Về nguyên tắc, người lập trình phải định nghĩa thủ tục (Sub, Function, Property) trước sử dụng lại (gọi) Tuy nhiên, VB định nghĩa. .. Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương : Định nghĩa thủ tục & sử dụng Slide 225 Cú pháp định nghĩa thủ tục - Sub Cú pháp để định nghĩa thủ tục Sub : [Private | Public | Friend] [Static]