菜鳥學(xué)mapbasic連載----第四集(用戶對話框)
今天我們開始學(xué)習(xí)用戶對話框,用戶對話框?qū)ξ覀儊碚f使我們可以很好的和MAPINFO進行交互操作,而且是圖形化界面,便于我們?nèi)粘5牟僮鳌?/font>
---------------------------------------------------
Dialog語句用來創(chuàng)建用戶對話柜。如果你的應(yīng)用程序使用了Dialog語句,那么程序執(zhí)行時MapInfo會顯示一個對話框,接著讓用戶與對話框以交互方式對話,當用戶關(guān)閉了
該對話框(如按了OK或Cancel按鈕),MapInfo將執(zhí)行Dialog語句后面的其他語句。在執(zhí)行了Dialog語句以后我們可以用CommandInfo()函數(shù)檢測用戶選擇了OK還是Cancel。
出現(xiàn)在對話框中的每一組件都稱為一個控件(control)。例如:每一個OK按鈕是一個控件,每一個Cancel按鈕也是一個控件。為了增加控件到對話框中,可以用Dialog語句中的Control子句。下面的語句創(chuàng)建了一個帶有四個控件的對話框,這四個控件分別為StaticText、EditText、OkButton和CancelButton:
Dim s_searchfor
As
String
Dialog
Title
Search”
Control StaticText
Title “Enter string to find:”
Control EditText
Into s_searchfor
Control OkButton
Title
“確定”
Control CancelButton
Title
“取消”
If CommandInfo(CMD_INFO_DLG_OK)
Then
Print
s_searchfor
End If
這個Dialog語句將產(chǎn)生下面的對話框(見圖):
[attach]208489[/attach]
Dialog語句的執(zhí)行結(jié)果(1)
1.控件的尺寸和位置
如果你想改變對話框中控件的尺寸大小,可以在Dialog語句中增加可選的Width和Height子句。如果你想改變控件的位置,可以在Dialog語句中包含可選的Position子句。例如上面的例子中,你不希望把兩個按鈕放在默認位置,則可以增加Position子句如下:
Dialog
Title
“Search”
......
Control 0kButton
Title
“查找”
Position 30,30
Control CancelButtcn
Title
“取消”
Position
90,30
這個例子是對前一個例子的兩個控件作了改動,一是對OK按鈕改變了它的位置和標題,二是對Cancel按鈕改變了它的位置。最終顯示結(jié)果如下(見圖)。
[attach]208490[/attach]
Dialog語句的執(zhí)行結(jié)果(2)
位置和尺寸依賴于對話框單位,一個對話框單位是四分之一個字符寬度和八分之一個字符高度。對話框的左上角的位置指定為(1,1),所以下面的Position子句所指的位置是距對話框左邊界五個字符和距頂部兩個字符的位置:
Position
20,16
同樣你可以用Width和Height子句指定每個控件的尺寸。
2.控件的類型
前面的例子已經(jīng)包括了對話框中的四種控件類型(StaticText、EditText、OkButton和CancelButton)。 圖10-7顯示了MapBasic所有的對話框控件類型。
·StaticText控件是一個非交互式控件,可以讓你在對話框中包含一個標號。例如:
Control StaticText T1tte “面板文本”
position 20,5
·EditText控件是一個文本框,用戶可以在此區(qū)域中輸入一些信息。例如:
Control EditText
Value
“文件名”
‘初值
Into filename
‘把輸入框中的內(nèi)容存入變量filename
Position
20,120
·GroupBox控件是一個左上角帶標號的矩形,它只起一個分隔的作用。例如:
Control RadioGroup
Title
“編輯文本將存于:”
Position
10,100
Width
160
Height 40
·Radiogroup控件是一個單選按鈕集,所謂單選按鈕集就是同一時間只能有一個按鈕被選中。例如:
Control RadioGroup
Title
“&R單選一;&O單選二”
Value
l
Into
ctrl_val
ID2
Position
20,32
·PenPicker,BrushPicker,F(xiàn)ontPicker和SymbolPicker控件都是讓用戶選擇一個圖文的式樣(線型、填充圖案、字體或者符號)。圖中的PenPicker控件顯示了一條直線。
[attach]208491[/attach]
MapBasic對話框的控件類型
Control子句如下:
Control PenPicker
Title
“線路”
Position
20,70
Into pen_variable
ID 3
·ListBox控件是一個滾動式列表,用戶可以選擇其中的一項,MapBasic自動在列表框的右邊追加一個垂直滾動條。例如:
Control ListBox
Title “列表選擇框;選項1;選項2;選項3;選項4:選項5;選項6”
Value 4
Into
i_quarter
ID4
Position
105,25
Width 80 Height 40
·MultiBox控件與ListBox控件相同,除了用戶可以用Shift或Ctrl鍵加鼠標單擊來選擇列表中的兩個或多個項。
·PopMenu控件是作為一個右邊帶下箭頭的文本項出現(xiàn)的,當用戶單擊該控件時,將彈出一個菜單,允許用戶選擇。例如:
Control PopupMenu
Titte
“下拉式菜單;選項—1;選項—2”
Value 2
Into
i_scope
ID 6
Position
90,5
·CheckBox控件是一個帶框的標號,用戶可以單擊該控件來設(shè)置或清除復(fù)選框。例
如:
Control
CheckBox
Title
“功能確認框”
ID7
Position
l0,150
·Button是最普通的控件,因為幾乎每個對話框都至少有一個Button. MapBasic提供了兩種特殊的Button控件OkButton和CancelButton。
Control
OkButton
Title
“確定”
Position
50,180
Calling
Ok_Sub
Control
CancelButton
Title
“取消”
Position
120,180
每一個對話框都不應(yīng)有多個OkButton或CancelButton。每個控件都是可選的, 但作為一個通用的規(guī)則,每個對話框應(yīng)該至少有一個Ok或Cancel按鈕,以便用戶可以關(guān)閉對話框。如果控件帶有處理程序,MapBasic先執(zhí)行這些處理程序,然后繼續(xù)執(zhí)行Dialog下面的語句。
---------------------------------------------------
最后上傳本次 例子的源代碼,喜歡的拖鞋們,可以自己看看。
[ 本帖最后由 hillyspring 于 2011-12-5 20:02 編輯 ]
2011-12-5 20:00:45 下載次數(shù): 102
dialog.zip (1.14 KB)
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書》
2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21》
3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書》
4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》》
5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5G NTN技術(shù)白皮書》
6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解》
7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書》
8、回復(fù)“5GX3”免費領(lǐng)取《 R16 23501-g60 5G的系統(tǒng)架構(gòu)1》
|