hillyspring
銀牌會(huì)員
發(fā)短消息
關(guān)注Ta
積分 3152
帖子 435
威望 5490 個(gè)
禮品券 406 個(gè)
專家指數(shù) 563
注冊(cè) 2006-5-9 專業(yè)方向
2G4G優(yōu)化
回答問(wèn)題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
|
大
中
小
發(fā)表于 2011-11-28 19:51:53
只看樓主
|
標(biāo)準(zhǔn)對(duì)話框
對(duì)話框也是用戶界面的重要元素,MapBasic提供了幾種不同的語(yǔ)句和函數(shù)用以為你的應(yīng)用程序在必要時(shí)創(chuàng)建對(duì)話框。
1.顯示信息對(duì)話框
使用Note語(yǔ)句可以顯示一個(gè)帶有一條信息和一個(gè)“確認(rèn)”按鈕的簡(jiǎn)單對(duì)話框。例如下例所示(結(jié)果見(jiàn)圖):
Note
“ To display a message”
[attach]207123[/attach]
顯示信息對(duì)話框使用實(shí)例
2.詢問(wèn)對(duì)話框
用Ask()函數(shù)可以顯示一個(gè)帶有一條提示信息和兩個(gè)按鈕的對(duì)話柜。這兩個(gè)按鈕一般
一個(gè)是OK按鈕而另一個(gè)是Cancel按鈕,但用戶可以改變,請(qǐng)看下面的例子及其運(yùn)行結(jié)果(見(jiàn)圖):
.....
Dim check_a
As
Logical
Check_a = Ask(“ 想要繼續(xù)嗎?” , “ 是” , “ 否” )
Ask()函數(shù)有三個(gè)參數(shù), 第一個(gè)參數(shù)是一條提示信息,第二個(gè)和第三個(gè)參數(shù)是用戶為
OK按鈕及Cancel按鈕取的名字, 這兩個(gè)按鈕名,最終將顯示在對(duì)話框的兩個(gè)按鈕上。若用戶選擇了OK按鈕則Ask()函數(shù)返回TRUE值,反之若用戶選擇Cancsl按鈕則該函數(shù)返回FALSE值。
[attach]207124[/attach]
詢問(wèn)對(duì)話框使用實(shí)例
3.選擇文件對(duì)話框
使用FileOpenDly()函數(shù)可以顯示一個(gè)標(biāo)準(zhǔn)的打開(kāi)文件對(duì)話框。如果用戶選擇了一個(gè)
文件,則函數(shù)返回被選擇的文件的文件名;如果用戶取消了對(duì)話框,則返回一個(gè)空串。
FileOpenDly0函數(shù)的語(yǔ)法如下:
FileOpenDly(path, filename, filetype, prompt)
其中,path為文件的路徑,filename是指文件名,filetype是文件擴(kuò)展名,prompt是對(duì)話柜頂部的提示,這四個(gè)參數(shù)均為字符串值,例如(結(jié)果見(jiàn)圖):
S_filename = FileOpenDly(“ TAB” , “ 打開(kāi)表” )
[attach]207125[/attach]
圖
選擇文件對(duì)話框使用實(shí)例
Dim s_filename As String
s_filename=FileOpenDlg("","","TAB","Open Table")
----------------------------------------------------
到此為止我們對(duì)對(duì)話框的基本情況已經(jīng)介紹完了,那么接下來(lái)開(kāi)始我們今天的編程任務(wù)了。
我們今天就開(kāi)始熟悉各種對(duì)話框,
為了鞏固昨天的成果的,我們先在菜單欄里加入三個(gè)新的子項(xiàng),
信息對(duì)話框,點(diǎn)擊時(shí)顯示信息對(duì)話框
詢問(wèn)對(duì)話框,點(diǎn)擊時(shí)顯示詢問(wèn)對(duì)話框
選擇文件對(duì)話框。點(diǎn)擊時(shí)顯示選擇文件對(duì)話框
然后再添加三個(gè)進(jìn)程, 每當(dāng)點(diǎn)擊相關(guān)子項(xiàng)時(shí),就調(diào)用相應(yīng)的進(jìn)程,顯示相應(yīng)的對(duì)話框。
SubMain
alter menu bar add
"NSN"
create menu "NSN" as
"Create Text Boxes..." + Chr$(9) + "shift-Z /W#z",
"(Close TextBox",
"&About TextBox" Callingnote,
"(-",
"信息對(duì)話框" Callingnote,
"詢問(wèn)對(duì)話框" Callingask,
"選擇文件對(duì)話框" Callingchoose
End Sub
代碼如上, 點(diǎn)擊信息對(duì)話框調(diào)用note過(guò)程,點(diǎn)擊詢問(wèn)對(duì)話框時(shí)調(diào)用ask過(guò)程,依次類推。
NOTE,ASK和CHOOSE,使我們自己自定義的過(guò)程。mapbasic里調(diào)用過(guò)程語(yǔ)句是 calling,很簡(jiǎn)單的。
下面我們就開(kāi)始自定義這三個(gè)過(guò)程,
學(xué)過(guò)編程的都是,定義過(guò)程前,先要對(duì)過(guò)程進(jìn)行聲明,如下
------------------------------
Declare Sub note
聲明一個(gè)名為NOTE的過(guò)程,然后對(duì)NOTE的內(nèi)容進(jìn)行定義,如下
Sub note
Note"查詢成功!"
End Sub
note的過(guò)程里很簡(jiǎn)單,就是出現(xiàn) 查詢成功 的對(duì)話框。
----------------------------
下面是 詢問(wèn)的對(duì)話框
Declare Sub ask
sub ask
Dim check_aAsLogical
Check_a = Ask("詢問(wèn)對(duì)話框,想要繼續(xù)嗎?", "是", "否")
End Sub
----------------------
文件選擇對(duì)話框
Declare Subchoose
sub choose
Dim s_filename As String
s_filename = FileOpenDlg("","","TAB","選擇文件對(duì)話框")
open table s_filename Interactive
map from site
end sub
-----------------------------
這里我對(duì)文件選擇稍微加工了一下, 因?yàn)槲覀兛闯鑫募x擇對(duì)話框,返回的值實(shí)際上是文件的名稱,而在mapinfo中無(wú)法很直觀的判斷是否執(zhí)行成功,所以我在下面又添加了打開(kāi)文件,并且顯示在map上的功能,這樣我們就可以很清楚的判斷我們選擇的文件是否是正常打開(kāi)。
open table 就是打開(kāi)TABLE,這個(gè)基本一看就會(huì),不解釋
map from 就是將tab表顯示在map上,同樣不解釋。
完整代碼如下:
[attach]207128[/attach]
編譯后,在map中打開(kāi)效果如下:
菜單效果如下:多了三個(gè)子項(xiàng)
[attach]207131[/attach]
點(diǎn)擊信息對(duì)話框效果:
[attach]207132[/attach]
點(diǎn)擊詢問(wèn)對(duì)話框效果如下:
[attach]207133[/attach]
點(diǎn)擊文件選擇對(duì)話框如下:
[attach]207134[/attach]
然后我選擇了SITE.tab文件,顯示效果如下:
[attach]207135[/attach]
好了,我們成功的打開(kāi)了tab文件,并且將需要的表顯示在map上。
-------------------------------------------
今天我們學(xué)了對(duì)話框和如何打開(kāi)文件,并且顯示在地圖上。
發(fā)現(xiàn)沒(méi)人頂呀,很郁悶呀。(xiě)這個(gè)也很累的,還是原創(chuàng),抑郁了。
:( :( :( :'(
[ 本帖最后由 hillyspring 于 2011-11-28 20:49 編輯 ]
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書(shū)》
2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書(shū)-2022_03-21》
3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書(shū)》
4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書(shū)》》
5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5G NTN技術(shù)白皮書(shū)》
6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解》
7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書(shū)》
8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《 R16 23501-g60 5G的系統(tǒng)架構(gòu)1》
| |