12 Danh sác hổ đĩa (DriveListbox), Thư mục (DirListbox), Tập tin (FileListbox)
I.3 PHƯƠNG PHÁP THỰC HIỆN TINH ỌC HÓA
Thực chất của tin học hóa trong xây dựng là việc xây dựng và triển khai hệ thống thông tin phù hợp. Trong đó việc xây dựng hệ thống là khâu quan trọng nhất, nó là nền tảng cho việc triển khai hệ thống hoạt động.
Có nhiều phương pháp thực hiện tin học hóa trong công tác xây dựng công trình, phụ thuộc vào công việc cụ thể sẽ hình thành các phương pháp thực hiện khác nhau, thường sự khác nhau này thể hiện ở phần mềm.
Dễ thấy nhất là các công việc liên quan đến việc soạn thảo, lưu trữ văn bản ta sử dụng bộ MS Office, công tác vẽ kỹ thuật sử dụng AutoCAD…
Ở mức độ cao hơn, trong các công ty tư vấn thiết kế đã có những nhóm riêng phụ trách
việc sử dụng các phần mềm chuyên dụng hỗ trợ thiết kế cầu đường như: MIDAS/Civil,
Nova, RM… Công tác này đòi hỏi người sử dụng phải được đào tạo về kiến thức chuyên môn cũng như cách thức sử dụng chương trình.
Trong các công tác trên ta nhận thấy sự phổ biến của các phần mềm thương mại với chị phí khá cao, bên cạnh đó phần mềm thương mại không thể bao quát hết mọi vấn đề của lĩnh vực xây dựng. Điều này đòi hỏi cần có những chương trình tự tạo do chính các kỹ sư ngành công trình phát triển. Đó có thể đơn giản là những đoạn chương trình con hỗ trợ tính khối lượng trong AutoCAD hay lớn hơn là những chương trình độc lập…
Để xây dựng được các chương trình dù là mức độ nào lập trình viên cũng cần phải có kiến thức về ngôn ngữ lập trình và những công cụ lập trình thích hợp.
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 77 Một công cụ lập trình thích hợp sẽ đảm bảo cho việc lập trình đạt tới mục đích nhanh và
hiệu quả. Chính vì vậy việc lựa chọn công cụ lập trình rất quan trọng. Thông thường một công cụ lập trình được lựa chọn theo những tiêu chí chính sau:
Đáp ứng được yêu cầu kỹ thuật của bài toán, ví dụ bài toán yêu cầu tạo ra được bản
vẽ kỹ thuật thì ta buộc phải chọn công cụ lập trình nào có thể hỗ trợ điều này.
Thông thường các công cụ lập trình hiện nay đều có thể đáp ứng được hầu hết các
yêu cầu cơ bản.
Dễ sử dụng, nhiều tài liệu tham khảo, có cộng đồng người sử dụng đông đảo.
Yêu cầu về phần cứng và phần mềm liên quan (ví dụ như hệ điều hành) không đặc
biệt.
Trợ giúp tốt từ nhà sản xuất công cụ lập trình và có thư viện lập trình phong phú, dễ
tìm.
Có thể thấy rằng tất cả những tiêu chí trên đều có trong Visual Basic (VB), bên cạnh đó do đặc thù của sinh viên ngành xây dựng, kiến thức được đào tạo về tin học còn ở mức cơ bản do đó, ngôn ngữ lập trình này là lựa chọn thích hợp để xây dựng phần mềm tự tạo phục vụ trong lĩnh vực xây dựng công trình.
Việc xây dựng phần mềm là một quá trình, mà ở đó, việc lập trình chỉ là một bước, tuy
chiếm nhiều thời gian và công sức nhất, nhưng không phải là quan trọng nhất. Trong mỗi lĩnh vực chuyên môn luôn có những bài toán cơ bản, đó là những bài toán giải quyết những vấn đề chính của chuyên ngành đó, ví dụ trong lĩnh vực thiết kế công trình giao thông, có các bài toán cơ bản:
Phân tích kết cấu.
Xử lý dữ liệu.
Thiết kế hình học và lập bản vẽ kỹ thuật.
Lập bảng tính các loại.
Với mỗi loại bài toán, tuy nội dung bên trong là khác nhau, nhưng để có thể xây dựng được chương trình phục vụ cho việc tự động hóa giải bài toán đó thì việc triển khai luôn phải tuân theo trình tự sau:
Khái quát hóa để tìm ra bài toán tổng quát nhất (nếu có thể).
Phân tích bài toán thành những phần nhỏ nhất theo chức năng để có thể áp dụng
phương pháp lập trình hướng thủ tục.
Xây dựng thuật toán và sơ đồ khối cho từng phần và cả bài toán. Chú ý đến mối
liên hẹ giữa các thành phần với nhau.
Thiết kế giao diện nhập dữ liệu và trình bày kết quả.
Lập trình.
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 78
CHƯƠNG II. THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG
Mục tiêu:
Thiết kế giao diện phù hợp cho từng loại bài toán. Trình tự thiết kế
giao diện, một số thành phần quan trọng trong các ứng dụng chạy trên Windows. Thiết kế một số giao diện thường gặp trong phần mềm chuyên ngành xây dựng.
Nội dung chính:
- Lựa chọn giao diện phù hợp cho từng bài toán - Sử dụng menu trong thiết kế giao diện.
- Sử dụng các hộp thoại trong thiết kếứng dụng. - Xử lý một số sự kiện để tạo các ứng dụng đồ họa. - Xây dựng ứng dụng đa tài liệu (MDI)
- Giao diện wizard
Kiến thức có liên quan:
- Các cấu trúc lập trình trong VB. - Cách thức xử lý sự kiện.
II.1 LỰA CHỌN GIAO DIỆN
Giao diện được đề cập trong chương này là giao diện người dùng đồ họa - Graphic User Interface (GUI) được định nghĩa là cách giao tiếp với máy tính bằng hình ảnh và chữ viết. Tùy theo bài toán và các thông số nhập xuất ta xây dựng các kiểu giao diện khác nhau. Giao diện người dùng là nơi tiếp xúc và làm việc với người sử dụng nhiều nhất, có thể ví
nó là ngôn ngữ để giao tiếp với người sử dụng. Vì vậy một giao diện tốt sẽ tăng tính
chuyên nghiệp cho chương trình, tạo cảm giác gần gũi, dễ sử dụng với người dùng. Một chương trình có thuật toán ,tốc độ xử lý tốt hơn chưa chắc đã thành công hơn một chương trình có giao diện thân thiện, tạo hứng thú cho người sử dụng.
Trong xây dựng, giao diện có thể chia làm hai phần cơ bản: Giao diện nhập dữ liệu (Input) và giao diện hiển thị kết quả (Output). Một điều chú ý cho người lập trình là trong các giao diện nên đưa nhiều hình ảnh minh họa.
Trường hợp dữ liệu cần nhập vào không nhiều, sử dụng các Form cơ bản gồm các TextBox, và các Label để hướng dẫn nhận số liệu.
Khi dữ liệu phức tạp, dễ nhầm lẫn lúc nhập, nên xây dựng thành các Form riêng theo từng nhóm khác nhau và thiết kế sao cho người dễ định hướng và nhập theo đúng thứ tự.
Trong thao tác hiển thị kết quả, cần thiết kế để thể hiện hết các kết quả đạt được của
chương trình. Khâu này đặc biệt quan trọng vì kết quả chính là mục đích của người sử
dụng chương trình.
Dưới đây là một số kiểu giao diện thường dùng trong các ứng dụng chuyên ngành xây
Draft
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 80 Giao diện wizard
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 81 Giao diện đa tài liệu
II.2 TRÌNH TỰ XÂY DỰNG GIAO DIỆN
Về mặt thao tác, công việc xây dựng giao diện người dùng gồm các bước:
¾ Xác định đối tượng người dùng.
¾ Xác định rõ dữ liệu cần thao tác (nhập – xuất).
¾ Chuẩn bị hình ảnh, biểu tượng minh họa phục vụ quá trình thiết kế.
¾ Thiết kế giao diện: Sắp xếp, đặt tên các điều khiển,
¾ Chạy thử, sửa chữa và hoàn thiện giao diện.
II.3 THIẾT KẾ MENU II.3.1 Khái niệm
Menu là một loại điều khiển trong đó người sử dụng có thể lựa chọn các mục (lệnh) từ một danh sách cho trước.
Có 2 loại menu:
- Menu thả xuống (Drop-Down Menu).
- Menu Pop-Up: thường hiển thị khi ta ấn nút chuột phải.
II.3.2 Các thuộc tính
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 82 - Caption: Là chuỗi hiển thị trên menu.
- Name: Phải duy nhất và dễ nhớ. Đây là tên để nhận biết thành phần nào của Menu được
chọn.
- Shortcut: dùng để thiết lập các phím tắt (Shortcut key).
- WindowList: Dùng trong các ứng dụng MDI (Multipe Document Interface). Thuộc tính này hiển thị danh sách các Form con trên menu.
- Checked: Nếu chọn thuộc tính này thì sẽ có một dấu hiển thị bên cạnh trái.
- Enabled: Nếu thuộc tính này không được chọn thì mục này sẽ bị xám đi và người dùng không thể chọn.
- Visible: Nếu thuộc tính này không được chọn thì mục này sẽ không được hiển thị.
- NegotiatePosition: quản lý vị trí gắn menu trong trường hợp sử dụng các đối tượng ActiveX.
II.3.3 Cách tạo menu
Menu không chứa trong hộp công cụ mà được thiết kế từ trình soạn thảo menu. Trong Visual Basic 6.0 IDE, chọn Tools, rồi Menu Editor để mở chương trình này.
Tạo một Drop-Down Menu.
- Tạo một đề án mới. - Ctrl-E để mở Menu Editor
- Tạo một Menu File với Menu con là Open và Save As.
- Nhập &File trong ô Caption và nhập một tên bất kỳ vào ô Name (chẳng hạn là mfile). Ký tự & trước chữ F cho biết chữ F sẽ là phím tắt (ấn Ctrl-F) coi như chọn menu File. - Tiếp theo nhập &Open và &Save As. Để Open và Save As là Sub menu của File, chọn Open rồi ấn mũi tên sang trái. Tương tự đối với Save As.
Tách nhóm menu:
Trong trường hợp Menu có nhiều mục, ta sẽ tách nhóm Menu để tiện theo dõi. Chẳng hạn ta thêm vào Menu File mục Exit và tách riêng ra với Open và Save As.
Ta sẽ xen vào giữa hai mục Save As và Exit một mục mới có Caption là “-“.
Tạo Pop-up menu
- Sử dụng lại menu đã dùng ở ví dụ trước, nhưng ta sẽ tắt thuộc tính Visible của menu File. - Mở cửa sổ Code của ứng dụng, dùng sự kiện MousUp:
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 83
Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
PopupMenu mfile, vbPopupMenuLeftAlign
End If End Sub
- Chạy thử ứng dụng, khi ta ấn chuột phải, một menu sẽ mở ra.
- Lệnh PopupMenu cho biết tên menu cần bật ra, đó là tên mà ta đã đặt trong trình soạn
thảo MenuEditor, ở đây là mfile.
- Kế đến, là tham số xác định cách hiển thị menu: vbPopupMenuLeftAlign,
vbPopupMenuRightAlign, vbPopupMenuCenterAlign.
II.4 CÁC HỘP THOẠI THÔNG DỤNG II.4.1 Khái niệm
Hộp thoại (Dialog Box) là một trong những cách chương trình máy tính dùng để giao tiếp với người dùng.
Các loại hộp thoại thông dụng: - Hộp thông điệp (Message Box). - Hộp nhập (Input Box).
- Hộp thoại dựa trên điều khiển Common Dialog - Hộp thoại tự thiết kế (Custom Dialog).
II.4.2 Hộp thoại thông điệp
Hộp thông điệp cũng có 2 loại: Loại chỉ xuất thông báo và loại có tương tác với người dùng.
II.4.2.1 Loại chỉ xuất thông báo
- Dùng MsgBox như một thủ tục.
- Cú pháp: MsgBox Prompt, Button, Title.
Trong đó:
Prompt: Chuỗi thông báo sẽ hiển thị.
Button: Các nút nhấn sẽ được hiển thị trên hộp thông báo.
Title: Chuỗi hiển thị trên thanh tiêu đề của hộp thông báo.
Sau khi xuất thông báo, VB sẽ đợi ta ấn vào nút OK hoặc Enter rồi mới thực hiện dòng
lệnh sau MsgBox.
Tùy theo thông số truyền vào MsgBox mà có nhiều loại hộp thoại thông điệp khác nhau.
Hằng số Giá trị Diễn giải
vbOKOnly 0 Chỉ hiển thị nút OK .
vbOKCancel 1 Hiển thị 2 nút OK và Cancel.
vbAbortRetryIgnore 2 Hiển thị các nút Abort, Retry, và Ignore. vbYesNoCancel 3 Hiển thị các nút Yes, No, và Cancel. vbYesNo 4 Hiển thị 2 nút Yes và No.
vbRetryCancel 5 Hiển thị 2 nút Retry và Cancel.
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 84
Hằng số Diễn giải
vbCritical Dùng cho những thông báo lỗi thất bại khi thi hành công việc nào đó.
vbQuestion Dùng cho những câu hỏi yêu cầu người dùng chọn lựa. vbExclamation Dùng cho các thông báo của chương trình.
vbInformation Dùng cho các thông báo cung cấp thêm thông tin.
II.4.2.2 Loại tương tác với người dùng
Lúc này MsgBox được dùng như một hàm, khi một nút nào đó trên hộp thông báo được ấn, VB sẽ trả về giá trị của nút ấn đó.
Cú pháp: MsgBox (Prompt, Button, Title) As Integer
Hằng số Giá trị Nút vbOK 1 OK vbCancel 2 Cancel vbAbort 3 Abort vbRetry 4 Retry vbIgnore 5 Ignore vbYes 6 Yes vbNo 7 No Ví dụ:
TraLoi = MsgBox (“Ban co dong y khong?”, vbYesNo, _ "Thoat chuong trinh")
Với những thông điệp quan trọng, ta mong muốn người dùng phải chọn lựa một trong các đề xuất mà ta đưa ra trước khi chuyển qua ứng dụng khác, dùng thông số vbSystemModal.
II.4.3 Hộp thoại nhập
Đây là loại hộp thông điệp cho phép nhận thông tin từ phía người sử dụng. Tuy nhiên trong các ứng dụng, hộp nhập rất ít khi được dùng do:
- Ta không có cách nào để kiểm tra thông tin do người dùng nhập vào khi mà Enter chưa được ấn.
- Thông tin được nhập là rất ít. Ví dụ về hộp nhập:
Public Sub Main ()
Dim ReturnString As String
ReturnString = InputBox(“Nhap vao ten cua ban”) End Sub
Giá trị trả về của hộp nhập là một chuỗi.
II.4.4 Hộp thoại dựa trên điều khiển Common Dialog
Có 6 loại hộp thoại thông dụng: Mở tập tin, Lưu tập tin, Chọn màu, Chọn Font, In ấn, Trợ giúp.
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 85
Tuy có 6 loại, nhưng khi thiết kế Form, chỉ thấy một công cụ duy nhất đó là
CommonDialog. Muốn đưa Common Dialog vào dự án, chọn:
Project/Components…/Controls/Microsoft Common Dialog Control 6.0.
Sau đó, Common Dialog sẽ xuất hiện trong hộp công cụ ToolBox.
II.4.4.1 Hộp thoại mở và lưu tập tin
Hai hộp thoại này có chức năng và thể hiện như nhau. Cả hai hộp thoại đều hiển thị danh
sách các tập tin, người dùng có thể duyệt qua các ổ đĩa để tìm các tập tin. Chúng chỉ khác nhau phần tiêu đề và nút nhấn.
Các thuộc tính quan trọng:
o Name: tên của Common Dialog.
o Filter: đây là một chuỗi xác định phần mở rộng của tên các tập tin mà hộp thoại có thể mở hay lưu.
o FilterIndex: nếu có nhiều phần mở rộng của tên tập tin được mô tả trong thuộc tính Filter thì thuộc tính này xác định mặc định loại tập tin nào được chọn (là một số nguyên). o FileName: trả về tên tập tin sau khi người sử dụng hộp thoại chọn một tập tin nào đó. o CancelError: nếu TRUE thì trả về giá trị lỗi khi người dùng chọn nút Cancel, mặc nhiên giá trị này là False.
Phương thức:
o ShowOpen: mở ra hộp thoại mở tập tin. o ShowSave: mở ra hộp thoại lưu tập tin. Ví dụ:
Private Sub Form_Load() On Error GoTo ErrHandler
dlgFile.Filter = "All Files (*.*)|*.*|Text Files “ & _ “(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
dlgFile.FilterIndex = 2 dlgFile.ShowOpen Exit Sub ErrHandler: MsgBox Err.Description End Sub
Ở ví dụ trên, ta thiết kế một hộp thoại mở tập tin, trong đó các tập tin được hiển thị theo 3 nhóm tập tin đó là:
- All Files: (*.*) - Text Files: (*.txt) - Batch Files: (*.bat)
Thuộc tính FilterIndex = 2 tức là khi hộp thoại Open được mở lên, thì loại tập tin hiển thị mặc định là Text Files.
Sau khi đã chọn một tập tin và nhấn nút Open, ta sử dụng thuộc tính FileName để nhận về tên tập tin đã chọn.
Ta chọn phương thức ShowOpen để hiển thị hộp thoại mở tập tin.
II.4.4.2 Hộp thoại Chọn màu
Đây là hộp thoại cho phép người dùng chọn và hiển thị các màu có sẵn trong bảng màu của Windows cũng như thiết lập thêm nhiều màu mới. Một thuộc tính quan trọng đối với hộp
Draft
Bộ môn Tự động hóa Thiết kế Cầu đường 86 thoại chọn màu đó là thuộc tính Color, thuộc tính này trả về giá trị của màu đã được chọn.
Ta sẽ dùng phương thức ShowColor để hiển thị hộp thoại chọn màu.
Trong một số ứng dụng, dùng hộp thoại chọn màu để thay đổi giá trị màu của các điều khiển trong một số trường hợp nào đó.
Ví dụ thay đổi màu nền của điều khiển TextBox trong ví dụ dưới đây:
Ta sẽ thiết kế một nút nhấn nhỏ bên cạnh điều khiển TextBox, nút nhấn này cho phép
người sử dụng chọn màu nền của TextBox. Ta có đoạn mã lệnh sau: