Ngoài phần chính là lập trình với cơ sở dữ liệu, các tính năng đồ họa trong Visual Basic cũng đ-ợc ứng dụng rất rộng rãi.. - Menu Add- ins: Dùng để nạp các công cụ điều khiển khác nh-: A
Trang 1Lời nói đầu
Trong xã hội phát triển ngày nay, thông tin thực sự trở thành nguồn
tài nguyên quan trọng Xã hội phát triển dẫn đến thông tin cũng phong
phú và đa dạng Với ph-ơng pháp thủ công truyền thống không thể đáp
ứng đ-ợc các yêu cầu đặt ra Để có thể xử lý thông tin một cách nhanh
chóng, chính xác và hiệu quả, công nghệ thông tin đã cung cấp cho chúng
ta những biện pháp và công cụ cần thiết và giải quyết vấn đề một cách dễ
dàng
Công nghệ thông tin đã đạt đ-ợc những thành quả đáng khích lệ, nó
mang lại lợi nhuận đáng kể cho nền kinh tế Nhà n-ớc đã quan tâm và đầu
t- coi công nghệ thông tin là một trong những nghành mũi nhọn đ-ợc -u
tiên hàng đầu để đ-a nghành này phát triển ngang hàng với các n-ớc trong
khu vực cũng nh- trên thế giới Tuy công nghệ thông tin còn non trẻ
nh-ng đến nay nó đã đáp ứng đ-ợc ứng dụng trên hầu hết mọi lĩnh vực
Đến nay công nghệ thông tin đã thực sự thâm nhập vào mọi lĩnh vực
của đời sống kinh tế và xã hội, với ph-ơng thức hoàn toàn mới mẻ nhanh
chóng chính xác và hiệu quả Nó đã giúp chúng ta giải quyết các bài toán
một cách dễ dàng
Trong đề tài này em đề cập đến “ Ngôn ngữ lập trình Visual Basic
và bài toán tìm đ-ờng đi ngắn nhất”
Ch-ơng trình đ-ợc xây dựng trên ngôn ngữ Visual Basic vì đây là
ngôn ngữ t-ơng đối mới ở Việt nam, dễ sử dụng và đ-ợc rất nhiều ng-ời
Trang 2Em xin cảm ơn thầy giáo Ths Vũ Văn Nam đã h-ớng dẫn và giúp
đỡ tận tình em trong thời gian qua Xin cảm ơn các thầy giáo, cô giáo
trong Khoa Công Nghệ Thông Tin tr-ờng Đại Học Vinh và các bạn trong
lớp 40E3 đã góp nhiều ý kiến cho ch-ơng trình này
Vinh, Ngày 18/04/2004
Sinh viên thực hiện
Nguyễn Văn Nhẫn
Trang 3Lý do chọn đề tài:
Trong tr-ờng Đại học chúng ta chỉ đ-ợc học cơ bản về một số ngôn
ngữ lập trình mang tính lý thuyết nhiều hơn là ứng dụng nh- Pascal, C,
Assembly, Trong cuộc sống nhiều bài toán quản lý, tính toán đòi hỏi
ngoài sự chính xác, tính đúng đắn còn cần phải có tính thẩm mỹ cao Để
đáp ứng đ-ợc điều đó, em thấy mình cần tìm hiểu thêm một số ngôn ngữ
lập trình trong môi tr-ờng Windows mà chúng hỗ trợ rất nhiều trong quá
trình thiết kế giao diện ch-ơng trình Visual Basic là một trong số các
ngôn ngữ đó
Visual Basic là một ngôn ngữ mới, hỗ trợ rất mạnh cho ng-ời lập
trình, nó có thể hỗ trợ, kết nối đ-ợc với nhiều ngôn ngữ khác Ngoài phần
chính là lập trình với cơ sở dữ liệu, các tính năng đồ họa trong Visual
Basic cũng đ-ợc ứng dụng rất rộng rãi
Em quyết định chọn đề tài này với hy vọng sẽ nghiên cứu và hiểu
biết hơn về Visual Basic đặc biệt là phần cơ sở dữ liệu và đồ hoạ Những
kiến thức mình học đ-ợc, nghiên cứu đ-ợc sẽ là hành trang sau khi ra
tr-ờng
Để thể hiện một phần kiến thức nghiên cứu đ-ợc, em cài đặt một
ch-ơng trình thể hiện bài toán “ Tìm đ-ờng đi ngắn nhất” , là bài toán
đ-ợc ứng dụng khá phổ biến và rộng rãi, đặc biệt trong lĩnh vực giao
thông vận tải Một mạng l-ới giao thông trên đô thị mỗi ng-ời chúng ta
cần di chuyển từ điểm này tới điểm kia thì ph-ơng án đi đ-ờng nào để tiết
kiệm nhất cũng là một vấn đề mà hầu nh- mỗi ng-ời phải lựa chọn
Trong thực tế bài toán tìm đ-ờng đi ngắn nhất còn đ-ợc ứng dụng
trong bài toán chọn một ph-ơng pháp tiết kiệm nhất để đ-a một hệ động
lực từ trạng thái xuất phát đến một trạng thái đích, hay bài toán lập lịch thi
công các công đoạn trong một công trình thi công lớn…
Trang 4Bài toán tìm đ-ờng đi ngắn nhất đã đ-ợc nhiều tác giả viết trên
nhiều ngôn ngữ khác nhau nh- Pascal, C,… Nh-ng thể hiện bằng đồ hoạ
thì vẫn còn ít đ-ợc đề cập đến
Ch-ơng trình tìm đ-ờng đi ngắn nhất giữa hai nút giao thông hy
vọng nó sẽ giúp ích phần nhỏ nào đó về ứng dụng thực tế Bên cạnh đó em
hy vọng những kiến thức em thu nhặt đ-ợc nó là một phần tài liệu nhỏ cho
những bạn khoá sau
Ch-ơng trình minh họa cũng có thể phát triển thành ch-ơng trình
lớn vừa thể hiện hệ thống đ-ờng vừa có thể có những chỉ dẫn cụ thể để
chạy trên mạng để phục vụ về du lịch
Em xin chân thành cảm ơn
Trang 5Ch-ơng 1 Tìm hiểu về Visual Basic
1.1 Tổng quan về ngôn ngữ Visual Basic
Visual Basic là sản phẩm của hãng Microsoft nó đã trải qua nhiều
phiên bản và hiện nay là Visual Basic 6.0 Enterprise Edition là phiên bản
đ-ợc -u chuộng nhất
Visual Basic là ch-ơng trình 32 bit nó chỉ chạy đ-ợc trên môi
tr-ờng Windows ấn bản Enterprise yêu cầu về cấu hình máy phần cứng
phải có khoảng 300Mb đĩa cứng còn trống Một chíp Pentum 166 Mhz trở
lên và ít nhất là 32 Mb Ram Chúng ta thấy đối với yêu cầu về phần cứng
nh- vậy thì ngày nay các máy tính đều đáp ứng yêu cầu
Visual Basic là ngôn ngữ mạnh và t-ơng đối mới nó khác với ngôn
ngữ lập trình truyền thống nh- C, C++,… Visual Basic lập trình làm việc
trên các đối t-ợng Nó hỗ trợ ng-ời lập trình trên mọi ph-ơng diện, có thể
nói nó cung cấp các ph-ơng tiện để lập trình tự động Visual Basic có thể
lập trình “ mọi thứ” nếu cần Visual Basic còn hỗ trợ ng-ời lập trình tạo ra
các Form, các thuộc tính, các ph-ơng thức để ng-ời lập trình chỉ việc chọn
lựa
Ngoài những -u việt trên Visual Basic còn kết nối đ-ợc với các
ngôn ngữ khác nh- Access, SQL,…Đây cũng là tính chất mà các ngôn
ngữ lập trình khác không có Nó tạo thuận lợi vô cùng cho ng-ời lập trình
khi lập trình về quản lý hay lập trình liên quan đến web
Khi chúng ta làm việc với bất kỳ phần mềm nào thì đầu tiên một
việc không thể bỏ qua đó là phần trang trí Nó thu hút sự chú ý của ng-ời
sử dụng Nó khiến chúng ta háo hức muốn tìm hiểu về các tính năng của
ứng dụng Tuy nhiên để làm chủ đ-ợc đồ hoạ chắc chắn sẽ không đơn
giản Đặc biệt đối với những ngôn ngữ tr-ớc đây.Visual Basic đã phần nào
Trang 6bằng các ph-ơng thức, các thuộc tính, các điều khiển và bằng các câu lệnh
cụ thể Đặc biệt là các ph-ơng thức, các thuộc tính của đối t-ợng làm cho
chúng ta dễ trang trí, dễ điều khiển và chỉnh sửa Khi nói về đồ họa chúng
ta cũng phải nói rằng Visual Basic có đầy đủ các câu lệnh về đồ họa nh-
các ngôn ngữ khác Nh-ng cái v-ợt trội hơn về đồ họa đó là các ph-ơng
thức, các thuộc tính và các điều khiển Nó giúp ng-ời học lập trình dễ học
và khi thiết kế ch-ơng trình dễ trang trí, dễ chỉnh sửa và nó rất đa dạng
1.2 Cài đặt Visual Basic
1 Khởi động Windows
2 Đ-a đĩa CD – ROM chứa Visual Basic 6.0 vào ổ đĩa CD
3 Double Click vào biểu t-ợng My computer
4 Double Click vào biểu t-ợng ổ đĩa CD- Rom của bạn
5 Double Click vào biểu t-ợng SETUP.EXE để chạy ch-ơng trình cài đặt
6 Bạn trả lời tất cả các câu hỏi của ch-ơng trình setup, cài đặt các thành
phần phụ, sau đó bạn chọn ô Microsoft Visual Basic 6.0 ch-ơng trình
sẽ tự động cài đặt biểu t-ợng Visual Basic 6.0 trong nhóm ch-ơng trình
Visual stadio 6.0 mới tạo
7 Lúc này việc cài đặt đã hoàn thành, bạn sẽ lựa chọn hoặc trở về
Windows hoặc khởi động lại máy tính
1.3 Khởi động Visual Basic 6.0
Chúng ta có thể khởi động bằng nhiều cách
1 Double Click vào biểu t-ợng Visual Basic trên desktop ( hoặc có thể
click vào biểu t-ợng sau đó nhấn Enter )
2 Vào Start, chọn Run và nhập đ-ờng dẫn đến Visual Basic Nếu bạn
không biết đ-ờng dẫn bấm nút Browser để tìm
3 Vào Start, chọn Program, chọn Microsoft visual 6.0, chọn tiếp
4 Microsoft Visual Basic 6.0
Trang 7Sau khi khởi động thì môi tr-ờng Visual Basic sẽ đ-ợc nạp và xuất
hiện ta sẽ thiết kế ch-ơng trình trên môi tr-ờng này
Hình 1 Cửa sổ sau khi khởi động Visual Basic
Trong môi tr-ờng Visual Basic có rất nhiều mục tuỳ theo ch-ơng
trình của bạn Đối với chúng ta mới làm quen với Visual Basic thì làm
quen với mục Standard exe
Chọn Standard exe, nhấn enter hoặc click ok thì cửa sổ làm việc mới xuất
hiện Lúc này bạn mới bắt đầu thiết kế đ-ợc
Trang 8Toolbox Title bar Tool bar Project explorer
Form Menu bar Properties window
Hình 2 Cửa sổ khi bắt đầu tạo project mới
1.4 Giới thiệu cửa sổ Visual Basic khi chọn Standard exe
1.4.1Title bar ( Thanh tiêu đề )
Thông báo tên của project và form bạn đang làm việc
1.4.2Menu bar (Thanh Menu)
Chứa các Menu con nh- File, Edit, View, Project, Format, Run, Query,
Tool, Window, Help …
- Menu File:
Gồm các lệnh liên quan đến tập tin nh- New project, Open project,
Add project, Remove project, Save project, Save project as, Save Form,
Make exe, … Chúng ta có thể nạp và l-u trình ứng dụng Visual Basic
Ngoài ra Menu này còn cung cấp lệnh truy xuất in nhằm in nội dung
mô tả ch-ơng trình
Trang 9- Menu Edit:
Gồm các lệnh nh- Undo, Redo, Cut, Copy, Paste, Remove, Delete…
để có thể sao chép, cắt dán văn bản và để điều khiển đồ họa giữa các
trình ứng dụng …
- Menu View:
Gồm các lệnh cho phép ta điều chỉnh cách nhìn cửa sổ Code trong trình
ứng dụng, các thủ tục khác nhau có thể xuât hiện trong cửa sổ code,
cũng nh- thanh công cụ …
- Menu Project:
Với menu này chúng ta có thể thêm biểu mẫu, Modul, điều khiển
Active X hay các tập tin khác
- Menu Format:
Với menu này, chúng ta có thể khoá các điều khiển, định kích cỡ, thứ
tự sắp xếp của các điều khiển trên biểu mẫu
- Menu Debug:
Chúng ta có thể thi hành từng câu lệnh trong ch-ơng trình Visual
Basic, xem giá trị dữ liệu và dừng ch-ơng trình bất cứ nơi nào
- Menu Query:
Cho phép thiết kế và chạy các vấn tin
- Menu Tools:
Bạn có thể xác định ph-ơng thức Visual Basic sẽ hành động bằng cách
thay đổi giá trị trong Menu Tools
- Menu Add- ins:
Dùng để nạp các công cụ điều khiển khác nh-: Active X, hỗ trợ thiết
kế trình ứng dụng cao cấp trong Visual Basic
- Menu Window:
Trang 10Với menu này bạn có thể sắp xếp lại các cửa sổ trong màn hình Visual
Basic
- Menu Help:
Cung cấp các trợ giúp
1.4.3 Thanh công cụ (Tools bar ):
Thanh này chứa các biểu t-ợng nhỏ giúp ng-ời dùng thực hiện nhanh mà
không phải vào các mục của menu
Add standard exe
Tạo Project mới nhấp mũi tên xuống bạn có thể chọn các công cụ khác
Add – Form:
Thêm một form cho project, nhấp mũi tên xuống bạn có thể chọn các
công cụ khác
Menu Editor:
Dùng để thiết kế menu ch-ơng trình của biểu mẫu hiện hành
Open project: Mở một Project
Save Project: L-u một Project
Cut: Cắt bỏ các câu lệnh hoặc các đối t-ợng đã chọn
Copy: Sao chép một đối t-ợng hoặc các câu lệnh đã chọn
Find: mở hộp thoại find để thực hiện việc tìm kiếm
Undo: Lấy lại hành động tr-ớc đó nếu có thể
Redo: lấy lại hành động sau đó nếu có thể
Start: Chạy ch-ơng trình sau khi bạn đã thiết kế hoặc chạy thử
Break: tạm ng-ng ch-ơng trình đang chạy
End: chấm dứt ch-ơng trình đang chạy
Project explorer: để thấy các Project, các form,…có thể thấy các tuỳ
chọn
Tools box: Xuất hiện hộp công cụ phía bên trái màn hình
Trang 11 Data view window : Xuất hiện cửa sổ data view để quản lý cơ sở dữ
liệu
1.5 Hộp công cụ ( Tool box ):
Hộp này chứa các control còn gọi là các đối t-ợng sẽ đ-ợc đặt vào Form
khi thiết kế chuơng trình
Pointer: dùng để điều tác các đối t-ợng sau khi bạn tạo ra chúng
Picture box: Giữ và đặt hình ảnh lên form
Label: Dùng để ghi chú một đối t-ợng nào đó hay một dòng chữ khi
thực hiện
Text box: Dùng để nhập hay xuất thông tin khi chạy ch-ơng trình
Frame: Nó là một đối t-ợng hình chữ nhật trên form dùng để chứa các
đối t-ợng khác
Command Button: Nút nhấn, ta dùng nút này với biến cố click để thực
hiện đối t-ợng
Checkbox: Dùng để quy định cho sự lựa chọn nào đó, có thể chọn
nhiều check box cùng một lúc
Option button: giống nh- check box nh-ng ta chỉ chọn một trong các
option button
Combobox: là một đối t-ợng kết hợp giữa text box và list box chúng ta
có thể chọn một mục nào đó trong danh sách có sẵn hay có thể nhập
nội dung bất kỳ trong text box nêu trên
ListBox: th-ờng dùng để liệt kê một danh sách gồm nhiều mục và cho
phép chọn lựa
Vertical Scrollbar: thanh cuốn dọc cho ta chọn một số nguyên khi ta di
chuyển con chạy từ giá trị min đến giá trị max
File Listbox: Một listbox trình bày các file trong th- mục nào đó
Timer: Dùng để xử lý các sự kiện về thời gian
Trang 12 Drive listbox: là hộp combobox trong đó liệt kê tất cả các tên có trong
hệ thống, nó đ-ợc dùng để chọn ổ địa
Line: Dùng để trình bày một đ-ờng thẳng trên form
Image: Dùng để hiện thị hình ảnh
Data: Dùng để kết hợp với các cơ sở dữ liệu khác
Shape: Dùng để trình bày các hình chữ nhật, hình vuông, hình elíp
Trang 13Trong đời sống hằng ngày khi nói đối t-ợng là nói đến một cái gì
đó cụ thể Đối t-ợng có thể là một chiếc ti vi hay một chiếc xe đạp Hai sự
vật này khác nhau nên khác nhau hoàn toàn về mô tả cũng nh- về công
dụng Tivi dùng để xem truyền hình mô tả nó hoàn toàn khác với xe đạp
dùng để di chuyển
Đối t-ợng là khái niệm nó bao hàm rất rộng mỗi đối t-ợng có thể
bao hàm nhiều đối t-ợng khác Ví dụ nh- nói xe đạp là một đối t-ợng nó
đ-ợc tạo thành từ các đối t-ợng khung xe, ghi đông bánh lốp …
Trong Visual Basic, đối t-ợng là những thành phần tạo nên giao
diện sử dụng cho ứng dụng Các điều khiển là những đối t-ợng, những nơi
chứa (container) nh- biểu mẫu (Form), khung (Frame) hay hộp ảnh
(picture box) cũng là một đối t-ợng
Nói chung khi nói một đối t-ợng thì chúng ta đã có đ-ợc một mô tả
cụ thể cũng nh- công dụng của đối t-ợng đó
2.2 Lập trình h-ớng đối t-ợng
Visual Basic hỗ trợ cách lập trình mới và ta gọi là lập trình h-ớng
đối t-ợng (Object oriented programming) Từ tr-ớc đến nay chúng ta lập
trình theo kiểu cổ điển tức là kiểu lập trình theo cấu trúc Nếu nh- ứng
dụng đ-ợc thiết kế để giải quyết một vấn đề lớn, thì lập trình viên có thể
chia thành nhiều vấn đề nhỏ và viết các đoạn ch-ơng trình con để giải
Trang 14Với lập trình h-ớng đối t-ợng lập trình viên sẽ chia nhỏ vấn đề cần
giải quyết thành các đối t-ợng Từng đối t-ợng có đặc điểm riêng cuả nó
Những đặc điểm này ta gọi là thuộc tính (Properties) và những chức năng
riêng biệt gọi là các ph-ơng thức (Methods) Lập trình viên phải đ-a ra
các ph-ơng thức các thuộc tính mà đối t-ợng cần thể hiện Ví dụ nh- khi
ta thiết kế một trò chơi chiến tranh, mỗi đối t-ợng là một “ chiến binh”
hay là mỗi xe tăng chẳng hạn Mỗi chiến binh có thuộc tính là toạ độ X,Y
xác định vị trí trên màn hình cùng với các ph-ơng thức di chuyển, bắn,
cháy …
Visual Basic cho phép chúng ta định nghĩa kiểu mẫu cho các đối
t-ợng thông qua các mô đun gọi là lớp Từ các lớp này ta có thể chuyển
thành những đối t-ợng thật sự
2.3 Thuộc tính
Thuộc tính (Properties) dùng để mô tả các đối t-ợng Mỗi một đối
t-ợng khác nhau thì có thuộc tính khác nhau Hay nói cụ thể hơn mỗi đối
t-ợng đều có một bộ thuộc tính riêng để mô tả đối t-ợng đó Biểu mẫu,
điều khiển đều có thuộc tính Thậm chí màn hình, máy in là những đối
t-ợng chỉ cho phép can thiệp lúc thi hành cũng có thuộc tính Ví dụ nh-:
khi thiết kế một Form trên màn hình đ-ợc xác định trong các thuộc tính
left, top, height và width Màu nền của biểu mẫu đ-ợc quy định trong
thuộc tính Back color Thuộc tính Borderstyle quyết định ng-ời sử dụng
có co giãn đ-ợc cửa sổ hay không
Chúng ta thấy mỗi đối t-ợng có bộ thuộc tính khác nhau nh-ng
trong đó, vẫn có một số thuộc tính thông dụng cho hầu hết các điều khiển
Chúng ta muốn xem toàn bộ thuộc tính của một đối t-ợng bằng cách chọn
vào đối t-ợng và mở cửa sổ Properties trong Visual Basic
Một số thuộc tính thông dụng:
- Left: vị trí canh trái của điều khiển so với vật chứa nó
Trang 15- Top: vị trí canh trên của điều khiển so với vật chứa nó
- Hight: Chiều cao của điều khiển
- Width: Chiều rộng của điều khiển
- Name: Một giá trị chuỗi đ-ợc dùng để nói đến điều khiển
- Enabled: Giá trị logic (True hoặc False ) quyết định ng-ời sử dụng có
đ-ợc làm việc với điều khiển hay không
- Visible: Giá trị logic (True hoặc False ) quyết định ng-ời sử dụng có
đ-ợc làm việc với điều khiển hay không
- Borderstyle: quyết định các thành phần của của sổ nh- thanh tiêu đề,
nút phóng to, nút thu nhỏ, mà một Form sẽ có
- Thuộc tính Borderstyle có 6 giá trị:
+ 0-none: Không có canh viền, không tiêu đề, không đ-ợc di chuyển
Giá trị này th-ờng đ-ợc dùng cho của sổ khởi động ch-ơng trình
(Splash window)
+ 1-Fixed single: Không thể co giãn bằng kéo rê cạnh viền nh-ng có
thể dùng nút phóng to (Maximize) hoặc thu nhỏ (Minximize ) Giá trị
này đ-ợc dùng cho những cửa sổ có kích cỡ cố định nh-ng vẫn xuất
hiện trên thanh Taskbar
+ 2-Sizable: cho phép co giãn bằng cách kéo rê cạnh viền và cho phép
dùng phóng to hoặc thu nhỏ Giá trị dùng cho những cửa sổ thông
dụng
+ 3-Fixed dialog: không co giãn và không có nút phóng to hoặc thu
nhỏ Giá trị này dùng cho những cửa sổ đơn giản nh- cửa sổ mật khẩu
+ 4-Fixed tool window: T-ơng tự 3-Fixed dialog nh-ng thanh tiêu đề
và nút close cũng nhỏ hơn Giá trị này dùng cho các thanh công cụ di
động
Trang 16+ 5-Sizable toolwindow: t-ơng tự 4-Fixed tool window nh-ng có thể co
giãn đ-ợc bằng cách kéo rê cạnh viền Giá trị này dùng cho những cửa
sổ nh- cửa sổ Properties của Visual Basic
2.4 Ph-ơng thức
Là những đoạn ch-ơng trình chứa các điều khiển, cho điều khiển
biết cách thức để thực hiện một công việc nào đó Chẳng hạn dời điều
khiển đến một vị trí mới trên biểu mẫu Mỗi đối t-ợng khác nhau thì có
tập ph-ơng thức khác nhau Nói chung mỗi điều khiển có ph-ơng thức
khác nhau nh-ng chúng cũng có những ph-ơng thức chung cho nhau
Một số ph-ơng thức:
- Move: Thay đổi vị trí một đối t-ợng theo yêu cầu của ch-ơng trình
- Drag: Thi hành hoạt động kéo và thả của ng-ời sử dụng
- Setfocus: cung cấp tầm ngắm cho đối t-ợng đ-ợc chỉ ra trong lệnh gọi
là ph-ơng thức
- Zorder: Quy định thứ tự xuất hiện của các điều khiển trên màn hình
2.5 Sự kiện
Thuộc tính mô tả đối t-ợng, ph-ơng thức chỉ ra cách thức đối t-ợng
hành động thì sự kiện là những phản ứng của đối t-ợng Chẳng hạn nh-
khi ng-ời sử dụng nhấn vào nút lệnh thì nhiều sự kiện xảy ra: nút chuột
đ-ợc nhấn, CommandButton trong ứng dụng đ-ợc nhấn, nút chuột đ-ợc
thả Ba hoạt động này t-ơng đ-ơng với ba sự kiện: Mousedown, Click và
CommandButton cũng xảy ra
Mỗi điều khiển có những bộ sự kiện khác nhau mặc dầu vậy cũng có
chung một số sự kiện mà hầu hết điều khiển nào cũng có
- Change: Ng-ời sử dụng sửa đổi chuỗi ký tự trong hộp kết hợp
- Click: ng-ời sử dụng, sử dụng chuột để nhấn lên đối t-ợng
- Dblclick: Ng-ời sử dụng, sử dụng chuột để nhấp đúp lên đối t-ợng
Trang 17- DragDrop: Ng-ời sử dụng kéo rê một đối t-ợng sang nơi khác
- DragOver: Ng-ời sử dụng kéo rê một đối t-ợng ngang qua một điều
khiển khác
- Gotfocus: Đ-a một đối t-ợng vào tầm ngắm của ng-ời sử dụng(forcus )
- Keydown: Ng-ời sử dụng nhấn một nút trên bàn phím trong khi một
đối t-ợng đang trong tầm ngắm
- Keypress: Ng-ời sử dụng nhấn và thả một nút trên bàn phím trong khi
một đối t-ợng đang trong tầm ngắm
- Keyup: Ng-ời sử dụng thả một nút trên bàn phím trong khi một đối
t-ợng đang trong tầm ngắm
- LostFocus: Đ-a một đối t-ợng ra khỏi tầm ngắm
- Mousedown : Ng-ời sử dụng nhấn một nút chuột bất kỳ trong khi con
trỏ chuột đang nằm trên một đối t-ợng
- MouseMove: Ng-ời sử dụng di chuyển con trỏ chuột ngang qua một
đối t-ợng
- Mouseup: Ng-ời sử dụng thả nút chuột trong khi con trỏ chuột đang
nằm trên một đối t-ợng
Trang 18Ch-ơng 3 Cơ sở dữ liệu Một đặc điểm nổi trội của Visual Basic là kết nối đ-ợc với các cơ
sở dữ liệu Vậy thì cơ sở dữ liệu (Data Base) là gì ?
Cơ sở dữ liệu là thống chứa đựng rất nhiều đối t-ợng khác nhau
đ-ợc dùng để kết hợp với nhau cho phép ứng dụng truy nhập dữ liệu một
cách nhanh chóng và hiệu quả Chúng ta có thể dùng nhiều cơ sở dữ liệu
với ứng dụng của mình Các hệ cơ sở th-ờng dùng:
Microsoft Access
Foxpro
Microsoft Excel Worksheets
Dbase
Mặc dầu là có nhiều hệ cơ sở nh- vậy, nh-ng hiện nay Microsoft
Access là hệ cơ sở dữ liệu có nhiều -u điểm nhất Trong Microsoft Access
có 6 loại công cụ: Table, Query, Form, Report, Macro, Modul Ta th-ờng
xuyên sử dụng bảng vì bảng là nơi chứa dữ liệu Bảng là một tập hợp
nhiều bản ghi, mỗi bản ghi gồm nhiều tr-ờng Các bản ghi phải đ-ợc liên
kết với nhau để ta truy nhập các mẩu tin liên quan Chính vì vậy, ta phải
biết thiết kế một cách logic để các bảng có mối quan hệ với nhau
3.1 Dùng Microsoft Access để tạo một cơ sở dữ liệu
1 Khởi động Microsoft Access 97 Hộp thoại Access xuất hiện
2 Chọn More files, rồi tìm tập tin cơ sở dữ liệu mà ta đã tạo, nếu cần tạo
cơ sở dữ liệu mới, khi cửa sổ Microsoft Access Database xuất hiện ta
nhấn nút New Hộp thoại New table xuất hiện Chọn Design View và
nhấn nút ok Cửa sổ thiết kế bảng Access xuất hiện
3 Trên dòng thứ nhất của cột Field Name, gõ tên tr-ờng thứ nhất, ID
4 Nhấn tab để chuyển đến cột kế tiếp
Trang 195 Cột Data Type khai báo kiểu dữ liệu
Sau khi khai báo xong các tr-ờng ta đóng cửa sổ Design View và tiếp
tục mở bảng để nhập dữ liệu cho bảng
3.2 Dùng Visual Basic để tạo một cơ sở dữ liệu
Để tạo cơ sở dữ liệu Jet dùng Visual Basic, ta có thể dùng tiện ích
gọi là Visual Data manager Tiện ích này trong ấn bản Visual Basic
professional và Enterprite cho phép ta tạo cơ sở dữ liệu t-ơng thích với
Microsoft Access
- Từ menu của Visual Basic, chọn mục Add – ins, Visual Data
manager Cửa sổ Visual Data Manager xuất hiện
- Từ Menu của Visual Data Manager, chọn File, New Từ menu con,
chọn Microsoft Access, Version 7.0 MDB Một hộp thoại tập tin xuất
hiện
- Chọn th- mục ta muốn l-u cơ sở dữ liệu mới rồi gõ tên
- Nhấn chuột vào nút save Cơ sở dữ liệu mới đ-ợc tạo và Visual Data
Manager sẽ hiện thị một vài cửa sổ cho phép ta làm việc với cơ sở dữ
liệu
Một đặc tính của Visual Data Manager là nó không thể cho ta cách rõ
ràng để tạo bảng mới trong cơ sở dữ liệu mà ta vừa tạo
Để tạo một bảng mới ta làm nh- sau:
- Trong cửa sổ Database của Visual Data Manager, nhấn chuột phải vào
Properties Menu ngữ cảnh sẽ xuất hiện
- Chọn New table Hộp thoại Table structure sẽ xuất hiện
Trong hộp thoại Table structure, ta có thể tạo cấu trúc bảng, chỉ định các
tr-ờng, kiểu dữ liệu và chỉ mục
Nhập tên bảng vào Table Name, tên tr-ờng vào Name, kiểu dữ liệu vào
Type, độ dài dữ liệu vào Size, khi thêm tr-ờng thì nhấn vào add Field
Trang 203.3 Điều khiển Ado Data
Điều khiển này có sẵn cho mọi ấn bản của Visual Basic 6 Điều
khiển Ado Data dùng Ado để nhanh chóng tạo ra kết nối giữa điều khiển
ràng buộc dữ liệu và nguồn cung cấp dữ liệu Điều khiển ràng buộc dữ
liệu là những điều khiển có thuộc tính Datasource
3.3.1 Kết nối với một cơ sở dữ liệu và làm việc với các mẩu tin
Tạo một ứng dụng dùng điều khiển Ado Data rất đơn giản Thực ra,
nếu tất cả những gì ta quan tâm chỉ là duyệt cơ sở dữ liệu thì không cần
lập trình gì cả Đây là quy trình gồm 2 b-ớc quy định thuộc tính
Connectionstring và RecordSource của điều khiển Data sau đó ràng buộc
với giao diện ng-ời sử dụng Để thực hiện điều này, ta theo các b-ớc sau:
1 Bắt đầu một đề án mới của Visual Basic
2 Dùng menu Project components, lập một tham chiếu đến “ Microsoft
ADO Data Control 6.0 (OLEDB)” bằng cách chọn vào hộp đánh dấu
trong danh sách
3 Nhấn ok Điều khiển Ado Data xuất hiện trên thanh công cụ của Visual
Basic Nhấn đúp chuột lên điều khiển để tạo một instance của điều
khiển lên biểu mẫu
4 Di chuyển và điều chỉnh điều khiển để cho nó nằm ở góc phải phía
d-ới của biểu mẫu, chiếm càng ít khoảng trống càng tốt
5 Nhấn nút phải chuột lên điều khiển từ menu bật ra, chọn Adodc
Properties
6 Hộp thoại Properties của điều khiển xuất hiện Chọn nút tuỳ chọn “ user
connection String” rồi nhấn Build
7 Hộp thoại Data Link properties xuất hiện Đây là hộp thoại ta dùng để
kết nối với cơ sở dữ liệu, nhấn ok khi hoàn tất
8 Đến đây bạn đã quay lại hộp thoại property Pages của điều khiển Ado
Data Ta thông báo cho điều khiển bảng nào sẽ đ-ợc dùng Chọn Tab
Trang 21Record source, rồi chọn 2– adCmdTable từ hộp kết hợp
CommandType
9 Chọn kết hợp Table or Stored Procedure Name Hộp kết hợp hiện thị
danh sách tất cả các bảng trong cở dữ liệu Chọn tblCustomer, nhấn ok
3.3.2 Recordset
Một khi chúng ta đã tạo ra đ-ợc bảng đã kết nối với dữ liệu thông
qua Ado Data ta cần phải biết thao tác với chúng Thao tác trên các bảng
liên quan đến việc nhập và lấy dữ liệu từ các bảng khác cũng nh- việc
kiểm tra và sửa đổi cấu trúc bảng Để thao tác dữ liệu trong một bảng ta
dùng Recordset
Một Recordset là một cấu trúc dữ liệu thể hiện một tập hợp con các
mẩu tin lấy về từ các cơ sở dữ liệu Khái niệm nó t-ơng tự nh- một bảng
nh-ng có thêm một vài thuộc tính quan trọng
Các Recordset đ-ợc thể hiện nh- là các đối t-ợng về khái niệm
t-ơng tự nh- các đối t-ợng giao diện sử dụng Cũng nh- các đối t-ợng
khác trong Visual Basic, các đối t-ợng Recordset cũng có các thuộc tính
và ph-ơng thức riêng
3.4 DataGrid
Mỗi khi chúng ta cần hiện thị các thông tin trong tệp cơ sở dữ liệu
đã kết nối với Ado thì chúng ta dùng DataGrid Để chọn đ-ợc Datagrid ta
click chuột phải vào thanh công cụ, chọn components xuất hiện hộp thoại
Trong hộp thoại này, chọn Microsoft Datagrid control 6.0, nháy ok
Lúc này trên thanh công cụ đã có biểu t-ợng Datagrid Ta dùng biểu t-ợng
này vẽ lên biểu mẫu Có thể đặt tên khác cho Datagrid cũng nh- sửa lại
thuộc tính thông qua Propertis của Datagrid Để hiện thị đ-ợc thông tin
của Ado thì thuộc tính Datasource phải là Adodc1 ở đây trên biểu mẫu
cũng phải có một Adodc1 và Ado này đã kết nối đ-ợc với dữ liệu
Trang 22Ch-ơng 4 Tìm hiểu về đồ hoạ
4.1 Hiển thị màn hình
4.1.1 Lệnh Print
Với các máy tính thời x-a phân biệt rõ ràng chế độ văn bản và đồ
họa Với ngôn ngữ Visual Basic hầu nh- chúng ta luôn làm việc trên môi
tr-ờng đồ họa
Lệnh Print dùng để hiện thị một chuỗi văn bản ra màn hình hay
máy in ngoài ra có thể thêm khả năng hoạt hình ( animation ) hoặc là thay
đổi Font chữ, màu chữ, bằng cách sửa đổi một vài thuộc tính rồi in ra lệnh
Print còn đ-ợc dùng khi gỡ rối ch-ơng trình
Lệnh Print chỉ đ-ợc dùng với biểu mẫu (Form ) và hộp hình (Picture
box) không dùng với các điều khiển khác
Ví dụ đoạn ch-ơng trình sau:
Private sub form _load()
L-u ý: Khi dùng lệnh Print ở đây còn một lỗi nhỏ khi thu nhỏ hay
phóng to biểu mẫu thì văn bản sẽ biến mất Để s-ả lỗi này ta phải sửa
thuộc tính Autoredraw của biểu mẫu thành True lúc này văn bản sẽ không
mất đi ta gọi là tính bảo toàn đồ họa
4.1.2 Thuộc tính AutoRedraw
Hoàn toàn khác với các ngôn ngữ lập trình logic tr-ớc đây nh- C hay
C++ Visual Basic làm thay cho lập trình viên các công việc nặng nhọc
Trang 23bên d-ới Một trong những công việc phức tạp này là vẽ lại biểu mẫu
Visual Basic giữ danh sách cục bộ gồm các điều khiển trên biểu
mẫu và một danh sách các thuộc tính cần thiết để trả cửa sổ về trạng thái
tr-ớc đó Khi biểu mẫu hiện thị lần thứ hai, Windows gửi cho ứng dụng
một thông điệp (Message) cho biết biểu mẫu cần phải vẽ lại Sự kiện này
Visual Basic gọi là Paint
Khi ta dùng lệnh Print để hiện thị biểu mẫu, nghĩa là ta đang tạo ra
hình ảnh cục bộ mà ch-a đăng ký cho Visual Basic biết đó là một thành
phần của biểu mẫu, thì những gì hiện thị sẽ không đ-ợc cập nhật lại Khi
ta đổi thuộc tính Autoredraw thành True, Visual Basic sẽ l-u bản sao của
những gì vẽ trên biểu mẫu để nó có thể tự vẽ lại biểu mẫu mà không phải
viết thêm ch-ơng trình Chúng ta thấy nh- vậy phải tốn bộ nhớ để l-u các
thông tin Vậy ứng dụng sẽ chậm hơn Tuỳ theo từng ứng dụng mà chúng
ta lựa chọn bỏ qua tốc độ và bộ nhớ để đỡ phải viết ch-ơng trình hay phải
viết ch-ơng trình cho sự kiện Paint để tối -u hoá bộ nhớ và tốc độ
Khi Autoredraw đổi thành False, hình ảnh trong bộ nhớ là một cửa
sổ trống Thông th-ờng hình ảnh này sẽ chứa cửa sổ và tất cả các điều
khiển đồ hoạ Khi đó hình ảnh sẽ không cập nhật lại đ-ợc
Khi AutoRedraw đổi thành True, Visual Basic chứa hai bản sao của
biểu mẫu vào bộ nhớ Một để hiện thị và một để dự phòng để giữ không
thay đổi mà ch-ơng trình tạo ra Khi gọi lệnh Print trên biểu mẫu, điều
này có nghĩa là ta đang vẽ trên bản dự phòng và Visual Basic tự động sao
chép các thay đổi lên bản hiện thị Chúng ta thấy đáng lẽ phải làm việc
trên một bản nh-ng phải làm trên hai bản và nh- vậy ứng dụng sẽ chậm
và tốn nhiều bộ nhớ
4.1.3 Hiện thị Font chữ
Những ký tự hiển thị đ-ợc trong ứng dụng là do đối t-ợng Font quản
Trang 24Chẳng hạn, muốn đổi cỡ chữ đơn giản chỉ sửa thuộc tính Font.size
Thuộc tính Fore color ( giống Back color ) nhận các giá trị hexadecimal
nhằm xác định về màu sắc Để chọn thuộc tính này ta nhấn chuột vào
thuộc tính Forecolor để mở cửa sổ Palette và nhấn đúp chuột lên màu
mình chọn
4.2 Xử lý màu sắc
Visual Basic dùng một con số cho mỗi màu hiện thị ta có thể xác
định màu theo 4 cách:
a Gán một con số hexa trực tiếp hoặc chọn màu từ bảng màu trong cửa
sổ Properties Cách này rất bất tiện vì phải chuyển đổi ra hexa
b Dùng hàm Qbcolor (): Chọn một trong 16 màu hỗ trợ t-ơng thích cho
các phiên bản
c Dùng hàm RGB sinh ra màu bằng cách phối hợp các gam màu đỏ xanh
lục và xanh
d Dùng hằng số màu nội tại của Visual Basic nh- VbBlack, VbBlue Để
xem toàn bộ hằng số này mở cửa sổ trợ giúp của Visual Basic và chọn
color constant
4.2.1 Hàm RGB()
Hàm RGB cho phép ta quy định màu bằng cách chỉ rõ đỏ nh- thế
nào, xanh lá cây nh- thế nào và xanh nh- thế nào Trong từng tr-ờng hợp
ta cần cung cấp một con số trong khoảng từ 0 đến 255 Nh- vậy kết quả
của hàm RGB là tổng của cả ba màu trộn lại
RGB(giá trị màu 1, giá trị màu 2, giá trị màu 3 )
Các giá trị màu ở đây có thể từ 0 đến 255
Vd: Backcolor = RGB(1,3,5 )
Backcolor= RGB(14,25,1)
4.2.2 Hàm Qbcolor()
Trang 25Hàm này rất quen thuộc đối với các lập trình viên ta chỉ ra màu
bằng một con số có một chữ số ví dụ nh- 1 là xanh, 2 là xanh lá cây …
Ví dụ: Form.Forecolor= Qbcolor(1)
Form.Forecolor= Qbcolor()
Ta có bảng màu
1 Xanh da trời (Blue) 9 Xanh da trời lợt (light blue)
2 Xanh lá cây (Green) 10 Xanh lá cây lợt(light green )
3 Xanh ngọc (Cyan) 11 Xanh ngọc lợt (light cyan )
5 Tím (magenta ) 13 Tím lợt (light magenta )
6 Vàng(yellow) 14 Vàng lợt (light yellow )
7 Trắng (while ) 15 Trắng sáng (light white)
4.3 Phép ánh xạ màu
Tuỳ theo độ phân giải màn hình, màu hiển thị có thể thay đổi, hầu
hết hệ VGA hiển thị tối đa 256 màu cùng lúc Tuy vậy hàm RGB có khả
năng trả về giá trị trong khoảng 16.777.216 màu
Nếu màu yêu cầu phù hợp với màu sẵn có, nó sẽ hiển thị nh-ng thông
th-ờng thì không Windows sẽ phối hợp với một số màu để tạo ra màu
hiệu chỉnh Trên màn hình màu sẽ hiển thị màu lốm đốm, với các điểm
màu có độ sáng nét khác nhau đặt cạnh nhau tạo cảm giác ta có màu mới
trên màn hình
Chúng ta nên chú ý khi thiết kế màn hình một ứng dụng, thiết kế
trên SVGA có thể hiện thị không đúng với những máy chỉ có 16 màu
4.4 Định toạ độ màn hình
Trang 264.4.1 hệ tọa độ
Màn hình và biểu mẫu chia thành các chấm nhỏ Khi bắt đầu vẽ trên biểu mẫu, ta cần xác định chính xác điểm nào trên biểu mẫu hay màn hình
mà ta muốn vẽ, đó là tọa độ
Góc trái trên của màn hình có tọa độ là (0,0) nghĩa là X=0 và Y= 0
Khi di chuyển ngang qua màn hình, toạ độ X tăng lên Khi di chuyển
xuống phía d-ới, toạ độ Y tăng lên
Chiều ngang là trục hoành, chiều xuống là trục tung Mặc dầu ta nói
là toạ độ màn hình nh-ng Visual Basic chỉ cho phép vẽ trên biểu mẫu, hộp
hình (picture box) và điều khiển ảnh (image control) Từng đối t-ợng có
hệ toạ độ riêng, điểm (0,0) trên biểu mẫu khác với điểm (0,0) trên màn
hình Mỗi khi ta vẽ một đối t-ợng, luôn luôn dùng một hệ tọa độ liên quan
đến góc trái trên của đối t-ợng mà ta đang vẽ
Visual Basic chỉ cho phép trong vùng client của biểu mẫu Nh- vậy chúng ta thấy vùng client ở đâu ? Đối t-ợng ta vẽ có hai thuộc tính:
ScaleHight và ScaleWidth Chúng chính là chiều cao và chiều rộng tối đa
của vùng client của đối t-ợng
4.4.2 Twips, Pixels, Inch, Centimet
Hệ tọa độ mặc định dùng trên biểu mẫu là Twips Mỗi điểm bằng 1/567cm, nh- vậy ta vẽ một đoạn thẳng dài 567 đơn vị trên biểu mẫu tức
là in ra giấy đ-ợc một đoạn là 1 cm Đây là hệ tọa độ độc lập với thiết bị
Twip thích hợp cho những ứng dụng nh- là các trình đóng gói xuất bản
hoặc một ch-ơng trình xử lý
Hệ Pixel: là hệ tọa độ phổ biến nhất mỗi đơn vị trên trục X hay Y của màn hình bằng chính xác một điểm, 1 pixel Hệ toạ độ pixel cho phép
ta vẽ ảnh đồ họa nhanh hơn trên màn hình Windows biết rằng 1 pixel
bằng một điểm và không cần chuyển đổi hệ tọa độ
Trang 27Có thể chuyển đổi hệ tọa độ trên biểu mẫu bằng cách sửa thuộc
tính Mở cửa sổ thuộc tính (nhấn F4 ) chọn ScaleMode
4.5 Bốn điều khiển đồ họa của Visual Basic
Visual Basic cho ta thao tác đồ họa theo hai cách: Đ-a các điều
khiển đồ họa (graphical controls ) vào biểu mẫu Hai trong các điều khiển
này, hộp hình (picture box) và điều khiển ảnh (image control), cho phép
ta làm việc với các tập tin hình ảnh khác nhau Trong khi đó điều khiển
line và điều khiển hình dạng thì cho phép ta vẽ đoạn thẳng và các hình
Điều khiển đồ họa thông dụng nhất là hộp hình và điều khiển ảnh
Hai điều khiển này cho phép nạp hình ảnh từ địa và hiện thị trên màn hình
vào lúc thiết kế hoặc lúc thi hành thông qua ch-ơng trình dùng để trang
trí cho hộp thoại hay cung cấp khả năng hoạt hình cho ng-ời sử dụng,
chẳng hạn nh- trò chơi Khi ứng dụng cần hiện thị một ảnh nào đó ta
chọn biểu t-ợng điều khiển ảnh( Picture box ) trên hộp công cụ sau đó vẽ
lên form cần hiện thị và nạp ảnh vào cho điều khiển ảnh nh- mục 3.4.1.1
4.5.1.1 Nạp hình khi thiết kế
Mở cửa sổ Properties của hộp hình hay điều khiển ảnh bằng cách nhấn F4, chọn thuộc tính Picture, cho vào tên của tập tin đồ họa Muốn
nạp hình ảnh cho biểu mẫu ta cũng làm t-ơng tự Có nghĩa ta làm chọn
biểu mẫu mở cửa sổ Properties chọn thuộc tính Picture, sau đó cho tên
tập tin đồ họa vào
Trang 28L-u ý: Điều khiển ảnh có thêm thuộc tính stretch là True khiến
hình ảnh có thể co giãn khi thay đổi kích cỡ của điều khiển trong lúc thiết
kế
4.5.1.2 Nạp hình khi thi hành
Nạp hình ảnh lúc thi hành không đơn giản nh- gán một đ-ờng dẫn
đúng và tên tập tin cho thuộc tính Picture Ta phải sử dụng hàm
Loadpicture
Lý do là thuộc tính Picture không phải chứa tên tập tin của hình
ảnh mà ta muốn hiện thị Thực ra, nó chứa hình ảnh đó Trong lúc thiết kế,
để đơn giản hoá cửa sổ Properties , Visual Basic chỉ trình bày tên tập tin,
còn các thông tin của tập tin nhị phân này thực chất đ-ợc l-u trong đề án,
d-ới dạng tập tin.frx Chẳng hạn nh- khi ta l-u một biểu mẫu Form1 là
Form1.frm, và thêm vào một hình ảnh khi thiết kế thì Visual Basic sẽ tự
động sinh ra một tập tin Form1.frx chứa tất cả các thông tin của ảnh
Tìm hình ảnh lúc thi hành
Một trong những rắc rối khi nạp hình lúc thi hành là ta phải đảm bảo các
tập tin hình ảnh đ-ợc chứa đúng nơi quy định Khi cài đặt ứng dụng,
th-ờng tập tin hình ảnh chứa trong th- mục con d-ới th- mục chính Th-
mục chính là th- mục chứa tập tin EXE của ứng dụng
Ta có thể dùng: Image1.picture= Loadpicture(app.path & “ \graphics \
<Imagename >”
<Imagename > là tên tập tin hình ảnh ta muốn nạp
App.path trả về đ-ờng dẫn chứa tập tin EXE Hàm này luôn có sẵn trong
mọi nơi trong ứng dụng Thực chất, đó là thuộc tính Path của App
4.5.1.3 So sánh hộp hình và điều khiển ảnh
Điều khiển ảnh có thể co giãn hình ảnh mà nó đang chứa, trong khi
biểu mẫu và hộp hình thì không Hộp hình có thể làm nơi chứa các đối