Hàm FileOpenDlg() trong MapBasic

Hàm FileOpenDlg() không thực sự mở tệp, thay vào đó hàm cung cấp cho người dùng tùy chọn mở tệp. Hàm này có tối đa bốn đối số kiểu chuỗi. Chúng bao gồm một đường dẫn mặc định, tên mặc định, loại tệp và lời nhắc trong thanh tiêu đề. Nếu tất cả bốn tùy chọn này còn lại là NULL, đường dẫn mặc định được chọn, tên mặc định là một chuỗi trống, loại tệp là * .TAB và dấu nhắc tiêu đề mặc định là Open.

Dưới đây là một ví dụ cách dùng FileOpenDlg() có thể được sử dụng để nhắc người dùng chọn một tệp để mở trong MapInfo. Người dùng trong trường hợp này không được nhắc mở một tệp cụ thể. Lưu ý rằng ngay cả khi một đường dẫn và tên mặc định được cung cấp, người dùng vẫn được tự do chọn một đường dẫn và tên tệp khác.

' Program: File Open Dialog Program.mb
' Purpose: Demonstrate the FileOpenDlg() function
' Includes
Include "MAPBASIC.DEF"
' Declares
Declare Sub Main
Declare Sub WorkWithTable(ByVal sTargetTable As String)
' Function: Main()
' Purpose: Main Control
Sub Main()
' Create a variable to hold the chosen filename and assign the user's choice to this variable
Dim s_filename As String
s_filename = FileOpenDlg("","","","")
' Check to see if a filename has been chosen
      If (s_filename <> "") Then
         Open Table s_filename
         Call WorkWithTable(s_filename)
      Else
         Note "No table chosen. Closing the program."
         End Program
       End If
End Sub

' Procedure: WorkWithTable()
' Purpose: Carry out tasks on the table
Sub WorkWithTable(ByVal sTargetTable As String)
      If (sTargetTable <> "") Then
          ' Use TableInfo to obtain the tablename
          sTargetTable = TableInfo(0, TAB_INFO_NAME)
          Map From sTargetTable ‘Open a map
          Browse * From sTargetTable 'Open a browser
      Else
          Note "No Table Found"
          End Program
      End If
End Sub 

Nếu bạn chạy đoạn code trên, một hộp thoại sẽ mở ra tương tự như bên dưới:

Lưu ý rằng tên mặc định cho hộp thoại là Open, tên tệp được để trống và loại tệp mặc định là TAB. Người dùng có thể chọn một tập tin từ vị trí này hoặc vị trí khác. Bảng STATE được chọn như trong màn hình sau:

Nếu người dùng chọn mở tệp này thì MapInfo cũng sẽ mở cửa sổ bản đồ và trình duyệt như trong màn hình sau:

Nếu người dùng quyết định hủy hộp thoại Open thay vì chọn tệp, câu lệnh Lưu ý sau sẽ xuất hiện trong MapInfo như trong màn hình này:

Khi người dùng nhấp vào OK trên hộp thông báo này, chương trình sẽ được đóng lại.
Ví dụ hàm FileOpenDlg():

Dim s_filename As String
s_filename = FileOpenDlg("","","TAB","Open Table") 
Bình luận bằng Facebook Comments