Trang 1
MÔN : CÁC MẪU THIẾT KẾ HỚNG ỐI TỢNG
Bài thực hành số 1.2 : Xây dựng ứng dụng OOP n gin
& tìm hiểu sự tng tác giữa các ối tợng
I. Mục tiêu :
Giúp SV làm quen với qui trình thiết kế trực quan 1 ứng dụng Dialog Based.
Giúp SV làm quen với việc dùng li linh kiện phần mềm.
Giúp SV thấy cụ thể cấu trúc ứng dụng cấu thành từ các ối tợng.
Giúp SV thấy sự tng tác giữa các ối tợng.
II. Nội dung :
Xây dựng ứng dụng Dialog Based cho phép ngời dùng chi các file multimedia.
Dịch và chy chng trình.
Debug chng trình ể tìm lỗi nếu có.
Tìm hiểu cấu trúc ứng dụng & sự tng tác cụ thể giữa các ối tợng. V lợc ồ class của
chng trình.
III. Chuẩn ầu ra :
Thành tho việc xây dựng 1 ứng dụng theo qui trình thiết kế trực quan.
Thành tho việc dùng li linh kiện phần mềm có sẵn, thấy rõ cấu trúc phầm mềm và sự
tng tác giữa các ối tợng trong phần mềm.
Thành tho việc viết code thay ổi kích thớc và vị trí các ối tợng giao diện khi cửa sổ
chứa chúng bị thay ổi.
IV. Phân tích :
Sau khi phân tích chức nng của chng trình, ta thấy chng trình là 1 form giao diện
trực quan, nó chứa 1 button Play ể ngời dùng ra lệnh chi file, nó cũng cần 1 ối tợng
cho phép ngời dùng duyệt trực quan cây th mục ể chọn file (gi sử ta biết ó là ối
tợng FileOpenDialog). Cuối cùng chng trình cần 1 ối tợng có kh nng play file
multimedia (gi sử ta biết ó là ối tợng Windows Media Player).
Theo kết qu phân tích trên, cấu trúc chng trình cần viết khá n gin, nó chỉ chứa các
ối tợng ã có sẵn, ta khơng cần phi bận tâm ặc t chi tiết các ối tợng cần dùng mà
chỉ cần dùng li chúng, lắp ghép chúng li ể to thành chng trình. ây là trờng hợp
may mắn nhất, nhng trong thực tế lập trình hớng ối tợng, ta s có ợc may mắn này
thờng xun.
V. Qui trình :
1. Chy VS .Net, chọn menu File.New.Project ể hiển thị cửa sổ New Project.
2. Mở rộng mục Visual C# trong TreeView "Project Types", chọn mục Window, chọn icon
"Windows Application" trong listbox "Templates" bên phi, thiết lập th mục chứa Project
trong listbox "Location", nhập tên Project vào textbox "Name:" (thí dụ MicroWMP), click
button OK ể to Project theo các thông số ã khai báo.
3. Form ầu tiên của ứng dụng ã hiển thị trong cửa sổ thiết kế, việc thiết kế form là q trình
lặp 4 thao tác to mới/xóa/hiệu chỉnh thuộc tính/to hàm xử lý sự kiện cho từng ối tợng
cần dùng trong form.
4. Nếu cửa sổ ToolBox cha hiển thị chi tiết, chọn menu View.Toolbox ể hiển thị nó (thờng
nằm ở bên trái màn hình). Click chuột vào button
(Auto Hide) nằm ở góc trên phi cửa sổ
ToolBox ể chuyển nó về chế ộ hiển thị thờng trực.
5. Duyệt tìm phần tử Button (trong nhóm Common Controls), chọn nó, dời chuột về góc trên
trái của form và v nó với kích thớc mong muốn. Xem cửa sổ thuộc tính của Button vừa v
Trang 2
(thờng ở góc dới phi màn hình), duyệt tìm và hiệu chỉnh thuộc tính Text = "Play…", duyệt
tìm và thay ổi thuộc tính (Name) = btnPlay.
6. Dời chuột vào trong cửa sổ Toolbox, duyệt tìm nhóm Components, ấn phi chuột vào mục
Components (hay vào bất kỳ phần tử nào trong nhóm này) ể hiển thị menu lệnh, chọn
option "Choose Items". Khi cửa sổ "Choose Toolbox Items" hiển thị, click chuột vào button
COM Components ể hiển thị danh sách các linh kiện phần mềm theo chuẩn COM ang ợc
Windows qun lý, hãy duyệt tìm và ánh dấu chọn vào phần tử “Windows Media Player”, rồi
click button OK ể "add" các control này vào nhóm Components của cửa sổ Toolbox của
Project ứng dụng. Bây giờ việc dùng control “Windows Media Player” giống y nh các iều
khiển có sẵn khác.
7. Duyệt tìm phần tử “Windows Media Player” (trong nhóm Components), chọn nó, dời chuột
ngay dới Button vừa v, v nó chiếm hết phần cịn li của form. Xem cửa sổ thuộc tính của
control vừa v (thờng ở góc dới phi màn hình), duyệt tìm và hiệu chỉnh thuộc tính thuộc
tính (Name) = wmpPlay.
Sau khi thiết kế xong, Form có dng sau :
8. Dời chuột về button btnPlay, ấn kép chuột vào nó ể to hàm xử lý sự kiện Click chuột cho
button, cửa sổ mã nguồn s hiển thị ể ta bắt ầu viết code cho hàm. Cách tổng quát ể to
hàm xử lý sự kiện là chọn ối tợng btnPlay, cửa sổ thuộc tính của nó s hiển thị, click icon
ể hiển thị danh sách các sự kiện của ối tợng, duyệt tìm sự kiện quan tâm (Click), ấn
kép chuột vào comboBox bên phi sự kiện Click ể máy to tự ộng hàm xử lý cho sự kiện
này. Cửa sổ mã nguồn s hiển thị khung sờn của hàm vừa ợc to với thân rỗng, viết thân
cho hàm này nh sau :
private void btnPlay_Click(object sender, EventArgs e) {
//to form duyệt chọn file cần chi
OpenFileDialog dlg = new OpenFileDialog();
//hiển thị form duyệt chọn file cần chi
DialogResult ret = dlg.ShowDialog();
//kiểm tra quyết ịnh của ngời dùng, nếu ngời dùng chọn OK thì chi
if (ret == DialogResult.OK)
wmpPLay.URL = dlg.FileName;
}
9. Chọn menu Debug.Start Debugging ể dịch và chy thử ứng dụng. Khi Form chng trình
hiển thị, hãy click chuột vào button Play, cửa sổ duyệt chọn file s hiển thị, hãy duyệt và chọn
1 file multimedia nào ó (nh tĩnh, film, âm thanh, file playlist,…), click button Open ể chi
file này. Hãy thử chọn nhiều file khác nhau xem chng trình chy ổn ịnh khơng.
Trang 3
10. Dừng chng trình, dời chuột về cửa sổ “Solution Explorer”, duyệt tìm phần tử Form1, ấn
phi chuột trên nó ể hiển thị menu lệnh, chọn lệnh “View Code” ể hiển thị li mã nguồn
của Form chng trình, kho sát thân của hàm btnPlay và tìm hiểu sự tng tác giữa ối
tợng Form1 với các ối tợng OpenFileDialog và wmpPlay.
11. Chy li ứng dụng, quan sát góc trên phi của Form chng trình, ta thấy 3 button chức nng
thơng thờng là 1. thu nh form về dng icon, 2. phóng to/thu nh kích thớc form, 3. óng
form :
12. Thử click chuột vào button phóng to/thu nh, form s ợc phóng to ể chiếm hết màn hình
nhng các ối tợng giao diện ợc thiết kế bên trong nó (button, WMP) khơng hề thay ổi
kích thớc theo. Làm sao thay ổi kích thớc các ối tợng trong form theo kích thớc của
form ?
13. Nếu muốn phóng to/thu nh các ối tợng bên trong theo kích thớc cửa sổ, ta cần viết code
thực hiện việc này 1 cách tờng minh, on code thay ổi kích thớc và vị trí các ối tợng
bên trong ợc ể trong hàm xử lý sự kiện SizeChanged của ối tợng Form.
14. Dừng chng trình, dời chuột về cửa sổ “Solution Explorer”, duyệt tìm phần tử Form1, ấn kép
chuột trên nó ể hiển thị cửa sổ thiết kế Form, chọn Form ể hiển thị cửa sổ thuộc tính của
nó, click icon
ể hiển thị danh sách các sự kiện của Form, duyệt tìm sự kiện quan tâm
(SizeChanged), ấn kép chuột vào comboBox bên phi sự kiện SizeChanged ể máy to tự
ộng hàm xử lý cho sự kiện này. Cửa sổ mã nguồn s hiển thị khung sờn của hàm vừa ợc
to với thân rỗng, viết thân cho hàm này nh sau :
private void Form1_SizeChanged(object sender, EventArgs e) {
//xác ịnh kích thớc hiện hành của Form
int cx = this.Size.Width;
int cy = this.Size.Height;
//thay ổi vị trí của ối tợng WMP về vị trí mong muốn
wmpPlay.Location = new Point (10, 40);
//thay ổi kích thớc của ối tợng WMP theo kích thớc Form
wmpPlay.Size = new Size (cx - 30, cy - 80);
}
15. Chy li ứng dụng, thử phóng to/thu nh, thay ổi kích thớc của cửa sổ, ta thấy ối tợng
WMP s thay ổi kích thớc theo. Riêng button thì khơng thay ổi vì ta khơng có nhu cầu và
khơng viết code làm việc này.
16. Xem mã nguồn các class cấu thành ứng dụng rồi v lợc ồ class thiết kế của ứng dụng.