Bài 2: Tạo menu với MapBasic

Hầu hết ứng dụng MapBasic sẽ bắt đầu bằng cách thêm một số lệnh menu vào Menu MapInfo chính. Sau đó, ứng dụng sẽ đợi người dùng chọn menu mục trước khi thực hiện.

Tạo menu

Trước khi thêm một menu mới vào thanh Menu MapInfo, trước tiên bạn phải tạo nó. Cú pháp để tạo một menu như sau:

Create Menu newmenuname [ ID menu_id ] As
menuitem [ID menu_item_id] [HelpMsg help] {Calling
handler|As menuname}
[, menuitem . . . ]

Ví dụ:

Create Menu “Hello Goodbye” as
“Hello” calling sayHello,
“GoodBye” calling bye

sayHello và Bye là các thủ tục (procedure) sẽ được gọi thực thi khi các mục menu này được chọn.

Thêm menu vào thanh Menu MapInfo

Khi bạn đã tạo một menu mới, bạn có thể thêm nó vào thanh Menu MapInfo, sử dụng cú pháp sau:

Alter Menu Bar Add newmenuname

Ví dụ:

Alter Menu Bar Add “Hello Goodbye”

Trong một số trường hợp, tốt hơn là thêm một menu vào một menu hiện có (như một menu con). Menu Tools được cung cấp dưới dạng menu bổ sung tiêu chuẩn để thêm các ứng dụng Mapbasic. Để thêm menu HelloGoodbye với menu Tools sử dụng cú pháp sau:

Alter Menu “Tools” Add
“Hello Goodbye” as “Hello Goodbye”

Lưu ý rằng bất kỳ menu nào có thể được thêm vào bất kỳ menu nào khác, nó không bị giới hạn trong menu Tools.

Thêm và xóa các mục menu

Bạn có thể chọn thêm một hoặc nhiều mục vào menu hiện có, chẳng hạn như tiêu chuẩn menu MapInfo hoặc một menu bạn đã tạo trước đó. Để làm điều này, sử dụng lệnh Alter Menu. Cú pháp của Alter Menu như sau:

Alter Menu { menuname | ID menu_id }
Add menudef [ , menudef… ]
hoặc
Alter Menu { menuname | ID menu_id }
Remove { handler | submenuname | ID menu_item_id }
[ , { handler | submenuname | ID menu_item_id }

Ví dụ:

Alter Menu “Hello Goodbye” Add
“Before you say Goodbye I say Hello” calling sayHello

Alter Menu “File” Add
“Before you say Goodbye I say Hello” calling sayHello

Alter Menu “File” Remove M_FILE_CLOSE
Alter Menu “File” Add M_FILE_CLOSE

Thay đổi các mục menu

Khi bạn đã tạo một mục menu, bạn có thể yêu cầu thay đổi giá trị của nó. Đó là thực hiện với câu lệnh Alter Menu Item. Cú pháp như sau:

Alter Menu Item { handler | ID menu_item_id }
{ [ Check | Uncheck ] |
[ Enable | Disable ] |
[ Text itemname ] |
[ Calling handler | As menuname ] }

Điều này cho phép bạn thay đổi tên mục menu, để bật hoặc tắt mục, thay đổi trình xử lý được gọi và kiểm tra hoặc bỏ chọn mục.

Ví dụ:

Alter Menu Item M_FILE_CLOSE
Text “Close a Table”
Alter Menu Item M_FILE_CLOSE_ALL
Disable

Kết quả của việc này là menu tùy biến xuất hiện trong menu công cụ. Cách bạn thiết kế và sắp xếp các menu của bạn sẽ phụ thuộc vào bản chất của ứng dụng của bạn. Một số người dùng thấy các menu phân cấp khó sử dụng.

Bình luận bằng Facebook Comments