Chương 2: Xây dựng giao diện
Để người sử dụng có thể sử dụng chương trình, cần tạo ra một môi trường giao tiếp thuận tiện và dễ hiểu giữa người dùng và chương trình. Giao diện thân thiện với người dùng có thể trở thành chìa khóa cho sự thành công của toàn bộ chương trình. Trong MapInfo, tương tác người dùng được thực hiện thông qua menu, bảng điều khiển, hộp thoại,…
Thiết kế giao diện người dùng đồ họa là một trong những bước quan trọng trong việc tạo chương trình. Có thể đối với một chương trình nhỏ được điều khiển bởi một nút lệnh duy nhất trên thanh công cụ, điều này không quá rõ ràng, nhưng khi thiết kế một hệ thống thông tin địa lý (Geographic Information System – GIS), vấn đề này sẽ là một trong những vấn đề chính. Một đoạn chương trình cung cấp giao diện người dùng đồ họa thường chiếm một phần đáng kể trong code và phần này rất quan trọng. Sau đây là một số kỹ thuật để xây dựng giao diện người dùng trong các chương trình MapBasic.
Chủ đề 5: Tạo menu
Để tạo một menu mới hoặc ghi đè lên một menu hiện có, sử dụng lệnh Create Menu.
Hãy xem xét hai ví dụ nhỏ về việc tạo một menu. Trong ví dụ đầu tiên, một menu mới được tạo, sẽ được đặt ở cuối dòng của menu MapInfo chính. Sau khi hoàn thành thủ tục theEnd, chương trình sẽ kết thúc công việc và menu được xây dựng sẽ được gỡ bỏ.
Code: Tạo một menu mới
Include “mapbasic.def”
Declare Sub Main
Declare Sub TestPrint
Declare Sub theEnd
Sub Main
Create Menu
“Test Menu” As “In” Calling TestPrint,
“Thoat” Calling theEnd
Alter Menu Bar Add “Test Menu”
End Sub
Sub TestPrint
Print “Test Menu”
End Sub
Sub theEnd
End Program
End Sub
Chúng ta sẽ thay đổi một chút thủ tục Main của chương trình như sau:
Sub Main
Create Menu “Test Menu” As
“In” Calling TestPrint,
“Thoat” Calling theEnd
Alter Menu Bar Remove ID 6, ID 7
Alter Menu Bar Add “Test Menu”, ID 6, ID 7
End Sub
Trong trường hợp này, menu sẽ được đặt trong thanh menu MapInfo trước menu Window. Ở đây, định danh (ID) được sử dụng thay vì tên menu. Một danh sách các định danh cho các menu tiêu chuẩn có thể được tìm thấy trong tài liệu về MapBasic.
Hãy phân tích code của ví dụ thứ hai:
Code: Tạo một menu mới thay thế menu hiện có
Include “mapbasic.def”
Declare Sub Main
Declare Sub TestPrint
Declare Sub theEnd
Sub Main
Create Menu “Help” As
“In” Calling TestPrint,
“Thoat” Calling theEnd
End Sub
Sub TestPrint
Print “Test Menu”
End Sub
Sub theEnd
End Program
End Sub
Trong trường hợp này, menu Help tiêu chuẩn sẽ thay thế menu mới, gồm hai mục In và Thoat. Sau khi chương trình kết thúc (thủ tục theEnd), menu Help tiêu chuẩn sẽ được khôi phục. Bạn có thể lập trình kiểm soát trạng thái của một mục menu. Đối với điều này, mã điều khiển đặc biệt được sử dụng. Thông tin về các mã điều khiển này có thể xem thêm trong tài liệu tham khảo về MapBasic. Một ví dụ về việc sử dụng mã điều khiển:
Create Menu “Giup do” As “In” + Chr$(9) + “Ctrl+q/W^L” Calling TestPrint, “(-“, “Thoat” Calling theEnd
Tại đây, chú thích Ctrl + q sẽ được thêm vào mục menu In và sẽ có thêm một cơ hội để gọi trình xử lý TestPrint bằng cách nhấn các phím Ctrl + L. Mục menu tiếp theo không có trình xử lý sự kiện và vai trò của nó là trang trí – nó vẽ một đường gạch ngang phân cách các mục menu.
Bình luận bằng Facebook Comments