1. Trang chủ
  2. » Giáo án - Bài giảng

Tin học xây dựng

85 1,1K 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài giảng Tin học Xây dựng
Trường học Đại học Giao Thông Vận Tải
Chuyên ngành Tin học xây dựng
Thể loại Bài giảng
Định dạng
Số trang 85
Dung lượng 1,74 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bộ môn Tự động hóa Thiết kế Cầu đường 13 Các lỗi cú pháp sẽ được VBA IDE phát hiện và báo lỗi cho người lập trình ngay trong quá trình viết mã lệnh.. Mỗi ngôn ngữ lập trình có một bộ từ

Trang 1

BỘ MÔN TỰ ĐỘNG HÓA THIẾT KẾ CẦU ĐƯỜNG

BÀI GIẢNG

TIN HỌC XÂY DỰNG

Trang 2

Bộ môn Tự động hóa Thiết kế Cầu đường 2

PHầN Mở ĐầU TỔNG QUAN MÔN HỌC 5

PHầN 1 NGÔN NGỮ LẬP TRÌNH VISUAL BASIC CƠ BẢN 7

CHƯƠNG I TỔNG QUAN VISUAL BASIC 6.0 8

I.1 Giới thiệu về Visual Basic 8

1.2 Integrated Development Environment (IDE) 9

1.2.1 Cấu trúc một dự án VB 9

1.2.2 Các thành phần của IDE 9

1.2.3 Soạn thảo chương trình 10

1.3 Trợ giúp trong quá trình làm việc (Help) 11

CHƯƠNG II CẤU TRÚC LẬP TRÌNH TRONG VISUAL BASIC 12

II.1 QUY TẮC VIẾT MÃ LỆNH 12

II.2 CÁC TỪ KHÓA TRONG VB6 13

II.3 CÁC KIỂU DỮ LIỆU CƠ BẢN 13

II.3.1 Boolean 13

II.3.2 Byte 14

II.3.3 Integer (Kiểu nguyên) 14

II.3.4 Long 14

II.3.5 Single 14

II.3.6 Double (Kiểu thực) 14

II.3.7 String (Kiểu chuỗi) 14

II.3.8 Date (Kiểu thời gian) 16

II.3.9 Kiểu mảng (array) 16

II.3.8 Kiểu dữ liệu do người dùng định nghĩa 16

II.3.9 Kiểu lớp (class) 17

II.3.10 Kiểu Variant 17

II.3.11 Chuyển đổi (convert) kiểu dữ liệu 18

II.4 KHAI BÁO BIẾN 18

II.4.1 Khai báo biến với các kiểu dữ liệu thông thường 18

II.4.2 Khai báo hằng 18

II.4.3 Khai báo kiểu tự định nghĩa 19

II.4.4 Khai báo mảng 19

II.4.5 Khai báo, tạo và làm việc với biến đối tượng 21

II.4.6 Các chú ý khi khai báo 21

II.5 BIỂU THỨC 21

II.5.1 Các khái niệm 21

II.5.2 Các loại phép toán 21

II.6 CÁC CÂU LỆNH 1

II.6.1 Lệnh gán 1

II.6.2 Lệnh rẽ nhánh If 1

II.6.2 Câu lệnh lựa chọn Select Case 3

II.6.3 Câu lệnh lặp xác định 4

II.6.4 Câu lệnh lặp xác định trong một tập hợp 5

II.6.5 Câu lệnh lặp không xác định 5

II.7 CHƯƠNG TRÌNH CON (HÀM VÀ THỦ TỤC) 6

II.7.1 Khái niệm 6

II.7.2 Hàm - Function 6

II.7.3 Thủ tục - Sub 7

II.7.4 Truyền tham số cho chương trình con 7

II.8 TRUY XUẤT DỮ LIỆU TRONG VISUAL BASIC 9

II.8.1 Các khái niệm 9

II.8.2 Biến toàn cục 10

II.8.3 Biến cục bộ 10

II.8.4 Biến module 10

II.9 GỠ LỖI TRONG VISUAL BASIC (Debug) 10

2.9.1 Xử lý lỗi lúc RunTime 11

2.9.2 Dùng khai báo Option Explicit 11

2.9.3 Dùng Breakpoints 11

2.9.4 Dùng Immediate Window 12

Trang 3

Bộ môn Tự động hóa Thiết kế Cầu đường 3

2.9.5 Dùng Watch Window 12

2.9.2 Dùng Comment (chú thích) 12

II.10 TỔ CHỨC CHƯƠNG TRÌNH 13

CHƯƠNG III FORM VÀ MỘT SỐ ĐIỀU KHIỂN THÔNG DỤNG 14

III.1 Các khái niệm liên quan 14

III.2 Form 16

III.2.1 Khái niệm 16

III.2.2 Thuộc tính 16

III.2.3 Sự kiện 16

III.3 Nhãn (Label) 16

III.3.1 Khái niệm 16

III.3.2 Thuộc tính 16

III.3.3 Sự kiện 16

III.4 Khung (Frame) 17

Khung cũng có các thuộc tính và sự kiện thông dụng như của điều khiển nhãn như: Name, Caption, Click, DblClick 17

III.3 Nút lệnh (CommandButton) 17

III.3.1 Khái niệm 17

III.3.2 Thuộc tính 17

III.3.3 Sự kiện 17

III.4 Ô nhập dữ liệu (TextBox) 17

III.3.1 Khái niệm 17

III.3.2 Thuộc tính 18

III.3.3 Sự kiện 18

III.5 ListBox 19

III.3.1 Khái niệm 19

III.3.2 Thuộc tính 19

III.3.3 Phương thức 19

III.6 ComboBox 19

III.7 Check Box 20

III.7.1 Khái niệm: 20

III.7.2 Thuộc tính: 20

III.8 Option Button 20

III.9 Điều khiển thanh cuộn ngang (HscrollBar) 20

III.9.1 Khái niệm 20

III.9.2 Thuộc tính 20

III.9.3 Sự kiện 21

III.10 Điều khiển thanh cuộn đứng (VScrollBar) 21

III.11 Điều khiển thời gian (Timer) 21

III.11.1 Khái niệm 21

III.11.2 Thuộc tính: 21

III.11.3 Sự kiện 21

III.12 Danh sách ổ đĩa (DriveListbox), thư mục (DirListbox), tập tin (FileListbox) 21

CHƯƠNG IV LÀM VIỆC VỚI TẬP TIN (FILE) 23

IV.4 Mô hình File System Object (FSO) 23

IV.4.1 Tạo đối tượng FileSystemObject 23

IV.4.2 Truy cập ổ đĩa, thư mục, tập tin 24

IV.4.3 Thông tin về ổ đĩa 24

IV.4.4 Làm việc với thư mục 24

IV.4.5 Làm việc với tập tin 24

IV.4.6 Ví dụ 25

IV.5 Hàm I/O và lệnh xử lý tập tin 27

IV.5.1 Mở tập tin 27

IV.5.2 Đọc nội dung tập tin 28

IV.5.3 Ghi dữ liệu lên tập tin 28

IV.5.4 Đóng tập tin 28

IV.5.5 Ví dụ 29

PHầN 2 TIN HỌC XÂY DỰNG 31

CHƯƠNG I THIẾT KẾ GIAO DIỆN 32

I.1 Menu 32

Trang 4

Bộ môn Tự động hóa Thiết kế Cầu đường 4

I.1.1 Khái niệm 32

I.1.2 Các thuộc tính 32

I.1.3 Cách tạo menu 33

I.2 Hộp thoại (Dialog Box) 33

I.2.1 Khái niệm 33

I.2.2 Hộp thoại thông điệp 34

I.2.2.1 Loại chỉ xuất thông báo 34

I.2.2.2 Loại tương tác với người dùng 34

I.2.3 Hộp thoại nhập 35

I.2.4 Các loại hộp thoại thông dụng (Common Dialog) 35

I.2.4.1 Hộp thoại mở và lưu tập tin 35

I.2.4.2 Hộp thoại Chọn màu 36

I.2.4.3 Hộp thoại chọn Font chữ 36

I.2.4.4 Hộp thoại In ấn 37

I.3 Xử lý các sự kiện chuột và bàn phím 38

I.3.1 Sự kiện chuột 38

I.3.2 Sự kiện bàn phím 39

I.4 Sử dụng Multiple document interface (MDI) 39

I.4.1 Khái niệm 39

I.4.2 Thiết lập ứng dụng MDI 40

I.5 Tạo giao diện Wizard (Thuật sĩ) 40

CHƯƠNG II XỬ LÝ ĐỒ HỌA 42

II.1 Tọa độ màn hình 42

II.2 Màu (Color) 43

II.3 Các thuộc tính đồ họa của Form và PictureBox 44

II.4 Các phương thức đồ họa 44

II.4.1 Phương thức Print 44

II.4.2 Phương thức PSet 45

II.4.3 Phương thức Line 46

II.4.4 Phương thức Circle 48

II.4.5 Phương thức PaintPicture 48

II.5 Các điều khiển đồ họa 52

II.5.1 Điều khiển hộp hình ảnh (Picture Box) 52

II.5.2 Điều khiển hình ảnh (Image) 52

II.5.3 Điều khiển hình dạng (Shape) 52

II.5.4 Điều khiển Line 53

II.6 Các phép biến đổi tọa độ 53

CHƯƠNG III LÀM VIỆC VỚI AUTOCAD/EXCEL 57

III.1 Làm việc với AutoCAD 57

III.1.1 Hệ thống các đối tượng trong AutoCAD 60

III.1.2 Kết nối VB với AutoCAD 60

III.1.3 Một số phương thức cơ bản 61

III.1.4 Ví dụ minh họa 61

III.2 Làm việc với Microsoft Excel 61

III.2.1 Hệ thống các đối tượng trong Excel 61

III.2.2 Kết nối VB với MS Excel 62

III.2.2 Một số phương thức cơ bản 63

III.2.3 Ví dụ minh họa 63

Trang 5

Bộ môn Tự động hóa Thiết kế Cầu đường 5

Phần mở đầu

TỔNG QUAN MÔN HỌC

Trang 6

Bộ môn Tự động hóa Thiết kế Cầu đường 6

Lesson 1

TỔNG QUAN MÔN HỌC Nội dung - Mục tiêu

- Tìm hiểu cơ bản về ngôn ngữ lập trình Visual Basic (VB)

- Sử dụng các điều khiển, viết mã lệnh và xây dựng chương trình trong VB6

- Cơ sở về phương pháp hướng đối tượng

- Lập trình hướng đối tượng dựa trên VB6

- Sinh viên nắm được các kỹ năng cơ bản của lập trình, ứng dụng vào ngành xây dựng thông qua môi trường VB6

- Hiểu về phương pháp hướng đối tượng, xây dựng chương trình theo phương pháp hướng đối tượng với VB6

- Nói tóm lại dù chưa đạt mức thành thạo nhưng cũng sẽ tự mình hoàn thành được các chương trình nhỏ phục vụ chuyên môn sau này

- Hướng mở rộng: VB.NET, VBA, VBScript (Vẽ hình + Giải thích)

Phương pháp học

- Nắm vững kiến thức cơ bản, dành nhiều thời gian cho việc thực hành trên máy tính

- Đam mê, tự tìm hiểu, đi từ những ví dụ cơ bản

- Chú tâm ngay từ đầu, mục đích không phải chỉ để thi qua

- Học từ nhiều nguồn tài liệu khác nhau, đặc biệt là Internet, giúp tra cứu mỗi khi gặp khó khăn và thắc mắc

- Bài giảng sẽ đi từng phần các kiến thức cơ bản, kết hợp với việc thực hành ngay trên lớp Thời gian sử dụng máy chiếu >70% Sinh viên hăng hái tham gia xây dựng bài sẽ được cộng điểm khuyến khích

Tài liệu tham khảo

- Microsoft Visual Basic 6.0 Và Lập Trình Cơ Sở Dữ Liệu

- Tự Học Lập Trình Visual Basic 6.0…

Trang 7

Bộ môn Tự động hóa Thiết kế Cầu đường 7

Phần 1 NGÔN NGỮ LẬP TRÌNH VISUAL BASIC

CƠ BẢN

Trang 8

Bộ môn Tự động hóa Thiết kế Cầu đường 8

Học xong chương này, sinh viên phải nắm bắt được các vấn đề sau:

- Sử dụng môi trường phát triển tích hợp VB 6.0 để phát triển ứng dụng

- Cách tạo dự án mới (New Project) trong VB 6.0

- Sử dụng tốt hệ thống trợ giúp trong quá trình làm việc

Kiến thức có liên quan:

- Sử dụng hệ điều hành Windows

I.1 Giới thiệu về Visual Basic

Visual Basic 6.0 (VB6) là một phiên bản của bộ công cụ lập trình Visual Basic (VB), cho phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows

Visual Basic là gì?

Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic Instruction

Code), một ngôn ngữ lập trình đơn giản, dễ học, được phát triển cho những người không chuyên sâu về lập trình VB được phát triển và mở rộng dựa trên BASIC

Phần "Visual" đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người dùng

(Graphical User Interface hay viết tắt là GUI) VB có sẵn các thành phần điều khiển trực quan (controls), các điểu khiển này được lập trình viên sắp xếp trên form tạo thành giao diện người dùng

Chính bởi sự đơn giản, dễ học nên VB6 là cách nhanh và tốt nhất để lập trình trong môi trường Microsoft Windows VB6 cung cấp bộ công cụ hoàn chỉnh để đơn giản hóa việc lập trình ứng dụng dựa trên giao diện đồ họa

Visual Basic còn có hai dạng khác: Visual Basic for Application (VBA) và VBScript

VBA là ngôn ngữ nằm phía sau các chương trình Word, Excel, MSAccess, AutoCAD, v.v còn gọi là Macros Dùng VBA trong MSOffice, ta có thể làm tăng chức năng bằng cách tự động hóa các chương trình

VBScript được dùng cho Internet và chính Operating System

Cài đặt Visual Basic

Phiên bản: Visual Basic 6.0

Cấu hình tối thiểu: 32 MB RAM, CPU Pentium II, Windows 98

Sử dụng các file cài đặt (1CD) để cài, sửa đổi, xóa VB Ngoài ra có thể cài thêm thư viện MSDN – Help (3CD)

Trang 9

Bộ môn Tự động hóa Thiết kế Cầu đường 9

1.2 Integrated Development Environment (IDE)

IDE là tên tắt của môi trường phát triển tích hợp, đây là nơi tạo ra các chương trình VB

1.2.1 Cấu trúc một dự án VB

- Dự án (Project) là tập hợp các file để hình thành nên chương trình ứng dụng

- Dự án VB (VB Project) = Code Modules + Class Modules + Userform

- Code Module: mã lệnh chính của chương trình

- Class Module: thiết kế các lớp của dự án

- Userform: giao diện dạng hộp thoại của dự án để nhập số liệu và xuất kết quả

VB hỗ trợ tạo nhiều kiểu ứng dụng khác nhau Để tạo mới một dự án thực thi ta chọn Standard EXE rồi chọn Open

1.2.2 Các thành phần của IDE

- Form trắng để thiết kế giao diện cho ứng dụng

- Cửa sổ dự án hiển thị các file được tạo trong ứng dụng

- Cửa sổ thuộc tính hiển thị các thuộc tính của đối tượng và điều khiển được chọn

- Toolbox chứa các điều khiển cần thiết đễ xây dựng một ứng dụng VB

- Cửa sổ viết mã chương trình (Code)

- MenuBar, Toolbar, Layout, Immediate Window,ViewCode, ViewForm

Trang 10

Bộ môn Tự động hóa Thiết kế Cầu đường 10

Menu Bar

Chứa đầy đủ các lệnh để làm việc với VB6, kể cả các menu để truy cập các chức năng đặc biệt dành cho việc lập trình như Project, Format, hoặc Debug

Toolbars (Debug, Edit, form Editor, Standard)

Các toolbars gồm các biểu tượng cho phép chọn nhanh các chức năng cần thiết Sử dụng

Menu View | Toolbars để tắt hoặc mở các toolbars

Các toolbars có thể sửa đổi theo ý thích bằng chức năng: View | Toolbars | Customize

Toolbox

Bao gồm các điều khiển (controls), dùng thiết kế giao diện đồ họa

Khi có nhiều các control, có thể sử dụng Add Tab để sắp xếp lại vị các control theo ý

Dùng để gở rối (debug) quá trình test ứng dụng

Ta có thể xem các thông số khi chạy chương trình hay khi đang tạm ngừng Có thể thay đổi giá trị các biến hay chạy một dòng chương trình

1.2.3 Soạn thảo chương trình

Trong Visual Basic IDE, cửa sổ mã lệnh (Code) cho phép soạn thảo mã chương trình với một số chức năng (Tắt mở trong Tools|Option)

- Đánh dấu (Bookmarks): Chức năng này cho phép đánh dấu các dòng lệnh của chương trình giúp việc xem lại các phần mã lệnh dễ dàng Sử dụng tính năng này qua thanh công

cụ hoặc menu Edit

- Tự động kiểm tra cú pháp (Auto Syntax Check) Khi chức năng này bật, nếu viết một dòng chứa lỗi, VB sẽ thông báo về lỗi và hiển thị con trỏ ngay dòng chương trình lỗi Nếu không có chức năng này, VB chỉ hiển thị dòng mã sai với màu đỏ không kèm chú thích

- Yêu cầu khai báo biến (Require Variable Declaration) (Tùy chọn): VB sẽ thông báo lỗi khi một biến được dùng mà không khai báo và sẽ chỉ ra vị trí của biến đó

- Gợi nhớ mã lệnh: (Auto List Members) Tự động hiển thị gợi ý khi ta gõ vào tên của chúng Sử dụng Ctrl+Space để sử dụng chức năng tự động hoàn thành mã chương trình

Trang 11

Bộ môn Tự động hóa Thiết kế Cầu đường 11

1.3 Trợ giúp trong quá trình làm việc (Help)

Trong khi lập trình có thể cần tìm hiểu thông tin liên quan đến các commands, functions v.v của VB6 Các thông tin này được Microsoft cung cấp rất đầy đủ trong thư viện trợ giúp Microsoft Developer Network | MSDN Library Visual Studio 6.0

Truy cập thông qua menu Help | Contents của VB6, hoặc chọn (bôi đen) một từ khóa trong code rồi ấn F1

Phần trợ giúp được thiết kế giống như 1 quyển sách, kết hợp với chức năng tìm kiếm theo

từ khóa khiến người đọc dễ dàng tra cứu Các thông tin được liên kết với nhau đầy đủ giúp việc tham khảo đạt hiệu quả cao

Yêu cầu: Máy tính phải cài đầy đủ thư viện MSDN (3CD)

Context Sensitive Help (trợ giúp đúng tình huống)

Nhiều phần của VB6 hỗ trợ context sensitive, có nghĩa là khi gặp lỗi hoặc cần trợ giúp chỉ

cần ấn F1 hoặc bôi đen từ khóa rồi nhấn F1 Chương trình sẽ hiển thị thông tin liên quan đến vấn đề cần trợ giúp

Các phần context sensitive là:

• Các Windows của VB6 như Properties, Code v.v

• Các control trong Toolbox

• Các Object trên một form hoặc Object tài liệu

• Các đặc tính trong Window Properties

• Các keywords của VB6

• Các thông báo lỗi (error messages)

Ngoài ra, trong Help thường có Example là các ví dụ minh họa cách dùng cho một đối

tượng nào đó dùng tham khảo rất phù hợp

Tìm kiếm trợ giúp trên Internet

Việc tìm kiếm thông tin trên Internet là hết sức cần thiết, dù trong lĩnh vực nào Đặc biệt là trong công việc lập trình Chúng ta có thể tra cứu, tìm kiếm ví dụ, thảo luận về vấn đề mắc phải…

Một số website hữu ích:

http://msdn.microsoft.com/ - Trang chủ của Microsoft Developer Network

http://www.google.com - Trang tìm kiếm nhanh và hiệu quả

http://www.codeproject.com - Mã nguồn miễn phí và nhiều ví dụ hữu ích

Question for today!

Trang 12

Bộ môn Tự động hóa Thiết kế Cầu đường 12

Học xong chương này, sinh viên phải nắm bắt được các vấn đề sau:

- Sử dụng môi trường lập trình VB để viết mã lệnh, các quy tắc, từ khóa

- Các kiểu dữ liệu trong VB

- Cách khai báo hằng, biến trong VB

- Biểu thức trong VB

- Các câu lệnh đơn cũng như các câu lệnh có cấu trúc

- Chương trình con trong VB

- Truy xuất dữ liệu, tổ chức chương trình trong VB

- Gỡ lỗi trong VB

Kiến thức có liên quan:

- Cách sử dụng môi trường phát triển của VB

II.1 QUY TẮC VIẾT MÃ LỆNH

Cũng giống như các ngôn ngữ lập trình khác, VB đưa ra những quy tắc cho người lập trình trong quá trình viết mã lệnh Người lập trình cần phải tuân theo các quy tắc này để trình biên dịch có thể dịch mã lệnh mà không phát sinh lỗi cú pháp

- Các câu lệnh phải là các dòng riêng biệt Nếu có nhiều lệnh trên cùng một dòng thì

giữa các lệnh ngăn cách nhau bằng dấu hai chấm (:) Nếu dòng lệnh quá dài, muốn ngắt lệnh thành hai dòng thì sử dựng dấu cách và dấu gạch dưới (_)

- Dòng chú thích được bắt đầu bằng (‘)

Qui ước đặt tên biến của ngôn ngữ VB cũng tương tự như các ngôn ngữ khác:

• Chỉ dùng được ký tự (hoa và thường), số, và ký tự gạch chân

• Phải bắt đầu bằng ký tự, dài không quá 255 ký tự

• Không có khoảng trống, không trùng tên từ khóa

Ví dụ:

Đúng Sai

My_Car My.Car ThisYear 1NewBoy Long_Name_Can_beUSE He&HisFather

Trang 13

Bộ môn Tự động hóa Thiết kế Cầu đường 13

Các lỗi cú pháp sẽ được VBA IDE phát hiện và báo lỗi cho người lập trình ngay trong quá trình viết mã lệnh

II.2 CÁC TỪ KHÓA TRONG VB6

Từ khoá là tập hợp các từ cấu thành một ngôn ngữ lập trình Mỗi ngôn ngữ lập trình có một

bộ từ khoá riêng, dưới đây là danh sách các từ khoá trong ngôn ngữ lập trình VB6:

II.3 CÁC KIỂU DỮ LIỆU CƠ BẢN

Kiểu dữ liệu là một tập hợp các giá trị mà một biến của kiểu có thể nhận và một tập hợp các phép toán có thể áp dụng trên các giá trị đó

Trong VB6 có rất nhiều kiểu dữ liệu khác nhau như: Boolean, Double, Integer, Object, String, Variant Từng kiểu có mục đích riêng và việc sử dụng đúng sẽ giúp chương trình chạy nhanh Chúng ta sẽ đi tìm hiểu các kiểu dữ liệu cơ bản

II.3.1 Boolean

Đặc điểm: Chỉ có 2 trạng thái: True và False

Khi chuyển từ các dữ liệu dạng số sang kiểu logic, 0 sẽ được chuyển thành FALSE còn giá trị khác sẽ được chuyển thành TRUE Khi chuyển từ kiểu logic sang kiểu số, giá trị FALSE sẽ được chuyển thành 0 còn giá trị TRUE sẽ được chuyển thành -1

Phạm vi áp dụng: các bài toán lặp, if then, thường dùng làm cờ hiệu (flags)

Trang 14

Bộ môn Tự động hóa Thiết kế Cầu đường 14

II.3.2 Byte

Đặc điểm: Sử dụng 8-bit để lưu trữ giá trị, tức có thể lưu giá trị dương từ 0 đến 255

Phạm vi áp dụng: hữu ích trong việc lưu dữ liệu nhị phân

II.3.3 Integer (Kiểu nguyên)

Đặc điểm: Kiểu số nguyên, sử dụng 16-bit để lưu trữ,

-3.402823e38 đến -1.401298e-45 với số âm và từ

1.401298e-45 đến 3.402823e38 cho số dương

Phạm vi áp dụng: Sử dụng với giá trị thập phân nằm trong khoảng trên

II.3.6 Double (Kiểu thực)

Đặc điểm: Kiểu số thực, sử dụng 64-bit để lưu trữ, kiểu dữ liệu này được gọi là độ chính

xác kép

Khoảng giá trị:

-1.79769313486232e308 đến -4.94065645841247e-324 với số âm và từ

4.94065645841247e-324 đến 1.79769313486232e308 cho số dương

Phạm vi áp dụng: Khi cần tính toán với yêu cầu độ chính xác cao

II.3.7 String (Kiểu chuỗi)

Đặc điểm:

Chuỗi dữ liệu chứa từ 0 đến 65.500 ký tự Từng ký tự có khoảng giá trị từ 0 đến 255 trong

bảng ASCII

Có sẵn một số hàm liên quan đến chuỗi ví dụ: cắt chuỗi, tách chuỗi, nhập chuỗi,… Có thể

tra cứu các hàm này trong các tài liệu tham khảo như MSDN hoặc Object Browser (thư

viện Strings)

Phạm vi áp dụng: Khi cần làm việc với dữ liệu văn bản (Text)

Được sử dụng nhiều trong các bài toán quản lý, các bài toán yêu cầu nhập xuất dữ liệu

Việc dùng string cũng giúp cho các bài toán có giao diện thân thiện hơn

Ví dụ:

Private Sub Command1_Click()

Dim sText As String

Dim lTextLength As Long

Dim sChar As String

Dim bASCII As Byte

Dim x As Long

sText = " VB that la don gian!"

lTextLength = Len(sText) 'So ky tu trong sText

For x = 1 To lTextLength ‘ Lap den ky tu cuoi cung trong sText

Trang 15

Bộ môn Tự động hóa Thiết kế Cầu đường 15

sChar = Mid$(sText, x, 1) 'Lay ky tu thu x trong sText

bASCII = Asc(sChar) 'Lay gia tri ASCII cua ky tu

MsgBox "Ma ASCII cua ky tu '" & sChar & "' la " & bASCII ‘Hien thi ket qua

Greeting = FirstWord & SecondWord

' Greeting bây giờ là "HelloWorld"

- Len: trả về chiều dài một chuỗi được chỉ định

Ví dụ: iLen = Len(Greeting) ' iLen bằng 8

- Left: Trích chuỗi con từ phần đầu chuỗi gốc Left (String, [length])

- Right: Trích chuỗi con từ phần đuôi chuỗi gốc Right (String, [length])

- Mid: Trích chuỗi con từ giữa chuỗi gốc Mid(String, Start As Long, [length])

Ví dụ:

Today = "24/05/2001"

StrDay = Left(Today,2) ' StrDay = "24" '

StrYear = Right(Today,4) ' StrYear = "2001" '

StrMonth = Mid(Today,4,2) ' StrMonth = "05"

- InStr: Tìm chuỗi con trong chuỗi gốc Nếu hàm InStr trả về 0, nghĩa là không tìm thấy

Cú pháp: InStr([start,] string1, string2, [compare])

Trong đó:

Start: Xác định vị trí trong chuỗi bắt đầu việc tìm kiếm Nếu giá trị là Null thì sẽ bắt đầu từ đầu chuỗi Nếu như tham số Compare có đặc tả thì bắt buộc phải khai báo tham số Start String1: Biểu thức chuỗi để so sánh

String2: Chuỗi cần tìm

Compare: Xác định kiểu so sánh chuỗi Giá trị: vbTextCompare,

vbBinaryCompare

Ví dụ 1:

myString = "The *rain in Spain mainly "

Position = Instr(myString,"*") ' Position sẽ là 5

Nếu trong myString không có dấu "*" thì Position sẽ bằng 0

Ví dụ 2:

KeyValuePair = "BeatlesSong=Yesterday"

Pos = Instr(KeyValuePair, "=")

Key = Left(KeyValuePair, Pos-1) ‘Key= “BeatlesSong”

Value = Mid(KeyValuePair, Pos+1) ‘Key= “Yesterday”

- Replace: tìm và thay thế chuỗi

Cú pháp: Replace(Expression, find, replace[, start[, count[, compare]]])

Trong đó:

- Expression: Biểu thức chuỗi chứa chuỗi cần thay thế

- find: Chuỗi cần tìm

Trang 16

Bộ môn Tự động hóa Thiết kế Cầu đường 16

- replace: Chuỗi thay thế chuỗi tìm được

- start: Tương tự như hàm InStr

- count: Xác định số lần thay thế Mặc định là 1

- compare: Kiểu so sánh chuỗi Giá trị: vbTextCompare, vbBinaryCompare

- LTrim (RTrim): cắt tất cả các khoảng trắng bên trái (bên phải của chuỗi)

- UCase: đổi chuỗi sang chuỗi gồm các ký tự là chữ hoa Cú pháp: UCase(string)

- Asc: cho mã Ascii của một ký tự

- Chr: trả về ký tự ứng với mã Ascii được chỉ định

- InstrRev: tương tự như InStr nhưng việc tìm kiếm được tiến hành từ phải sang

- Val: Hàm đổi chuỗi sang số

- Str: Hàm đổi số sang chuỗi

II.3.8 Date (Kiểu thời gian)

Đặc điểm:

Dùng để lưu trữ và thao tác trên các giá trị thời gian (ngày và giờ) Để cho VB biết dữ liệu là kiểu Date ta cần đặt giữa dấu ## hoặc “”

Việc định dạng hiển thị tùy thuộc vào việc thiết lập trong Control Panel

Phạm vi áp dụng: Lưu trữ các giá trị thời gian, ngày tháng

- Hàm Now: trả về ngày giờ hiện tại

Ví dụ:

MsgBox "NOW IS " & Format (Now, "ddd dd-mmm-yyyy hh:nn:ss")

' sẽ hiển thị NOW IS Tue 05-Oct-2004 16:15:53

II.3.9 Kiểu mảng (array)

Đặc điểm:

- Mảng là một khối dữ liệu gồm các phần tử có cùng tên và kiểu dữ liệu Các phần tử trong mảng phân biệt với nhau bởi các chỉ số

- Mảng có thể có một chiều hoặc nhiều chiều

- Trong VB có hai loại biến mảng: mảng có chiều dài cố định và mảng động (chiều dài có thể thay đổi lúc thi hành)

Phạm vi áp dụng: Đôi khi chúng ta có nhiều biến tương tự nhau, thí dụ như điểm thi của 10 học sinh, nếu phải đặt tên khác nhau cho từng biến (VD: HoaMark, TaiMark, SonMark, TamMark, NgaMark, HuongMark v.v ) thì bất tiện Chúng ta có thể dùng Array để có một tên chung cho cả nhóm, rồi nói đến điểm của từng người một bằng cách dùng một con

số gọi là ArrayIndex

Việc lưu trữ dùng mảng còn giúp chúng ta xử lý dữ liệu dễ dàng hơn Ví dụ việc tổng hợp điểm của danh sách trên

II.3.8 Kiểu tự định nghĩa

Đặc điểm: Kiểu dữ liệu do người dùng định nghĩa tương tự như kiểu bản ghi (Record) trong Pascal hay kiểu cấu trúc (Struct) trong C

- Kiểu dữ liệu này gồm các trường, có thể là các kiểu dữ liệu khác nhau

Trang 17

Bộ môn Tự động hóa Thiết kế Cầu đường 17

Phạm vi áp dụng: Trong các trường hợp cần lưu một giá trị có nhiều thuộc tính Ví dụ các thông số của một lỗ khoan

II.3.9 Kiểu lớp (class)

Đặc điểm: Lớp được xây dựng trong Class Module hoặc trong các thư viện có sẵn

- Lớp bao gồm:

Các thuộc tính (Property): thực chất là các biến thành viên khai báo trong lớp đó

Các phương thức (Method): thực chất là các chương trình con được khai báo trong

lớp - các hàm (Function) và thủ tục (Procedure) thành viên

- Ngoài ra trong VB, lớp có thể có sự kiện (Event) Sự kiện tạo ra khả năng linh động trong xây dựng quan hệ giữa đối tượng với nhau và với mô môi trường

II.3.10 Kiểu Variant

Đặc điểm: Kiểu Variant là một kiểu dữ liệu đặc biệt trong VB Biến kiểu Variant có thể chứa mọi giá trị của các kiểu dữ liệu khác, kể cả mảng

Tuy Variant tiện dụng nhưng nếu Variant được dùng nhiều chỗ, trong nhiều tình huống, cần xác định rõ hiện đang là kiểu nào

Phạm vi sử dụng: Hạn chế dùng Variant vì sẽ gây lãng phí bộ nhớ và giảm tốc độ thực thi của chương trình

Một số chú ý khi dùng biến kiểu Variant:

- Nếu muốn thi hành các hàm toán học, Variant phải chứa giá trị kiểu số

- Nếu muốn nối chuỗi, dùng toán tử & thay vì toán tử +

Giá trị Empty:

- Đây là giá trị đặc biệt xuất hiện khi một biến chưa được gán trị Ta dùng hàm IsEmpty

để kiểm tra giá trị Empty

- Giá trị Empty biến mất khi có một giá trị bất kỳ được gán cho biến Variant, để trở về giá trị Empty, ta gán từ khoá Empty cho biến Variant

Giá trị Null: Biến Variant chứa giá trị Null trong trường hợp những ứng dụng cơ sở dữ

liệu thể hiện không có dữ liệu hoặc dữ liệu không xác định

Giá trị Error: Trong một biến kiểu Variant, Error là một giá trị đặc biệt cho biết đã có một

lỗi đã xảy ra bên trong thủ tục

Ví dụ:

Private Sub cmdShowDataTypes_Click()

Dim sMess As String

Dim vVariant As Variant

vVariant = "Xin chao" 'String

sMess = TypeName(vVariant) & vbCrLf ' xuống dòng & về đầu dòng

vVariant = 25 ' Integer

sMess = sMess & TypeName(vVariant) & vbCrLf

vVariant = True ' Boolean

sMess = sMess & TypeName(vVariant) & vbCrLf 'Date

vVariant = #1/1/2001# 'trong cặp dấu #

sMess = sMess & TypeName(vVariant)

MsgBox sMess

End Sub

Khi chạy chương trình kết quả là:

Trang 18

Bộ môn Tự động hóa Thiết kế Cầu đường 18

II.3.11 Chuyển đổi (convert) kiểu dữ liệu

VB cung cấp một số hàm để chuyển kiểu dữ liệu của một biến từ loại này sang loại khác

Val (str): Trả về giá trị kiểu thực của một chuỗi: a= Val(“1245.43 asd”)

Nếu trong chuỗi có chứa ký tự khác số, hàm sẽ loại bỏ ký tự đó

CDbl (x):Trả về giá trị kiểu thực của chuỗi, chuỗi này phải là các số (number)

CInt (x): Trả về giá trị kiểu nguyên (Integer)

CStr (x): Trả về giá trị kiểu chuỗi

Str (x): Trả về giá trị kiểu chuỗi của một số

Question for today!

II.4 KHAI BÁO BIẾN

II.4.1 Khai báo biến với các kiểu dữ liệu thông thường

Khái niệm biến:

Biến (Variable) là vùng lưu trữ được đặt tên để chứa dữ liệu tạm thời trong quá trình tính toán, so sánh và các công việc khác

Cách khai báo

Dim <tên_biến> as <Kiểu_dữ_liệu>

- Dùng các từ khóa Public hay Private nhằm xác định phạm vi hoạt động của biến (sẽ giải thích ở phần sau)

Public <tên_biến> as <Kiểu_dữ_liệu>

Hay: Private <tên_biến> as <Kiểu_dữ_liệu>

Nếu khai báo biến không xác định kiểu dữ liệu thì biến đó có kiểu Variant

Ví dụ:

Dim sHoTen As String

Public iTuoi As Integer

Private iKetHon As Boolean

II.4.2 Khai báo hằng

- Là kiểu dữ liệu dùng lưu những giá trị không bao giờ thay đổi

Việc sử dụng kiểu hằng số giúp chúng ta hạn chế những nhầm lần Đơn cử như việc sử dụng một thông số nhiều lần trong chương trình

Trang 19

Bộ môn Tự động hóa Thiết kế Cầu đường 19

[Public/ Private] Const <tên_hằng> = <giá_trị_hằng>

Ví dụ:

Const g = 9.8

Const Num As Integer = 4*5

II.4.3 Khai báo kiểu tự định nghĩa

- Khai báo các kiểu dữ liệu dạng bản ghi gồm các trường theo nhu cầu của người sử dụng

Cú pháp khai báo như sau:

[Pravite/Public] Type <tên_ kiểu>

Sau khai báo, để truy cập tới một trường của biến kiểu bản ghi, dùng toán tử (.) và cặp từ

Ví dụ: Dữ liệu về điểm đo trong khảo sát địa hình có thể được xây dựng gồm: chỉ số của

điểm (id), tên điểm (name), tọa độ x, tọa độ y, cao độ z, mã địa vật (madiavat)

Private Type diemdo ‘ Khai báo kiểu

Private Sub Command1_Click()

Dim diem as diemdo ‘ Tạo biến và gán dữ liệu

[Public/ Private/ Dim] <tên_mảng>(<các thông số về chiều>) as <tên_kiểu>

Các thông số về chiều có thể biểu diễn qua các ví dụ sau:

Dim a(1 to 4) as Integer: mảng 1 chiều chỉ số từ 1 đến 4 kiểu nguyên

Dim a(3) as Long: mảng 1 chiều chỉ số tới 3 kiểu Long

(chỉ số xuất phát mặc định là 0 hoặc được xác định thông qua khai báo Option Base )

Option Base 0 hoặc Option Base 1

Trang 20

Bộ môn Tự động hóa Thiết kế Cầu đường 20

Dim a(1 to 4,2 to 6) as Double: mảng 2 chiều chỉ số từ 1 tới 4 và 2 tới 6

Dim a(2,2,3) as String: mảng 3 chiều với miền chỉ số trên tương là 2, 2 và 3

• Mảng động (mảng có kích thước thay đổi)

[Public/ Private/ Dim] <tên_mảng> () as <tên_kiểu>

Trong khai báo trên không có các thông số về chiều, thuần túy chỉ là một khai báo

- Các phần tử của mảng chưa được tạo ra (hay mảng chưa được cấp phát bộ nhớ)

- Dữ liệu của mảng chỉ được tạo ra hoặc thay đổi khi có lệnh Redim

Lệnh này có tác dụng tạo ra mảng thực sự (có kích thước và các phần tử tương ứng) hoặc thay đổi kích thước của một mảng động

Redim <tên_mảng>(<các thông số về chiều>) as <tên kiểu>

- Chú ý rằng <tên_kiểu> phải đúng như khai báo, các thông số về chiều có thể khác trước cả về số chiều và kích thước của từng chiều

- Dữ liệu mảng cũ sẽ bị, thay vào đó là phần tử của mảng mới được khởi tạo

Ví dụ:

Dim diem as diemdo

Dim a() as Long

Redim a(1 to 5) as Long

a(1) = 100: a(2) = 200 ‘a(1) và a(2) có giá trị tương ứng 100 và 200

Redim a(1 to 3, 2 to 4) as Long

‘Mảng được làm mới hoàn toàn là một mảng 2 chiều, các giá trị a(1) và a(2) không còn ý

nghĩa nữa

- Trong trường hợp muốn thay đổi kích thước của mảng mà không mất dữ liệu, dùng lệnh

ReDim với từ khóa Preserve

Tuy nhiên chỉ thay đổi được biên trên của chiều cuối cùng trong mảng Nếu thay đổi các chiều khác sẽ phát sinh lỗi

Ví dụ

Dim a() as Long

ReDim a(1 to 5) as Long

a(1) = 100: a(2) = 200

ReDim Preserve a(1 to 6) as Long

‘Thay đổi mở rộng mảng thêm một phần tử mà không ảnh hưởng đến các dữ liệu trước

a(1)vẫn có giá trị 100, a(2)=200

(Lỗi)

Một số thao tác trên mảng

- Hàm UBound trả về biên trên của một mảng

- Hàm LBound trả về biên dưới của một mảng

- Truy xuất từng phần tử trong mảng: <Tên mảng>(<Vị trí>)

- Sao chép mảng: Đối với VB6, ta có thể gán một mảng cho một mảng khác, hoặc kết quả trả về của một hàm có thể là một mảng

Ví dụ:

Sub ByteCopy (old () As Byte, New () As Byte)

New = old

End Sub

Cách này cũng chỉ áp dụng được cho mảng khai báo động

- Mảng là kết quả trả về của hàm Chẳng hạn như:

Public Function ArrayFunction (b As Byte) As Byte()

Trang 21

Bộ môn Tự động hóa Thiết kế Cầu đường 21

II.4.5 Khai báo, tạo và làm việc với biến đối tượng

Khai báo và tạo biến đối tượng phải dùng thêm từ khóa New

Dim <tên_đối_tượng> as New <Tên_Lớp>

Phép gán đối tượng được thực hiện với từ khóa Set

Set <tên_đối_tượng> = <giá trị>

- Chú ý rằng nếu thực hiện khai báo một biến đối tượng như thông thường (không có từ khóa New) thì biến thực sự chưa được tạo ra Trong trường hợp ấy, sau đó phải có thao tác tạo đối tượng với các từ khóa SetNew

Dim <tên_đối_tượng > as <tên_lớp>

Set <tên_đối_tượng > = New <tên_lớp>

- Các phép toán, các toán tử có được áp dụng cho đối tượng hay không tùy thuộc vào lớp tạo ra nó

- Làm việc với một biến đối tượng tức là làm việc với các thuộc tính, phương thức và các

sự kiện của nó

Để truy cập tới các thuộc tính và phương thức của đối tượng, sử dụng toán tử (.)

<Tên_đối_tượng>.<Tên_thuộc_tính>

<Tên_đối_tượng >.<Tên_phương_thức>(Các tham số)

Sẽ cụ thể hơn trong các chương sau

II.4.6 Các chú ý khi khai báo

- Có thể khai báo nhiều biến cùng lúc:

Dim passw As String, yourName As String, firstnum As Integer,

- Nếu kiểu dữ liệu không được định nghĩa, VB sẽ tự động khai báo là kiểu Variant

- Dữ liệu kiểu chuỗi (String) có hai cách khai báo, ngoài cách thông thường, có thể khai báo độ dài của giá trị

Dim VariableName as String * n

trong đó n là số lượng ký tự mà biến có thể lưu trữ

Ví dụ:

Dim yourName as String * 10

yourName sẽ không giữ lớn hơn 10 ký tự

II.5 BIỂU THỨC

II.5.1 Các khái niệm

- Toán tử hay phép toán (Operator): là từ hay ký hiệu nhằm thực hiện phép tính và xử lý

dữ liệu

- Toán hạng: là giá trị dữ liệu (biến, hằng…)

- Biểu thức: là tập hợp các toán hạng và các toán tử kết hợp lại với nhau theo quy tắc nhất

định để tính toán ra một giá trị nào đó

II.5.2 Các loại phép toán

Các phép toán số học:

Trang 22

Bộ môn Tự động hóa Thiết kế Cầu đường 22

Thao tác trên các giá trị có kiểu dữ liệu số

And TRUE And TRUE = TRUE; FALSE And FALSE = FALSE Các trường hợp khác cho kết quả FALSE

Or FALSE Or FALSE = FALSE; Các trường hợp khác cho kết quả TRUE

Trang 23

Bộ môn Tự động hóa Thiết kế Cầu đường Page 1

Một số hàm toán học thông dụng

Các hàm toán học có thể tra cứu trong Object Browser (thư viện Math)

Abs (x): Hàm giá trị tuyệt đối

Exp (x): Hàm mũ cơ số tự nhiên ex

Log (x): Logarit cơ số tự nhiên

Sqr (x): lấy bình phương

Các hàm lượng giác: Cos (x), Sin (x), Tan (x)

Hàm lượng giác ngược: Atn (x) Arctg

Fix (x): Hàm lấy phần nguyên chẵn Ví dụ Fix (5.1) = 5; Fix (5.6) = 5

Int (x): Hàm lấy phần nguyên làm tròn

Round (x, num) làm tròn số thực x đến (num) chữ số thập phân

Question for today! Khai báo biến cho bài toán:

Nhập danh sách tập hợp các lỗ khoan Mỗi lỗ khoan gồm các thông số (idLoKhoan, ToaDoX,

ToaDoY, ChieuSau, SoLopDat, NguoiKhoan)

Tổng số có 30 lỗ khoan, 3 người khoan Yêu cầu tổng hợp xem mỗi người khoan bao nhiêu

lỗ, là những lỗ nào

II.6 CÁC CÂU LỆNH

Một câu lệnh (statement) xác định một công việc mà chương trình phải thực hiện để xử lý

dữ liệu đã được mô tả và khai báo Các câu lệnh được ngăn cách với nhau bởi ký tự xuống

Giả sử ta có khai báo sau:

Dim TodayTemp As Single, MinAge As Integer

Dim Sales As Single, NewSales As Single, FullName As String

Các lệnh sau gán giá trị cho các biến trên:

MinAge = 18

Sales = 200000

NewSales = Sales * 1.2

Giả sử người dùng cần nhập họ và tên vào ô nhập liệu TextBox có thuộc tính Name

là txtName, câu lệnh dưới đây sẽ lưu giá trị của ô nhập liệu vào trong biến

Trang 24

Bộ môn Tự động hóa Thiết kế Cầu đường Page 2

Trang 25

Bộ môn Tự động hóa Thiết kế Cầu đường Page 3

End If

VB sẽ kiểm tra các điều kiện, nếu điều kiện nào đúng thì khối lệnh tương ứng sẽ được thi

hành Ngược lại nếu không có điều kiện nào đúng thì khối lệnh sau từ khóa Else sẽ được

thi hành

Ví dụ:

If (TheColorYouLike = vbRed) Then

MsgBox "You are a lucky person"

ElseIf (TheColorYouLike = vbGreen) Then

MsgBox "You are a hopeful person"

ElseIf (TheColorYouLike = vbBlue) Then

MsgBox "You are a brave person"

ElseIf (TheColorYouLike = vbMagenta) Then

MsgBox "You are a sad person"

Else

MsgBox "You are an average person"

End If

II.6.2 Câu lệnh lựa chọn Select Case

Trong trường hợp có quá nhiều các điều kiện cần phải kiểm tra, nếu ta dùng cấu trúc rẽ

nhánh If…Then thì đoạn lệnh không được rõ ràng, khó kiểm tra, sửa đổi khi có sai sót

Ngược lại với cấu trúc Select…Case, biểu thức điều kiện sẽ được tính toán một lần vào

đầu cấu trúc, sau đó VB sẽ so sánh kết quả với từng trường hợp (Case) Nếu bằng nó thi

hành khối lệnh trong trường hợp (Case) đó

Sơ đồ khối

Cú pháp

Select Case <biểu thức kiểm tra>

Case <Danh sách kết quả biểu thức 1>

Trang 26

Bộ môn Tự động hóa Thiết kế Cầu đường Page 4

Mỗi danh sách kết quả biểu thức sẽ chứa một hoặc nhiều giá trị Trong trường hợp có

nhiều giá trị thì mỗi giá trị cách nhau bởi dấu phẩy (,) Nếu có nhiều Case cùng thỏa điều

kiện thì khối lệnh của Case đầu tiên sẽ được thực hiện

Toán tử Is: Được dùng để so sánh <Biểu thức kiểm tra> với một biểu thức nào đó

Toán tử To: Dùng để xác lập miền giá trị của <Biểu thức kiểm tra>

Thực hiện một khối lệnh lặp theo một biến đếm với số lần lặp đã được xác định

Cú pháp

For <biến_đếm> = <điểm_đầu> to <điểm_cuối> [Step <bước_nhảy>]

Khối_lệnh

Next

Biến đếm, điểm đầu, điểm cuối, bước nhảy là những giá trị số (Integer, Single,…) Bước

nhảy có thể là âm hoặc dương Nếu bước nhảy là số âm thì điểm đầu phải lớn hơn điểm

cuối, nếu không khối lệnh sẽ không được thi hành

Khi Step không được chỉ ra, VB sẽ dùng bước nhảy mặc định là 1

Ví dụ: Tính N!

- Xây dựng giao diện

- Viết mã cho sự kiện Command1_Click

Trang 27

Bộ môn Tự động hóa Thiết kế Cầu đường Page 5

Private Sub Command1_Click()

Dim i As Integer, n As Integer, Kq As Long

II.6.4 Câu lệnh lặp xác định trong một tập hợp

Thực hiện một khối lệnh lặp theo một biến chạy trong một tập hợp xác định

- Phần tử trong tập hợp chỉ có thể là biến Variant, biến Object, hoặc một đối tượng

trong Object Browser

- Không dùng For Each Next với mảng chứa kiểu tự định nghĩa vì Variant

không chứa kiểu tự định nghĩa

Ví dụ:

Dim DanhSach(1) As String

Dim HoTen As Variant

DanhSach(0) = "Tran Van A": DanhSach(1) = "Nguyen Thi B"

For Each HoTen In DanhSach

MsgBox HoTen

Next

II.6.5 Câu lệnh lặp không xác định

Thực hiện một khối lệnh với số lần lặp không định trước, theo một biểu thức điều kiện

(biểu thức điều kiện có giá trị Boolean: True hoặc False)

Kiểu 1: Lặp trong điều kiện là True

Loop While <điều kiện>

Kiểu 2: Lặp trong điều kiện là False

Trang 28

Bộ môn Tự động hóa Thiết kế Cầu đường Page 6

Ví dụ minh họa:

Dim Check, Counter

Check = False: Counter = 0 ' Khởi tạo

Do While Counter < 5 ' Counter chạy từ 0 đến 4 => True

Counter = Counter + 1 ' Tăng biến đếm

MsgBox Counter ‘ Thông báo giá trị biến đếm

Loop ‘ Có thể chuyến While Counter < 5 xuống đây, lúc đó Counter sẽ chạy đến 5

Do Until Check ' Check có giá trị False

Counter = Counter + 1 ' Tăng biến đếm

If Counter = 5 Then Check= True

Loop

Để thoát khỏi vòng lặp, sử dụng câu lệnh Exit Do

II.7 CHƯƠNG TRÌNH CON (HÀM VÀ THỦ TỤC)

II.7.1 Khái niệm

Trong những chương trình lớn, có thể có những đoạn chương trình viết lặp đi lặp lại nhiều

lần, để tránh rườm rà và mất thời gian khi viết chương trình người ta thường phân chia

chương trình thành nhiều module, mỗi module giải quyết một công việc nào đó Các

module như vậy gọi là các chương trình con

Một tiện lợi khác của việc sử dụng chương trình con là ta có thể dễ dàng kiểm tra xác định

tính đúng đắn của nó trước khi ráp nối vào chương trình chính và do đó việc xác định sai

sót để tiến hành hiệu đính trong chương trình chính sẽ thuận lợi hơn

Trong Visual Basic, chương trình con có hai dạng là hàm (Function) và thủ tục (Sub)

Hàm khác thủ tục ở chỗ hàm trả về cho lệnh gọi một giá trị thông qua tên của nó còn thủ

tục thì không Do vậy ta chỉ dùng hàm khi và chỉ khi thoả mãn đồng thời các yêu cầu sau

đây:

- Ta muốn nhận lại một kết quả (chỉ một mà thôi) khi gọi chương trình con

- Ta cần dùng tên chương trình con (có chứa kết quả) để viết trong các biểu thức

Nếu không thỏa mãn hai điều kiện ấy thì dùng thủ tục

II.7.2 Hàm - Function

Hàm (Function) là một chương trình con có nhiệm vụ tính toán và cho ta một kết quả Kết

quả này được trả về trong tên hàm

Cách khai báo:

[Private | Public | Static] Function <Tên hàm> ([<tham số>[As <KiểuDL>]]) [As <KiểuDL>]

<Các dòng lệnh> hay <Các khai báo>

End Function

Trong đó:

- <Tên hàm>: Tên hàm được đặt giống quy tắc tên biến, hằng,…

- <tham số>[As <KiểuDL>]: có thể có hay không Nếu có nhiều tham số thì mỗi tham số

phân cách nhau dấu phẩy Nếu không xác định kiểu tham số thì tham số có kiểu Variant

- <KiểuDL>: Kết quả trả về của hàm, trong trường hợp không khai báo As <kiểu dữ liệu>,

mặc định, VB hiểu kiểu trả về kiểu Variant

Cú pháp gọi hàm: <Tên hàm>[(tham số)]

Ví dụ: Tính giai thừa N

Trang 29

Bộ môn Tự động hóa Thiết kế Cầu đường Page 7

II.7.3 Thủ tục - Sub

Thủ tục là một chương trình con thực hiện một hay một số tác vụ nào đó Thủ tục có thể có

hay không có tham số

Cách khai báo:

[Private | Public] [Static] Sub <tên thủ tục> ([<tham số>[As <Kiểu dữ liệu>]])

<Các dòng lệnh> hay <Các khai báo>

End Sub

Trong đó:

- <Tên thủ tục>: Tên được đặt giống quy tắc tên biến, hằng,…

- ([<tham số>[As <Kiểu dữ liệu>] : có thể có hay không Nếu có nhiều tham số thì mỗi

tham số phân cách nhau dấu phẩy Nếu không xác định kiểu tham số thì tham số có kiểu

Variant

Để gọi thủ tục để thực thi, có 2 cách:

<Tên thủ tục> [<Các tham số >]

Hoặc Call <Tên thủ tục> ([<Các tham số >])

Ví dụ: Thủ tục kiểm tra xem số nguyên N có phải là số nguyên tố hay không?

Sub KTraNgTo(N As Integer)

II.7.4 Truyền tham số cho chương trình con

Có hai cách truyền tham số cho chương trình con:

- ByVal – Truyền tham số theo tham trị (giá trị)

Một bản sao của biến được truyền vào chương trình con Chương trình con không làm việc

với biến mà chỉ làm việc với bản sao giá trị của biến Do đó, nếu trong chương trình con có

sự thay đổi giá trị của biến thì chỉ có bản sao bị ảnh hưởng mà không liên quan đến giá trị

của biến Trong VB, truyền tham số theo tham trị phải được chỉ rõ bằng từ khóa ByVal

Trang 30

Bộ môn Tự động hóa Thiết kế Cầu đường Page 8

Print A

End Sub

Kết quả thực hiện của đoạn chương trình trên: 4 8 4

- ByRef – Truyền tham số theo tham biến (địa chỉ)

Địa chỉ của biến sẽ được truyền cho chương trình con Do đó bất kì thay đổi nào của thủ

tục trên biến sẽ tác động trực tiếp lên giá trị của biến Trong VB, truyền tham số theo tham

biến là mặc định Dùng từ khóa ByRef

Kết quả thực hiện của đoạn chương trình trên: 4 8 8

Các ví dụ tạo chương trình con đơn giản

- Cách tạo chương trình con trong VB: Tools > Add Procedure

Public Function GiaiThua(ByVal A As Integer ) As Integer

- Truyền tham số dạng mảng (Byref)

Function TrungBinhCong(X() As Integer) As Double

Dim vItem As Variant

Dim iTong As Integer

iTong = 0

For Each vItem In X

Tong = Tong + vItem

Trang 31

Bộ môn Tự động hóa Thiết kế Cầu đường Page 9

Next

TrungBinhCong = Tong / UBound(X)

End Function

Private Sub Form_Load()

Dim List(1 To 5) As Integer

- Tham số có tùy chọn có hoặc không (Optional)

Function DienTichCN(X As Double , Optional Y As Variant ) As Double ‘Có thể gán Y 1 giá trị mặc định

If IsMissing (Y) Then ‘ Trường hợp không có Y

Private Sub Form_Load()

MsgBox DienTichCN(3) ‘Diện tích hình vuông

MsgBox DienTichCN(3, 4) ‘Diện tích hình chữ nhật

End Sub

II.8 TRUY XUẤT DỮ LIỆU TRONG VISUAL BASIC

II.8.1 Các khái niệm

a Module:

Một ứng dụng đơn giản có thể chỉ có một Form, lúc đó tất cả mã lệnh của ứng dụng đó

được đặt trong cửa sổ mã lệnh của Form đó (gọi là Form Module) Khi ứng dụng được

phát triển lớn lên, chúng ta có thể có thêm một số Form nữa và lúc này khả năng lặp đi lặp

lại nhiều lần của một đoạn mã lệnh trong nhiều Form khác nhau là rất lớn Để tránh việc

lặp đi lặp lại trên, ta tạo ra một Module riêng rẽ chứa các chương trình con được dùng

chung Visual Basic cho phép 3 loại Module:

Module Form: đi kèm với mỗi một Form là một module của Form đó để chứa mã lệnh

của Form này Với mỗi điều khiển trên Form, module Form chứa các chương trình con và

chúng sẵn sàng được thực thi để đáp ứng lại các sự kiện mà người sử dụng ứng dụng tác

động trên điều khiển Module Form được lưu trong máy tính dưới dạng các tập tin có đuôi

là *.frm

Module chuẩn (Standard module): Mã lệnh không thuộc về bất cứ một Form hay một

điều khiển nào sẽ được đặt trong một module đặc biệt gọi là module chuẩn (được lưu với

đuôi *.bas) Các chương trình con được lặp đi lặp lại để đáp ứng các sự kiện khác nhau

của các điều khiển khác nhau thường được đặt trong module chuẩn

Module lớp (Class module): được sử dụng để tạo các đối tượng Các đối tượng sẽ có các

thuộc tính và phương thức của lớp mà nó tạo ra (Class module được lưu với đuôi *.cls)

b Phạm vi của biến(scope): xác định biến có thể sử dụng trong phạm vi nào Một biến sẽ

thuộc một trong 3 loại phạm vi:

Trang 32

Bộ môn Tự động hóa Thiết kế Cầu đường Page 10

Phạm vi biến cục bộ

Phạm vi biến module

Phạm vi biến toàn cục

II.8.2 Biến toàn cục

Khái niệm: Biến toàn cục là biến có phạm vi hoạt động trong toàn bộ ứng dụng

Khai báo: Global <Tên biến> [As <Kiểu dữ liệu>]

II.8.3 Biến cục bộ

Khái niệm: Biến cục bộ là biến chỉ có hiệu lực trong những khối chương trình mà chúng

được định nghĩa

Khai báo: Dim <Tên biến> [As <Kiểu dữ liệu>]

Lưu ý: Biến cục bộ được định nghĩa bằng từ khóa Dim sẽ kết thúc ngay khi việc thi hành

thủ tục kết thúc

II.8.4 Biến module

Khái niệm: Biến Module là biến được định nghĩa trong phần khai báo

(General|Declaration) của Module và mặc nhiên phạm vi hoạt động của nó là toàn bộ

Module ấy

Khai báo: Biến Module được khai báo bằng từ khóa Dim hay Private & đặt trong phần

khai báo của Module

Ví dụ: Private Num As Integer

Tuy nhiên, các biến Module này có thể được sử dụng bởi các khối chương trình khác trong

các Module khác Muốn thế chúng phải được khai báo là Public trong phân Khai báo

(General|Declaration) của Module

Ví dụ: Public Num As Integer

Lưu ý: Không thể khai báo biến với từ khóa là Public trong chương trình con

II.9 GỠ LỖI TRONG VISUAL BASIC (Debug)

Các thao tác bẫy các lỗi thực thi của chương trình là cần thiết đối với các ngôn ngữ lập

trình Người lập trình khó kiểm soát hết các tình huống có thể gây ra lỗi Chẳng hạn người

ta khó có thể kiểm tra chặt chẽ việc người dùng đang chép dữ liệu từ đĩa mềm (hay CD)

khi chúng không có trong ổ đĩa Nếu có các thao tác bẫy lỗi ở đây thì tiện cho người lập

trình rất nhiều

Để tiện việc debug, ta dùng Debug Toolbar: View | Toolbars | Debug

VB6 IDE sẽ hiển thị Debug Toolbar như sau:

Trang 33

Bộ môn Tự động hóa Thiết kế Cầu đường Page 11

2.9.1 Xử lý lỗi lúc RunTime

Khi EXE của một chương trình viết bằng VB6 đang chạy, nếu gặp Error, nó sẽ hiển thị

một Error Dialog cho biết lý do vắn tắt Nếu bạn chạy chương trình trong VB6 IDE, ta có

thể đến vị trí lỗi và sửa nó

Visual Basic cũng cung cấp cho ta một số cấu trúc để bẫy các lỗi đang thực thi

Dạng 1:

On Error GoTo <Tên nhãn>

<Các câu lệnh có thể gây ra lỗi>

<Tên nhãn>:

<Các câu lệnh xử lý lỗi>

Ý nghĩa: <Tên nhãn>: là một tên được đặt theo quy tắc của một tên biến

Nếu một lệnh trong <Các câu lệnh có thể gây ra lỗi> thì khi chương trình thực thi đến câu

lệnh đó, chương trình sẽ tự động nhảy đến đoạn chương trình định nghĩa bên dưới <Tên

nhãn> để thực thi

Dạng 2:

On Error Resume Next

<Các câu lệnh có thể gây ra lỗi>

Ý nghĩa: Nếu một lệnh trong <Các câu lệnh có thể gây ra lỗi> thì khi chương trình thực thi

đến câu lệnh đó, chương trình sẽ tự động bỏ qua câu lệnh bị lỗi và thực thi câu lệnh kế tiếp

2.9.2 Dùng khai báo Option Explicit

Chúng ta thường nhìn thấy dòng chữ Option Explicit ở dòng trên cùng của các đoạn mã

VB Vậy tại sao lại có nó và nó có tác dụng gì?

Khai báo Option Explicit yêu cầu bạn phải khai báo các biến trước khi sử dụng Việc này

giúp ta có thế bảo đảm chúng ta sẽ không bị sai tên một biến nào cả

Ví dụ:

Private Sub Command1_Click()

Dim sMississippi As String

sMississipi = "Hello" '< Note the missing "p"

MsgBox sMississippi

End Sub

So sánh 2 trường hợp có hoặc không có Option Explicit

Thêm nữa việc sử dụng Option Explicit là rất quan trọng vì nếu không khai báo biến trước,

VB sẽ mặc định kiểu của biến đó là Variant Như vậy khi chạy chương trình sẽ chiếm

nhiều bộ nhớ hơn, chậm hơn

2.9.3 Dùng Breakpoints

Breakpoint làm chương trình ngừng lại ở vị trí mà ta muốn trong code, tiếp đó ta có thể

cho chương trình chạy từng bước và ta có thể kiểm tra các biến xem chúng làm việc có

đúng không

Để sử dụng Breakpoint chọn đoạn cần kiểm tra rồi click bên trái của hàng code

Trang 34

Bộ môn Tự động hóa Thiết kế Cầu đường Page 12

Một cách khác để đặt một breakpoint là đưa con trỏ soạn thảo đến dòng cần đặt rồi chọn F9

để tắt mở Breakpoint

Lúc chương trình đang dừng, ta có thể xem trị số của một biến bằng cách để con trỏ trên

biến đó, giá trị của biến sẽ hiện ra như hình dưới:

Muốn hủy bỏ tất cả breakpoints: Debug | Clear All Breakpoints

2.9.4 Dùng Immediate Window

Immediate Window cho phép ta thực thi những câu lệnh VB trong khi chương trình đang

dừng

Ví dụ: Dùng Print để hiển thị trị số của một biến hay kết quả của một Function, gọi một

Sub hay thay đổi trị số một biến trước khi tiếp tục cho chương trình chạy lại

Thay vì dùng "Print ICounter" ta có thể dùng "? ICounter"

2.9.5 Dùng Watch Window

Watch Window giúp chúng ta kiểm soát biến hay một biểu thức nào đó trong quá trình

thực thi

Cửa sổ Watch: View | Watch Window

Để thêm một Watch: Debug | Add Watch

Có 3 kiểu giám sát:

Watch Expression – Code sẽ không dừng lại nhưng khi ta chạy chương trình từng bước,

giá trị của biểu thức sẽ hiển thị trong cửa sổ Watch

Break When Value Is True - Visual Basic sẽ dừng việc thực thi khi biểu thức có giá trị

True (Giá trị khác 0)

Break When Value Changes - Visual Basic sẽ dừng lại khi giá trị của biểu thức thay đổi

2.9.2 Dùng Comment (chú thích)

Lúc viết mã chương trình cần thêm Comment đầy đủ để bất cứ khi nào đọc lại đoạn mã đó

ta có thể hiểu ngay mục đích của nó

Ta chỉ nên viết chú thích ở những điểm nào khác thường, khó hiểu nhằm giải thích tại sao

lại làm như thế

Bên cạnh đó nếu là một lập trình viên chuyên nghiệp, gần như chắc chắn code bạn viết sẽ

được người khác đọc và bảo trì Do đó code phải đơn giản, dễ hiểu và có những chú thích

cụ thể

Trong VB, để viết một dòng chú thích ta sử dụng ký tự “’” ở đầu dòng

Trang 35

Bộ môn Tự động hóa Thiết kế Cầu đường Page 13

II.10 TỔ CHỨC CHƯƠNG TRÌNH

Với những chương trình phức tạp, việc xây dựng chương trình theo cấu trúc để có thể quản

lý và bảo trì dễ dàng là hết sức cần thiết Điều đó được thực hiện bằng cách chia thành các

khối chức năng, trong các khối này sẽ có các chương trình con, các biến, hằng liên quan

đến chức năng ấy Trong VB, các khối chức năng đó được tổ chức thành các Module

Ví dụ để xây dựng một chương trình tính toán và kiểm toán một dầm giản đơn, có thể thực

hiện theo một cấu trúc thông thường như sau:

- Nhập, lưu trữ và xử lý dữ liệu về hình học

- Nhập, lưu trữ và xử lý dữ liệu về vật liệu

- Nhập, lưu trữ và xử lý dữ liệu về cáp DƯL

- Tính toán tải trọng và tổ hợp tải trọng

- Phân tích kết cấu: tính toán nội lực và biến dạng

- Kiểm toán

- Xuất kết quả

Tổ chức các khối chức năng thể hiện bằng sơ đồ như sau:

Nhập dữ liệu

Kết thúc Module hiển thị kết quả

Trang 36

Bộ môn Tự động hóa Thiết kế Cầu đường Page 14

CHƯƠNG III

FORM VÀ MỘT SỐ ĐIỀU KHIỂN THÔNG DỤNG

Mục tiêu:

Chương này giới thiệu về một số điều khiển cơ bản để tạo nên giao diện

cho các ứng dụng cũng như một số khái niệm trong lập trình với VB;

Các điều khiển dùng trong việc tạo giao diện cho ứng dụng chạy trên

Windows Việc nắm bắt được các vấn đề này làm cho công việc tạo giao diện cho

ứng dụng được nhanh chóng

Học xong chương này, sinh viên phải nắm bắt được các vấn đề sau:

- Khái niệm về điều khiển, thuộc tính, phương thức, sự kiện, lập trình sự

kiện…

- Quy tắc đặt tên điều khiển trong VB

- Sử dụng Form trong thiết kế giao diện

- Sử dụng các điều khiển thông dụng

Kiến thức có liên quan:

- Cách thức sử dụng môi trường phát triển VB

- Các cấu trúc lập trình trong VB

- Cách thức xử lý sự kiện

III.1 Các khái niệm liên quan

Điều khiển (Controls):

Các thành phần có sẵn để người lập trình tạo giao diện tương tác với người dùng Mỗi điều

khiển thực chất là một đối tượng, do vậy nó sẽ có một số điểm đặc trưng cho đối tượng,

chẳng hạn như các thuộc tính, các phương thức & các sự kiện

Thuộc tính:

Các đặc trưng của một điều khiển tạo nên dáng vẻ của điều khiển đó

Phương thức:

Các điều khiển có thể thực thi một số tác vụ nào đó, các tác vụ này được định nghĩa sẵn

bên trong các phương thức (còn gọi là chương trình con: hàm & thủ tục), người lập trình có

thể gọi thực thi các phương thức này nếu cần

Sự kiện:

Là hành động của người dùng tác động lên ứng dụng đang thực thi

Ví dụ: - Nhấn phím bất kỳ trên bàn phím

- Nhấp chuột

Các thành phần giao diện có khả năng đáp ứng lại sự kiện Chẳng hạn khi chúng ta nhấp

chuột vào button, lúc đó button nhận biết được sự kiện này; hay như textbox nhận biết

được sự kiện bàn phím tác động lên nó

Một ứng dụng trên Windows thường được thực hiện nhờ vào việc đáp ứng lại các sự kiện

của người dùng

Trang 37

Bộ môn Tự động hóa Thiết kế Cầu đường Page 15

Lập trình sự kiện:

Các thành phần giao diện có khả năng nhận biết được các sự kiện từ phía người dùng Tuy

nhiên khả năng đáp ứng lại các sự kiện được thực hiện bởi người lập trình

Khi một thành phần giao diện được sử dụng, người lập trình phải xác định chính xác hành

động của thành phần giao diện đó để đáp ứng lại một sự kiện cụ thể Lúc đó người lập trình

phải viết đoạn mã lệnh mà đoạn mã lệnh này sẽ được thực thi khi sự kiện xảy ra

Chẳng hạn, trong ứng dụng Paint của Windows; khi người sử dụng nhấp chuột vào nút vẽ

hình elip sau đó dùng chuột vẽ nó trên cửa sổ vẽ, một hình elip được vẽ ra

Trong lập trình sự kiện, một ứng dụng được xây dựng là một chuỗi các đáp ứng lại sự kiện

Tất cả các hành động của ứng dụng là đáp ứng lại các sự kiện Do vậy người lập trình cần

phải xác định các hành động cần thiết của ứng dụng; phân loại chúng; sau đó viết các đoạn

- Mã lệnh cho sự kiện Click của In giấy - -

- Khi người dùng không tác động vào ứng dụng, ứng dụng không làm gì cả

- Khi người dùng nhập dữ liệu vào các ô nhập Họ và tên, Địa chỉ; sự kiện bàn phím xảy ra

trên các ô nhập Tuy nhiên, ứng dụng vẫn không làm gì cả vì không có đoạn mã lệnh nào

đáp ứng các sự kiện này

- Khi người dùng nhấp nút chọn Ghi đĩa, ứng dụng tìm kiếm trong mã lệnh của mình thấy

có đoạn mã lệnh đáp ứng lại sự kiện này; lúc đó đoạn mã lệnh được thực thi

- Tương tự như vậy đối với nút chọn In giấy

Cách xác lập các thuộc tính & các phương thức trong chương trình

<Thuộc tính Name của điều khiển>.<Tên thuộc tính>

<Thuộc tính Name của điều khiển>.<Tên phương thức>[(<Các tham số>)]

Tên điều khiển (thuộc tính Name)

Đây là thuộc tính xác định tên của điều khiển trong ứng dụng Tên này được đặt theo quy

tắc:

o Tên có thể dài từ 1 - 40 ký tự

o Tên phải bắt đầu với ký tự chữ, có thể chữ hoa hay thường

o Sau ký tự đầu tiên, tên có thể chứa ký tự, số hay dấu gạch dưới

Trang 38

Bộ môn Tự động hóa Thiết kế Cầu đường Page 16

III.2 Form

III.2.1 Khái niệm

Chương trình ứng dụng giao tiếp với người dùng thông qua các Form; các điều khiển

(Controls) được đặt lên bên trên giúp cho Form thực hiện được công việc giao tiếp với

người dùng

Form là các cửa số được lập trình nhằm hiển thị dữ liệu và nhận thông tin từ phía người

dùng

III.2.2 Thuộc tính

o Name: thuộc tính này như là một định danh nhằm xác định tên của Form là gì? Sử dụng

thuộc tính này để truy xuất đến các thuộc tính khác cùng với phương thức có thể thao tác

được trên Form

o Caption: chuỗi hiển thị trên thanh tiêu đề của Form

o Icon: Biểu tượng được dùng trong thanh tiêu đề của Form

o WindowState: xác định Form sẽ có kích thước bình thường (Normal=0), hay

Minimized (=1), Maximized =(2)

o Font: xác lập Font cho Form Thuộc tính này sẽ được các điều khiển nằm trên nó thừa

kế Tức là khi ta đặt một điều khiển lên Form, thuộc tính Font của điều khiển ấy sẽ tự động

trở nên giống y của Form

III.2.3 Sự kiện

O Form_Initialize: Sự kiện này xảy ra trước nhất và chỉ một lần khi Form được tạo ra

O Form_Load: Sự kiện này xảy ra mỗi lần Form được gọi hiển thị Thường dùng sự kiện

Form_Load để khởi tạo các biến, điều khiển

o Form_Activate: Mỗi lần một Form được kích hoạt (active) thì một sự kiện Activate

phát sinh Ta thường dùng sự kiện này để cập nhật lại giá trị các điều khiển trên Form

o Form_QueryUnload: Khi người sử dụng chương trình nhấp chuột vào nút X phía trên

bên phải để đóng Form thì một sự kiện QueryUnload được sinh ra Đoạn chương trình con

dưới đây mô tả thủ tục xử lý sự kiện QueryUnload

Ví dụ: Ta có thể hủy hành động đóng Form bằng cách đặt Cancel = 1

o Form_Resize: Sự kiện này xảy ra mỗi khi Form thay đổi kích thước

III.3 Nhãn (Label)

III.3.1 Khái niệm

Nhãn là điều khiển dạng đồ họa cho phép người sử dụng hiển thị chuỗi ký tự trên Form

III.3.2 Thuộc tính

o Caption: Thuộc tính quy định chuỗi ký tự hiển thị khi ta tạo một điều khiển nhãn

o Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

o BackStyle, BackColor: BackStyle quy định là nhãn trong suốt hay không BackColor

quy định màu nền của nhãn trong trường hợp không trong suốt

III.3.3 Sự kiện

o Change: Xảy ra mỗi khi nhãn thay đổi giá trị

o Click: Mỗi khi nhãn được chuột nhấp lên, sự kiện này xảy ra

o DblClick: Xảy ra khi người sử dụng nhấp đúp chuột lên điều khiển nhãn

Trang 39

Bộ môn Tự động hóa Thiết kế Cầu đường Page 17

III.4 Khung (Frame)

Khung là một điều khiển giúp việc bố trí giao diện của Form rõ ràng hơn Thông thường

các điều khiển cùng phục vụ cho một công việc nào đó sẽ được đặt trong một khung nhằm

làm nổi bật vai trò của chúng

Khung cũng có các thuộc tính và sự kiện thông dụng như của điều khiển nhãn như: Name,

Caption, Click, DblClick

III.3 Nút lệnh (CommandButton)

III.3.1 Khái niệm

Nút lệnh là một điều khiển dùng để bắt đầu, ngắt hoặc kết thúc một quá trình Khi nút lệnh

được chọn thì nó trông như được nhấn xuống, do đó nút lệnh còn được gọi là nút nhấn

(Push Button) Người sử dụng luôn có thể chọn một nút lệnh nào đó bằng cách nhấn chuột

o Enabled: Trong một Form, có thể có nhiều nút lệnh để thực hiện nhiều công việc khác

nhau và tại một thời điểm nào đó ta chỉ được phép thực hiện một số công việc Nếu giá trị

thuộc tính Enabled là False thì nút lệnh đó không có tác dụng Giá trị mặc định của thuộc

tính này là True Ta có thể thay đổi giá trị của thuộc tính tại thời điểm chạy ứng dụng

o ToolTipText: cho phép hiển thị một đoạn văn bản chú thích công dụng của nút lệnh khi

người sử dụng dùng chuột dừng chuột trên nút nhấn

o Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

III.3.3 Sự kiện

o Click: đây là sự kiện thường xảy ra với nút lệnh Mỗi khi một nút lệnh được chọn, sự

kiện này được kích hoạt Do đó, người sử dụng sẽ viết mã các lệnh để đáp ứng lại sự kiện

này

III.4 Ô nhập dữ liệu (TextBox)

III.3.1 Khái niệm

Ô nhập liệu là một điều khiển cho phép nhận thông tin do người dùng nhập vào Đối với ô

nhập liệu ta cũng có thể dùng để hiển thị thông tin, thông tin này được đưa vào tại thời

điểm thiết kế hay thậm chí ở thời điểm thực thi ứng dụng

Trang 40

Bộ môn Tự động hóa Thiết kế Cầu đường Page 18

III.3.2 Thuộc tính

o MaxLength: Thuộc tính quy định số ký tự tối đa có thể nhập vào ô nhập liệu Nếu số ký

tự nhập vào vượt quá số ký tự tối đa thì chỉ có đúng số ký tự tối đa được ghi nhận vào

trong thuộc tính Text

o Text: Dùng để nhập vào thông tin cần hiển thị trong Textbox tại thời điểm thiết kế hoặc

nhận giá trị do người dùng nhập vào tại thời điểm chạy ứng dụng

Ví dụ: MsgBox Text1.Text

Đoạn mã này viết trong sự kiện Click của nút lệnh OK Cho phép hộp thông báo hiển thị

nội dung do người dùng nhập vào ô nhập liệu

o Locked: Thuộc tính cho phép người dùng thay đổi nội dung của ô nhập liệu được hay

không? Nhận 2 giá trị True hoặc False Nếu False thì người dùng có thể thay đổi nội dung

của ô nhập liệu Mặc định là False

o PasswordChar: Thuộc tính này quy định cách hiển thị thông tin do người dùng nhập

vào Chẳng hạn, nếu ta nhập vào giá trị thuộc tính này là * thì các ký tự nhập vào điều hiển

thị bởi dấu * Thuộc tính này thường được dùng trong trường hợp thông tin nhập vào cần

được che giấu Ví dụ mật khẩu đăng nhập

o Multiline: Thuộc tính quy định ô nhập liệu có được hiển thị thông tin dưới dạng nhiều

hàng hay không, nếu là True thì ô nhập liệu cho phép nhiều hàng

o Font, Fore Color: Quy định kiểu chữ, kích thước, màu hiển thị

o SelLength: Trả về hoặc gán số lượng ký tự được chọn

o SelStart: Trả về hoặc xác định điểm bắt đầu của chuỗi được chọn Đây là vị trí bắt đầu

chèn một chuỗi mới trong trường hợp không có đánh dấu chọn chuỗi

o SelText: Trả về chuỗi được chọn hoặc thay thế chuỗi được chọn bằng chuỗi Chuỗi trả

về sẽ là rỗng nếu như không đánh dấu chọn chuỗi nào

Ba thuộc tính SelLength, SelStart, SelText chỉ có tác dụng tại thời điểm chạy ứng dụng

III.3.3 Sự kiện

o KeyPress: xảy ra khi người sử dụng chương trình nhấn một phím Đối với điều khiển

TextBox, ta thường dùng nó để lọc (filter out) các phím không chấp nhận Sự kiện

KeyPress cho ta một mã Ascii của phím vừa nhấn, dạng số có giá trị từ 0 đến 255

Trong ví dụ dưới đây, TextBox Text1 sẽ chỉ nhận biết các phím là số (0 - 9), không nhận

biết các phím khác:

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii < 48 Or KeyAscii > 57 Then ‘ Mã Ascii của 0 là 48, của 9 là 57

KeyAscii = 0

End If

End Sub

o KeyDown, KeyUp: mỗi sự kiện KeyPress lại cho ta một cặp sự kiện KeyDown/KeyUp

Sự kiện KeyDown/KeyUp có 2 tham số là KeyCode và Shift Sự kiện này cho phép ta

nhận biết được các phím đặc biệt trên bàn phím Trong ví dụ dưới đây, ta hiển thị tên các

phím chức năng mà người sử dụng chương trình nhấn vào:

Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer)

If (KeyCode >= 112) And (KeyCode <= 123) Then

MsgBox "Ban vua nhan phim chuc nang: F" & Trim(Str(KeyCode -

111))

EndIf

End Sub

Ngày đăng: 22/04/2014, 22:09

HÌNH ẢNH LIÊN QUAN

Bảng ASCII. - Tin học xây dựng
ng ASCII (Trang 14)
Sơ đồ khối - Tin học xây dựng
Sơ đồ kh ối (Trang 24)
Sơ đồ khối - Tin học xây dựng
Sơ đồ kh ối (Trang 25)
Hình minh họa các kích thước của màn ảnh và Form. - Tin học xây dựng
Hình minh họa các kích thước của màn ảnh và Form (Trang 64)
Hình chữ nhật 4 góc tròn: - Tin học xây dựng
Hình ch ữ nhật 4 góc tròn: (Trang 69)
Hình dạng   Giá trị  Hằng - Tin học xây dựng
Hình d ạng Giá trị Hằng (Trang 75)
Hình bình hành. - Tin học xây dựng
Hình b ình hành (Trang 78)
Hình đối tượng sử dụng trong Microsfot Excel. Mô hình đối tượng đầy đủ được trình bày - Tin học xây dựng
nh đối tượng sử dụng trong Microsfot Excel. Mô hình đối tượng đầy đủ được trình bày (Trang 83)

TỪ KHÓA LIÊN QUAN

w