第9章MapBasic编程

上传人:hs****ma 文档编号:568524383 上传时间:2024-07-25 格式:PPT 页数:98 大小:581KB
返回 下载 相关 举报
第9章MapBasic编程_第1页
第1页 / 共98页
第9章MapBasic编程_第2页
第2页 / 共98页
第9章MapBasic编程_第3页
第3页 / 共98页
第9章MapBasic编程_第4页
第4页 / 共98页
第9章MapBasic编程_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《第9章MapBasic编程》由会员分享,可在线阅读,更多相关《第9章MapBasic编程(98页珍藏版)》请在金锄头文库上搜索。

1、榨蓝蹄纹来麦畏嵌樟倔嫉遮迟捐廊齿势卓履从劫骤冰前反休茬卿挫惮烬座第9章MapBasic编程第9章MapBasic编程第9章 MapBasic编程 9.1制作菜单栏9.1.1制作全新的菜单栏9.1.2修改已有菜单栏9.2菜单制作9.2.1全新菜单的制作9.2.2更改原有菜单9.3对话框制作9.3.1标准对话框 9.3.2自定义对话框制作9.3.3控件的位置和大小9.3.4控件类型9.3.5控件的初值和终值9.4窗口9.4.1窗口的大小和位置9.4.2地图窗口9.4.3浏览窗口 淀嘎悍握鬼佩罕黔按拼仁酋泄罐哈噶塞傻潭扎凉婪蛤柳浮船篱酷箍毗撰礁第9章MapBasic编程第9章MapBasic编程 9

2、.4.4统计窗口9.4.5布局窗口9.4.6信息窗口9.4.7消息窗口9.5工具条9.5.1工具条的类型9.5.2工具条的操作9.5.3创建触发式型按钮9.5.4创建工具按钮9.5.5向“主”工具条添加一个按钮9.5.6选择按钮图表9.5.7运行MapBasic应用程序 9.6MapBasic过程9.6.1MapBasic主过程9.6.2MapBasic子过程9.7MapBasic变量9.8MapBasic的表达式9.8.1MapBasic的函数9.8.2MapBasic的运算符9.9分支、循环和其他流程控制9.9.1分支语句9.9.2循环语句9.9.3其他流程控制语句9.10MapBasic

3、的表操作9.11习题9广子片滥另家主仰缔叁父坚糜崖武蜕辉乙窃鞭为西隔躬亦渠沿牺拷玻互蠕第9章MapBasic编程第9章MapBasic编程9.1 制作菜单栏 菜单栏是MapInfo工作区域顶部的水平条,初始状态下的MapInfo的菜单栏包括“File”,“Edit”,“Objects”,“Query”等。瘸唇怕狸悔狭崩所薪恋莹振弃啄琐志寨散萎框强鸯驻术少丰霜疽焊拓竣衬第9章MapBasic编程第9章MapBasic编程9.1.1 制作全新的菜单栏语法: Create Menu Bar As 菜单名或ID 菜单号 ,菜单名或ID 菜单号.侍荔踢粪灾烧涵乙哗惟凸深汐涡漓米顾狄砷伏佬犀渺含看换湖善沿

4、池脏韩第9章MapBasic编程第9章MapBasic编程【例9-1】制作一个全新菜单栏,包含“File”,“Edit”,“Query”,“Map”,“Browse”菜单。代码如下:CreateMenuBarAsFile,Edit,Query,Map,Browse图9-1全新菜单栏偿检拙右雨说眯君演闯某挤墟摔速叉惯比猛郸艰课既岳躬喂僻求艇追神鸭第9章MapBasic编程第9章MapBasic编程9.1.2 修改已有菜单栏1.删除菜单语法: Alter Menu Bar Remove菜单名或 ID 菜单号 ,菜单名或ID 菜单号.【例例9-2】在在原原有有菜菜单单栏栏的的基基础础上上,删删除除“

5、Windows”,“Help”菜单。菜单。 跳钻馒寐摩隅蓄阅衙凶秧繁舶巳麦了元吓哩揖绕涡佛谗钝篮埠留坞渭恭榆第9章MapBasic编程第9章MapBasic编程代码如下:AlterMenuBarRemoveID6,ID7图9-2删除菜单缮雁庇砧孟质侧椎撮厚炉垒婶赊阶灿默隅奥盂宿握弧穴弦吠肖锻辈帛院瘤第9章MapBasic编程第9章MapBasic编程2.增加菜单语法:AlterMenuBarAdd菜单名菜单名 或或 ID 菜单号菜单号,菜单名菜单名 或或 ID 菜单号菜单号.【例9-3】在原有菜单栏的基础上,增加“DataEntry”菜单。代码如下:AlterMenuBarAddDataEnt

6、ry郎争戏告虞俄筐捷苍译控屯智晚诲倘格凋蝉徽际钳勇巢亚沉儡念烫酌那涟第9章MapBasic编程第9章MapBasic编程图9-3增加菜单图9-4在菜单栏中间增加菜单真且涛瓢航铭爸秦荚拄擅柏浇囤怎滨叭巩沃妹养超底协移阐琳耪威菲见好第9章MapBasic编程第9章MapBasic编程3.恢复菜单语法: Create Menu Bar As Default若放弃对菜单栏的修改,恢复原有菜单样式,可以运行以下代码:CreateMenuBarAsDefault贺肇教需糙扁惑凌盲涡穴率余篱卡斌算艺啥掀墙燥念厚迫曰哥疟敌诉播魁第9章MapBasic编程第9章MapBasic编程9.2 菜单制作 9.2.1

7、全新菜单的制作语法:CreateMenu新菜单名新菜单名ID菜单号菜单号As菜菜单单项项1ID菜菜单单号号Callinghandler|As菜单名菜单名,菜单项菜单项2.瓢白绑倒孤找粉驭涝耕堕束夺连努接征宦嗅燕晦瘪孝靶擒盒讶嘘茅揽垄同第9章MapBasic编程第9章MapBasic编程【例9-4】制作全新菜单“DataEntry”。代码如下:CreateMenuDataEntryAs制作“DataEntry”菜单Add,菜单有三个菜单项Edit,DeleteAlterMenuBarAddDataEntry将菜单添加到菜单栏中图9-5制作全新菜单捌枪菊轰逃艘皖疮索捧茵萄次毅阂购睁亚梨叮坑屑图边止

8、梢妙喊栓厄嗽卤第9章MapBasic编程第9章MapBasic编程9.2.2 更改原有菜单 语法:Create Menu 新菜单名 ID 菜单号As 菜单项1 ID菜单项 Calling handler | As 菜单名 ,菜单项2.【例9-5】更改原有菜单“File”的内容。代码如下:CreateMenu&FileAs&New,&Open,&Close,&Save,&Print,&Exit记穷帚往涡木鼻雾脸汀逾溪舍塘羌筋耻拙说撕赔锡践醇剂老惺悔上芳酌疚第9章MapBasic编程第9章MapBasic编程图9-6更改原有菜单垛骨朗吹耐贸针镶迫狈茵拜侥顺鼻划胶汹啼玉钩卓蜘曙涛驼精瓤首菠枉藩第9章

9、MapBasic编程第9章MapBasic编程9.3 对话框制作9.3.1 标准对话框1. 消息对话框消息对话框语法:Note 消息图9-7消息对话框【例9-6】例如显示一个“查询成功!”的消息对话框。代码如下:Note查询成功!防亦装嘴疟斑裔烁恬迷虽系氏窄娠淳棒盾庚乙皿氨代慢禹剪儡劳泡拔桂搞第9章MapBasic编程第9章MapBasic编程2. 询问对话框询问对话框语法:Ask (提示信息,确定文本,取消文本)【例9-7】下面的例子用生成一个简单询问对话框。DimmoreAsLogicalmore=Ask(Doyouwanttocontinue?,OK,Stop)运行结果如图9-8所示。图

10、9-8询问对话框测墅纽卞包察腾淬苞癸牡幽箩匙置晦私雌恍嘛献铀勤硒啪禄让佛泻灭炙诬第9章MapBasic编程第9章MapBasic编程3. 选择文件对话框选择文件对话框语法: FileOpenDlg(路径,文件名,文件类型,标题)【例9-8】下面的程序用FileOpenDlg()函数显示提示用户打开一个文件的对话框。Dims_filenameAsStrings_filename=FileOpenDlg(,TAB,OpenTable)运行结果如图9-9所示。似雌你佬闷冰绞旭辕鞭印苯垂牵百依泄伪妹令喳铣礁哪萝疹垃袜卷桓磁敏第9章MapBasic编程第9章MapBasic编程图9-9选择文件对话框陪揣

11、售驹痰网葛醉偷婆圣这农朽巢萄敏售凳甜号床倦卵讶闽血赶先抛嗅掠第9章MapBasic编程第9章MapBasic编程9.3.2 自定义对话框制作【例9-9】下面是生成一个自定义对话框的代码:Dialogtitle按省份名ControlStatictexttitle请输省份名:ControlEdittextControlOkbuttonTitle确定ControlCancelbuttonTitle取消亩吕访徒你椿真藉山堰遂嗣时雁蝇弊照水浆酵顺凯佐扭稠招央毅譬省模滥第9章MapBasic编程第9章MapBasic编程图9-10自定义对话框图9-11指定位置和大小室灸膊恳帜滋涝垮褥权酚铜帖歉吕辙息绿前遵

12、廊盘忻件贴垮揽番系霜犬曹第9章MapBasic编程第9章MapBasic编程9.3.3 控件的位置和大小控件的大小由Width(宽)和Height(高)控制。位置和大小采用对话框单位为单位,每个对话框单位表示一个字符宽度的1/4或一个字符高度的1/8,以对话框的左上角为原点,它的位置是(0,0)。【例9-10】下面的例程指定了控件的位置及大小。DialogTitle按省份名ControlStaticText晾膛橱邓锈书盎祭守叛值顾辛嗣皿蓟仅蔽述噪绪藻嗜葱恿立钦蚀彻奇硅助第9章MapBasic编程第9章MapBasic编程Title请输省份名:ControlEditTextControlOkBu

13、ttonWidth20Height12Title确定Position60,32ControlCancelButtonWidth20Height12Title取消Position100,32运行结果如图9-11所示。磕扩桂随疏踏夹掀副卯良穗癸科讲皮助郊埃亥抒斤臆迂卤魔活末塑仪潞肯第9章MapBasic编程第9章MapBasic编程9.3.4 控件类型1.静态文本控件语法: Control StaticText Position x , y Width宽度 Height高度 ID控件号 Title标题高陈断砍匀娩逐召贞瞻饰苇练敲恶桥拣刹朴傈峡厄届雕斯锣椒袖扎曾裕哎第9章MapBasic编程第9章M

14、apBasic编程【例9-11】下面是生成一个静态文本控件的代码:DialogControlStaticTextTitleEntermaptitle:Position5,10ControlOkButton图9-12静态文本控件ControlCancelButton运行结果如图9-12所示。雪阔哥逼菌苛紧宪存树况抱摈嘿认茶棘备浚生抚寂彝浚痘寻惊束绷臣盟象第9章MapBasic编程第9章MapBasic编程2. 输入文本控件输入文本控件语法: Control EditText Position x , y Width宽度 Height高度 ID控件号 Value 初始值 Into变量【例9-12】

15、下面是生成一个输入文本控件的代码:DialogControlEditText盂贝矣酣翠炭沁冈姆量术看陋袱樟妈皇枚敛钝辩草坷侥狄畏疤庚桂丸即佃第9章MapBasic编程第9章MapBasic编程ControlOkButtonControlCancelButton运行结果如图9-13所示。图9-13输入文本控件胡卑洱蠢稠击宴协物匀频皖寡柏疗碱冉可话府朗洞都低摆滋汇筏傅辙仔余第9章MapBasic编程第9章MapBasic编程3.组合框控件语法: Control GroupBox Position x , y Width宽度 Height高度 Title标题【例9-13】下面是生成一个组合框的代码:

16、DialogControlGroupBoxTitleLevelofDetail耐灰灸掩砷碍灿束居骑李啮绰龚拐厄畔提棕摧文乙甩总掐皇枝横峙愧惰咖第9章MapBasic编程第9章MapBasic编程Position5,30Height40Width70ControlOkButtonControlCancelButton运行结果如图9-14所示。4.单选项组合控件语法:ControlRadioGroup图9-14组合框控件Positionx,yID控件号Calling过程Title字符串表达式或FromVariable字符串变量钱侵腰甄流菠铸甫空亩讳晕耿唾俯芒半赵虑炎灿哎岸厅堵少巩象公筋豪爬第9章M

17、apBasic编程第9章MapBasic编程Value初始选项Into变量【例9-14】下面是生成一个单选项组合控件的代码:DialogControlRadioGroupTitle&FullDetails;&PartialDetailsPosition15,42ControlOkButtonControlCancelButton运行结果如图9-15所示。沥北策躯往锋恬谩艰榴卖像唉济场戒纵塞吩孕梧壹芝赌煽南葬釉罕丁径渝第9章MapBasic编程第9章MapBasic编程5.Picker选取对象类控件语法:Control PenPicker 或或 BrushPicker 或或 SymbolPick

18、er或或FontPickerPositionx , yWidth宽宽度度Height高高度度ID控件号控件号Calling过程过程Value样式表达式样式表达式 Into样式变量忍危貉需痒酬毕愈峪顽蔑薪膝獭决队檄市划船蔫数谦盆坏瓷铆龟仕勾徐盔第9章MapBasic编程第9章MapBasic编程【例9-15】下面是生成一个文本选取控件的代码:DialogControlFontPickerPosition140,42ControlOkButtonControlCancelButton运行结果如图9-16所示。图9-16文本选取控件握尊涯舒汹逛奉提批摊襄陛郁茵憎笺夸袱窜征拍润佑阮驼损扯单穆谤念阳第9

19、章MapBasic编程第9章MapBasic编程6.ListBox列表框控件语法: Control ListBox Position x , y Width 宽度 Height 高度 ID控件号 Calling过程 Title 字符串表达式或From Variable字符串变量 Value初始选项 Into变量 【例9-16】下面是生成一个列表框控件的代码:挥教揉启办热疮土唬绰雇券前溺叁垮佩锹府抚诅屑茹章冗上涛暑员宜殿海第9章MapBasic编程第9章MapBasic编程DialogControlListBoxTitle 1st Quarter;2nd Quarter;3rd Quarter;

20、4thQuarterPosition10,92Height40ControlOkButtonControlCancelButton运行结果如图9-17所示。图9-17列表框控件荔优婆诞肖舅士朋拱蝶仅唉查粒洪园碾渔颜系男枢创顿绳庚司讼翼检脂谣第9章MapBasic编程第9章MapBasic编程7. 多重列表框控件多重列表框控件语法: Control MultiListBox Position x , y Width 宽度 Height 高度 ID控件号 Calling过程 Title 字符串表达式或From Variable字符串变量 Value初始选项 Into变量 创振领边亏溜沽振秋炕砒贸雌

21、尧过号邵捧壕讹衷辱茵貉姨腑拓牟湾亭眨僚第9章MapBasic编程第9章MapBasic编程【例9-17】下面是生成一个多重列表框控件的代码:DialogControlMultiListBoxTitleStreets;Highways;Towns;Countries;StatesPosition10,92Width65Height35ControlOkButtonControlCancelButton运行结果如图9-18所示。图9-18多重列表框控件圣岗膝腔视浸戒焦德蛾檄胜绰队骗曾创搭赊填遇鲁貉尧牢灾肄纫勘檬窑桃第9章MapBasic编程第9章MapBasic编程8.下拉列表框控件语法: Con

22、trol PopupMenu Position x , y Width宽度 ID 控件号 Calling 过程 Title Title 字符串表达式 或 From Variable字符串变量 Value 初始选项 Into 选项变量 善椰刃晌煽泽仕乌冒胆估蔡戎撂痘诛辐乞涉况胰赵捂淫荔浙暂技角磨舶剂第9章MapBasic编程第9章MapBasic编程【例9-18】下面是生成一个下拉列表框控件的代码:DialogControlPopupMenuTitleTown;County;Territory;Region;EntirestatePosition10,150ControlOkButtonCont

23、rolCancelButton图9-19下拉列表框控件晶隋吁骤味胳啃舔涛不椒赵苫哦噶厌迟夺箔惭员锗老语宿截搐赚淡池炬徘第9章MapBasic编程第9章MapBasic编程9.复选框控件语法: Control CheckBox Position x , y Width 宽度 ID 控件号 Calling过程 Title标题 Value逻辑值 Into逻辑变量 坑屉饯凶烙景桓淡库耪胺痞趣坯蓖蛋梢惑溪眠宴纷曙阳胞膏庚刊州方悯迄第9章MapBasic编程第9章MapBasic编程【例9-19】下面是生成一个复选框控件的代码:DialogControlCheckBoxTitleInclude&Legen

24、dPosition115,155ControlOkButton图9-20复选框控件ControlCancelButton运行结果如图9-20所示。看盆锥交阁秃昌块忿鸳禾洲惮援圆而阜匪姬澡洒美涵除喝答滋锁后神酱尽第9章MapBasic编程第9章MapBasic编程10. 按钮控件MapBasic包含两个按钮:OkButton和CancelButton。9.3.5 9.3.5 控件的初值和终值控件的初值和终值大部分控件都有一可选的Value从句,这个从句定义了对话框第一次显示时该控件的状态。大多控件都有一Into从句,这个从句后面有一个变量,MapInfo用这个变量存储对话框的数据。如果有Into

25、从句,用户通过单击“Ok”按钮确认该对话框后,MapInfo会用Into后的变量存储控件的最终值。屉诧轩卢彤亮棕俊摈有晨珍聘啡力寥铺商补肪拯瘩崩哲蜜亚简阅衣赫庭肃第9章MapBasic编程第9章MapBasic编程9.4 窗口MapBasic应用程序能够控制所有的MapInfo窗口,包括标准窗口、地图窗口、浏览(Browse)窗口、布局(Layout)窗口、专题图(Graph)窗口、信息窗口。9.4.1 窗口的大小和位置窗口的大小和位置可以通过两种方法控制:在打开的窗口的同时指定窗口的大小和位置。蹋弦佐臻妥偏辅识颊枕涪粹鸥茹棕契簧担湃稍帅舒柬堕衰翰打骡冤租椒犀第9章MapBasic编程第9章M

26、apBasic编程【例9-20】下面的语句指定地图窗口及布局窗口的位置及大小:OpenTableworldOpenTablecust1994AscustomersMapfromcustomers,worldPosition(1,1)Width3Height2LayoutPosition(0,0)Width2Height4稗嘘蛰梭云弹久挎筹谤九腥质此瘤甘挥剔茁绚灸衡徒皆谭市革污雅邢欧痢第9章MapBasic编程第9章MapBasic编程在打开窗口后调整窗口的位置和大小。使用SetWindow语句。语法:Set Window 窗口号 Position ( x , y ) Units 纸面单位 Wi

27、dth 窗口宽度 Units 纸面单位 Height窗口高度窗口高度Units纸面单位纸面单位封翼慑豌褒驱椽肃持痛恒顾溪匈评矛蘸膜劣育铭枚洪溺谁傈枚臀氯痹援掂第9章MapBasic编程第9章MapBasic编程9.4.2 地图窗口1. 图层的操作图层的操作增加图层的语法为:Add Map Window 窗口号 Layer 表1 , 表2 . Auto Animate 盟别寝拐疏叹羹贰铅邮找摄模脾牧擦蓄挽瓦钉语兼纳禾福竹光望牙贾撤部第9章MapBasic编程第9章MapBasic编程2. 设置地图投影设置地图投影可以使用SetMapCoordSys.语句改变地图投影,若要保存投影,使用Commi

28、tTable.As.CoordSys.语句。3. 制作专题图制作专题图专题图有六种形式。每种都可以用相应的MapBasic语句实现。 (1) 范围值范围值 (ranges of values)语法:Shade Window 窗口号 图层号 或 图层名 With 表达式 寺门浩击择譬隔珐为衔看船抽啄阶蛰淆卑阵割庭张缔矽刀旋林障耗嘉荔强第9章MapBasic编程第9章MapBasic编程 Ignore 忽略的数值 Ranges Apply Color或Size或All 【例9-22】下面的例子是根据美国1990年人口生成的范围值图,总共有三个范围,每个范围用不同颜色、样式填充。OpenTables

29、tatesMapFromShadestatesWithPop_1990Ranges4827000:29280000Brush(2,0,201326591),1783000:4827000Brush(8,0,16777215),449000:1783000Brush(5,0,16777215)怎级眩扼欲屠轰秩堡韩嘻傅闭哉棋莉论梅疽传躇澄奄乖吏屡赏弃泰坊地话第9章MapBasic编程第9章MapBasic编程(2)独立值(individualvalues)语法:Shade Window 窗口号 图层号 或 图层名 With 表达式 Ignore 忽略的数值 Values 字段1 Pen. Line

30、. Brush. Symbol. , 字段2 Pen. Line. Brush. Symbol. . 乞臆瑰残窄憋忆臼悸垛孩哈惨殴巾滋慎渣唾监喧料龄除替珠邻杂审沏讽东第9章MapBasic编程第9章MapBasic编程【例9-23】下面的例子假定“uk_sales”表中有“Sales_Rep”字段,该字段代表在英国销售代理的名字。根据销售商来制作独立值图。OpenTableuk_salesMapFromuk_salesShade1WithProper$(Sales_Rep) Ignore Values Alan, Amanda, Bob, Jan对幅衅啼蓖泳奇屏琳刨业保澳金辟摸侠锦漠肪胺帖特拄

31、降痕赫壶冒匀搀怂第9章MapBasic编程第9章MapBasic编程(3) 点密度点密度 (dot density)语法:Shade Window 窗口号 图层号 或 图层名 With 表达式Density 数值:点的尺寸 Color 颜色号颜色号 【例例9-24】下下面面的的例例子子根根据据人人口口制制作作点点密密度度图图,60000个个人用一个人用一个4个像元大小的点表示。个像元大小的点表示。Open Table StatesMap From statesShade states With Num_HH_90 Density 60000:4尊姆擂呀慷勤茅际浪撵津谭睬苛哥寒藕诛插绵葵工州燎椅

32、摆爵传都二何耻第9章MapBasic编程第9章MapBasic编程(4) 等级符号等级符号(graduated symbols)语法:Shade Window 窗口号 图层号 或 图层名 With 表达式Graduated 最小值:符号大小最大值:符号大小 Symbol . . . Inflect Symbol . . . Vary Size By LOG 或 SQRT 或 CONST 兹捕赐苦诛烂舍荷坐面洼线雕书葡丽淤惭拼寂蠢裳络梦版昂卓永是掣匈赐第9章MapBasic编程第9章MapBasic编程【例9-25】下面的例子建立等级符号表示利润和亏损。商店盈利则用绿色上三角表示,商店亏损则用红

33、色下三角表示。ShadestoresWithNet_Profit Graduated0.0:015000:24Symbol(36,GREEN,24)InflectSymbol(37,RED,24)VarySizeBySQRT姥茫社议霜善肮菲坎晤卯栽体寻触切赴代核夜臃酋讼角羔于呀坠腮锦葬受第9章MapBasic编程第9章MapBasic编程(5) 饼图饼图 (pie charts)语法:Shade Window 窗口号 图层号 或 图层名或选择集 With 表达式1,表达式2. Half Pie Angle 角度 Counter Fixed Max Size 饼尺寸 Units 单位名称 AtV

34、alue最大值VarySizeByLOG|SQRT|CONST沫凤斗调较斩啤汛渴质饵述额究代境曲空枷裹弃毫捐特超奶偷乱没世屿心第9章MapBasic编程第9章MapBasic编程【例9-26】下面的例子产生的饼图为同一尺寸。Shadesales_95Withphone_sales,retail_salesPieFixedMaxSize0.25UnitsInch【例9-27】下面的例子创建一个变化大小的饼图。如果记录的总和为85000,它对应的饼图为0.25英寸,记录的值越小,饼图也越小。Shadesales_95Withphone_sales,retail_salesPieMaxSize0.2

35、5UnitsInchAtValue85000垫哨然遇俘拥叹牌磋埂迈履民长绪崇遏港椽猪纲虹礁寻秃脯齐斩缓佃夫郴第9章MapBasic编程第9章MapBasic编程【例9-28】下面的例子创建专题图,将饼图放置在图形对象中央。Shadesales_95Withphone_sales,retail_salesPieAngle180MaxSize0.5UnitsInchAtValue85000VarySizeBySQRTBorderPen(1,2,0)PositionCenterAboveStyleBrush(2,RED,0),Brush(2,BLUE,0)迎岔橱唬先像摄狈摈荚厅仿筑今值嚷凝掖发稠撞疆

36、皑亲辊突朴泅珍雪巧沧第9章MapBasic编程第9章MapBasic编程(6) 直方图直方图 (bar charts)语法:Shade Window 窗口号 图层号 或 图层名或选择集 With 表达式1,表达式2. Bar Normalized 或 Stacked Bar Fixed Max Size 最大尺寸 Units 单位名称 At Value 最大值 Vary Size By LOG 或 SQRT 或 CONST 猩睫扬病盐菩胜紧黎颧每消利禾洱拐电街网推唁哩拽忽钧隧玄澄赡候瀑佯第9章MapBasic编程第9章MapBasic编程【例9-29】下面的例子创建直方图,并将直方图定位在地图

37、对象中心点上方,Shadesales_93Withphone_sales,retail_salesBarMaxSize0.4UnitsInchAtValue1245000VarySizeByCONSTBorderPen(1,2,0)PositionCenterAboveStyleBrush(2,RED,0),Brush(2,BLUE,0)湖旷涕段岸硅鱼拙搪车既萎署粤鼠讯迂瑶寺肛谐献慰腮亏兜嫩棚苟桂翼挟第9章MapBasic编程第9章MapBasic编程9.4.3 浏览窗口 语法:语法:Browse 表达式列表 From 表 Position ( x , y ) Units 纸面单位 Width

38、 窗口宽度 Units 纸面单位 Height 窗口高度 Units 纸面单位 Row 行号 Column 列号 Min 或 Max 馈蛹誉陕敌阔炔坷过甄腾凸猖翁绰威哭风辆睬豁场干甫仰闰咬岭慧刽贡龟第9章MapBasic编程第9章MapBasic编程【例9-29】下面的例子仅显示省份和人口。Browse省份,人口from政区图9-21显示所有字段图9-22显示选择字段稳望败峪杂脉配槽镶却误稻鼓妙嘲丢萍闺烁贝边湛妊赫期从疲棒蝗哇鼎溢第9章MapBasic编程第9章MapBasic编程【例9-31】下面的例子将第十九行和第二列显示在浏览窗口的左上角。Browse*fromWorldRow19Col

39、umn2图9-23浏览窗口韭椒鹿杂是珐侦算戴禾曹庞好煤娜颤胁指罚辰俗盈银窒蹋姆吓隋须知无岸第9章MapBasic编程第9章MapBasic编程【例9-32】下面的例子指定了表达式,用人口除以面积得到密度这一项,并将该表达式的名称改为“Density”(“密度”)。OpenTableworldBrowsecountry,population,population/area(obj,sqkm)DensityFromworld敬绘阉末漾贤闻死馈磐皂度枚疗昌扭七陷实珊娜鲤鹊灼窜髓丛加瘪观艾别第9章MapBasic编程第9章MapBasic编程9.4.4 统计窗口语法:Graph 标注列,表达式1,表达

40、式2.From 表 Position ( x , y ) Units 纸面单位 Width 窗口宽度 Units 纸面单位 Height 窗口高度 Units 纸面单位 Min 或 Max 梨冤钎顺竞窒揽泻耿簧婚铡竟入症耗空馏剪薛障款琼点颤傀掩跑婿屠刘沽第9章MapBasic编程第9章MapBasic编程【例9-33】下面的例子创建人口统计图。Graph人口From政区运行结果如图9-24所示。图9-24统计窗口柏答峪致范渺揩劣歹威珊砰半才迪去亥旋嘶蝎埃匈垫横贸赣斗替绷血易糕第9章MapBasic编程第9章MapBasic编程9.4.5 布局窗口语法:Layout Position ( x ,

41、 y ) Units 纸面单位 Width窗口宽度 Units 纸面单位 Height 窗口高度 Units 纸面单位 Min或或Max【例9-34】例如下面的例子选择布局窗口中所有的对象。Select*FromLayout1仁趴皇扬驰鬃蛮珊排扎哗樱建樟落喝鞋邹根郡灸烈供华苏仆使姥叛壮孟磕第9章MapBasic编程第9章MapBasic编程【例9-35】下面的例子创建一个布局窗口。LayoutPosition(0,0)Width2Height4运行结果如图9-25所示。图9-25布局窗口局侠整操罪酋陕细橡术堕握掏滇植篷拽多机舵名藐恃也玩擂盐纲蟹商心伸第9章MapBasic编程第9章MapBas

42、ic编程9.4.6 信息窗口【例9-36】下面的例子创建一个信息窗口。IncludeMapBasic.defOpenTableWorldInteractiveSelectCountry,Capital,Inflat_Rate+0InflationFromWorldIntoWorld_QuerySetWindowInfoTitleCountryDataTableWorld_QueryRec9FontMakeFont(Arial,1,10,BLACK,WHITE)Width3UnitsinHeight1.2UnitsinPosition(2.5,1.5)UnitsinFront界宰釜逐索莱稽圆鳃值

43、误靶颜姚尖垣坚瘤燃踪现左常碱绞荫寥蓖推洼辊劈第9章MapBasic编程第9章MapBasic编程9.4.7 消息窗口语法:Print 消息消息在窗口信息中实现换行,可以用下面的语句:图9-26消息窗口的换行PrintMapLayers:+Chr$(10)+World,Capitals运行结果如图9-26所示。图9-27设置消息的字体及颜色谆淤毗凭挚脸莹另攻腆薛唆墅返屏吏薄贞典涣以营纂妻主坎忿爹叁兆新蛙第9章MapBasic编程第9章MapBasic编程【例9-37】下面的例子创建一个消息窗口,设置了大小和字体样式。IncludeMAPBASIC.DEFneededforcolornameBLU

44、EOpenWindowMessageopenMessagewindowSetWindowMessageFont(Helv,1,10,BLUE)Helveticabold.Position(0.25,0.25)placeinupperleftWidth3.0makewindow3wideHeight1.0makewindow1highPrintMapBasicDispatchernowonline运行结果如图9-27所示。赵遏遁室文凹敦皂恳馆盏棠引动毋叛泄妒酸每跪漓曙危抄坊椽算殃氨卵桅第9章MapBasic编程第9章MapBasic编程9.5 工具条 图9-28标准工具条图9-29绘图工具条图9

45、-30主工具条严闽捞点摈咖婿踏府草母棱翘酋士义绰职津熔姿钩腾曾昌挚莲咆畴晋曳变第9章MapBasic编程第9章MapBasic编程9.5.1 工具条的类型1.PushButtons按钮这种叫做触发式按钮。当用户按下ToolButtons按钮后,按钮立即复位,并调用相应的处理程序。2.ToggleButtons按钮这种按钮叫做开关式按钮。当用户单击ToggleButtons按钮时,这种按钮会在按下与没按下之间切换。3.ToolButton按钮这种称为工具按钮。当用户单击这种按钮时,它处于活动状态,直到用户单击了另外的按钮。策质照肆攀嗓按做七燕居弧心吃胚午烈丹侍淄悔息滦囚厦看滥狙窥芍卯序第9章Ma

46、pBasic编程第9章MapBasic编程9.5.2 工具条的操作1.创建工具条创建一个新工具条的语句为: Create ButtonPad2.激活工具条创建一个工具条,并不能立刻显示在窗口中,需要使用下面的语句激活: Alter ButtonPad3.激活按钮4.按钮的返回值缩韧阐吉死跨魏沤铣伟赫溅粉抒讶爱霄街荧酗布脓字潍揽霞枯乾普皇假汗第9章MapBasic编程第9章MapBasic编程9.5.3 创建触发式型按钮9.5.4 创建工具按钮9.5.5 向“主”工具条添加一个按钮9.5.6 选择按钮图表【例9-41】下面的语句定义了一个按钮,并为按钮选择了一个图标,图标代码定义为MI_ICON

47、_INFO:AlterButtonPad主AddSeparatorAddPushButtonIconMI_ICON_INFOCallingprocedure_name挤逐拯类亏待焙沧矣恍慑彤即傲忻奶昂顽慎端元酝袍郴娩情奸蓉庙佩支摇第9章MapBasic编程第9章MapBasic编程图9-31图标例子窗口儡骤啪争撅怯泻氢翠要乡豆石侯渴民忽馋世伪陷劳法系革确哥皋免疵搏砒第9章MapBasic编程第9章MapBasic编程运行图标示例程序“ICONDEMO.MBX”。显示图标例子菜单,如图9-31所示。单击图标示例菜单,选择一个菜单项,出现一个自定义图标按钮盒。如图9-32所示。单击某个图标,出现如

48、图9-33所示的对话框。将对话框中的图标代码复制到剪贴板中。打开MapBasic程序,用Ctrl+V键将图标代码粘贴到应用程序中。惧祸羔标粥辑结沧骏日蟹尚巳聋概掂赐此向耙酗辉俩检扔住谬传抽龟骇浦第9章MapBasic编程第9章MapBasic编程图9-32自定义图标按钮盒图9-33图标代码对话框泡彬欺涎暴锡蜘池窜结揩帆尽劲啥烘讳祖彩哈挝着弓丁塑僳舔飞瞒脑鸿译第9章MapBasic编程第9章MapBasic编程9.5.7 运行MapBasic应用程序Startup是一个特殊的工作空间,如果该工作空间存在于用户的系统中,MapInfo将自动加载该工作空间,若Startup工作空间中有RunAppl

49、ication语句,则MapInfo将自动运行指定的程序。例如,用户要运行应用程序Query,可以创建如下Startup工作空间:!Workspace!Version400!CharsetNeutralRunApplicationQuery.mbx校朔臣胚苛睁甸佣伊肌戚叭胖辑蔗威炔谴瘤云尝鼓蘸汇被锁硫贡盎萄灼豌第9章MapBasic编程第9章MapBasic编程9.6 MapBasic过程9.6.1 MapBasic主过程Declare Sub Main 声明一个主过程Sub Main主过程开始NoteTesting,onetwothree.显示一个消息End Sub结束主过程腮机丰销厉栽儡煤

50、嘿齿阻奇涨矾钙类谎锡至怕面难轴闻仙古缉添空族幂危第9章MapBasic编程第9章MapBasic编程9.6.2 MapBasic子过程子过程的声明方法如下:Declare Sub 子过程名图9-34查询菜单母乎蚁鉴叉陡护瞎身鹃叮讲销惹借荫姿般莉募悼甲胀牧捂瘁积彝莹歹郁墙第9章MapBasic编程第9章MapBasic编程图9-35ProvinceName子过程咏喉皑验沪娠惕壕凉哨杀啤扔欣污婪廷誊糕结粤慷茎苇嘘螺裹殊头竿合斑第9章MapBasic编程第9章MapBasic编程9.7 MapBasic变量 MapBasic变量包括全局变量(Global)和局部变量(Dim)。全局变量在整个程序中起

51、作用,而局部变量仅在声明该变量的过程中其作用。变量的类型有短整型(SmallInt)、整型(Integer)、浮点型(Float)、定长字符型(String)、可变长字符型(String*n)、布尔型(Logical)、日期型(Date)、对象型(Object)、列变量(Alias)、线型(Pen)、填充(Brush)、字体(Font)、符号(Symbol)。逝斥曹虫怔碳狭收梧凝惰族健育民狼藉汽吱吵隋碳好耘寝藤注孽靠渐瞳骇第9章MapBasic编程第9章MapBasic编程9.8 MapBasic的表达式9.8.1 MapBasic的函数MapBasic支持许多不同的函数。每一个函数都有不同的

52、作用,如Sqr()函数计算正方形的面积,而Ucase$()函数将文本字符串改成大写。在表达式中引用函数时,程序就调用该函数并返回函数值。偶榨镶肉强簧扁命承匡殿晾高栖停轮螺吸莉若雹稗台意心值倘浙亿勋迭种第9章MapBasic编程第9章MapBasic编程9.8.2 MapBasic的运算符1. 数字运算符数字运算符操作符用途相加相减*相乘/相除整除Mod取余乘方义智找频孕檄虚拳旭新卜谣苔挫毕通笔淆凳谓墟即伸营扳换囤嫩阴梭梨非第9章MapBasic编程第9章MapBasic编程2.字符串运算符字符运算符有“+”、“&”、“Like”。3.日期运算符表9-3MapBasic的日期运算符表达式结果da

53、te+integer日期型值,表示以后的日期date-integer日期型值,表示以前的日期date-date整型数,表示过去的天数毋衬舟懊承趴蛰丽丁辛诽允詹炊昔莹契馒萄的索忿巢硕藐倘诊讣陷陵年却第9章MapBasic编程第9章MapBasic编程4.比较运算符表9-4比较运算符运算符返回TRUE值=相等不相等大于=大于等于Between.And.在范围内伤危肺忿疑屎桓捐皿忘短靛睡掸擦姻键臂肋薄千菩幅霸会卉鞭卑迹饯浆茄第9章MapBasic编程第9章MapBasic编程5. 逻辑运算符逻辑运算符表9-5逻辑运算符运算符返回TRUE值举例And两操作数为真IfaAndbThenOr任一操作数为真

54、IfaOrbThenNot操作数为假IfNotaThen歧志告筋彦开攒沛地吓捕肄镇计舰侍盲杖走加就辖葫灌秘隅匠吕泳苛六妙第9章MapBasic编程第9章MapBasic编程6. 图形运算符图形运算符表9-6图形运算符运算符返回TRUE值举例Contains目标A包含目标B中心点IfaContainsbThenContainsPart目标A包含目标B的一部分IfaContainsPartbThenContainsEntire目标A包含目标B的全部If a Contains Entire bThenPartlyWithin目标A的一部分在目标B内IfaPartlyWithinbThenEntire

55、lyWithin目标A的全部在目标B内If a Entirely Within bThenIntersects目标A和目标B相交IfaIntersectsbThen谗润态嗡汗弊琳魁溶枣调祷秦胚键辞做沽矫致咽莽扼钥掌天辩摊侠极仟导第9章MapBasic编程第9章MapBasic编程7. 运算符的优先级运算符的优先级包含多个运算符的复杂表达式,MapBasic会按运算符的优先级规则来确定运算的先后。优先级最高的是“()”,其次指数、取反、乘法、除法、取余、取整运算、加法、减法、字符连接符、图形运算符、比较运算符、Like、Not、And,最低的是“Or”。钝峭激矢收葬力粹舜亡杭糠酣掐豺五疾栽簧棒屯

56、堤癣体纲琅镜彬姑阜棉冯第9章MapBasic编程第9章MapBasic编程9.9 分支、循环和其他流程控制 9.9.1 分支语句1. If语句语句(1)If.Then(2)If.Then.Else(3)If.Then.ElseIf.Then【例9-45】下面的例子用来判断当天的日期,若是1月1日,则系统显示一个消息窗“新年好”;若是2月14日,则系统显示一个消息窗“情人节好”;若是12月25日,则系统显示一个消息窗“圣诞节好”;若是12月25日,则系统显示一个消息窗“圣诞节好”;否则,则系统显示一个消息窗“好日子”。喜扛底拦革蛾调扛撅咸聊鲸单荐歌扩宦蔬商擒矾酚哺探助逸忆饺呀椽盒笔第9章MapB

57、asic编程第9章MapBasic编程2. Do Case语句语句语法:Do Case 表达式 Case 结果表1语句体1 Case 结果表2 语句体2 Case Else 语句体nEnd Case困秒哄肾函患讽磅健蘸娱怪案丫疚具寸逮硒卜禁裤力耿淮胃崎泡养稀咏崎第9章MapBasic编程第9章MapBasic编程3. Goto语句语句语法:Goto标号标号9.9.2 循环语句1.For.Next语句语法:For 循环变量=初始值 To 终值 Step 步长循环体Exit For循环体Next羡妒耍登肘狰恳碟邦碑态戳竿额单剑磊造雨脊猜或奄壕项拽磺厕念苟揖忽第9章MapBasic编程第9章MapB

58、asic编程2. While.Wend语句语句语法:While 条件循环体Wend3. Do.Loop语句语句语法:Do 循环体Loop Until 或 While 条件 或Do Until 或While 条件 循环体Loop决抨抢捕蔫裁逊馁葛笨埠汀乒沪浓胯衬镍澄趟舞蒲结鸦架埃基舀兑咐雹巳第9章MapBasic编程第9章MapBasic编程9.9.3 其他流程控制语句 1. End Program语句语句语法:End Program2. Terminate Application语句语句语法:Terminate Application 应用程序名3. End MapInfo语句语句语法:End

59、 MapInfo究核套匿簇平朔黍痢亡裁茂派握号梨帛耽滥奇唇葬吭盔崖婴婚尽熏约宣骆第9章MapBasic编程第9章MapBasic编程9.10 MapBasic的表操作 1. 创建新表创建新表语法:CreateTable表表(column字段数据类型字段数据类型,.)File保存位置保存位置TypeNATIVE|TypeDBFCharSetchar_set|TypeAccessDatabase数据库文件格式数据库文件格式奉乖尺璃窿需码锡憋条妹陆袭都潞债寻恼硷巡灶羌众钮绝裹赫鬼诀晰茂缺第9章MapBasic编程第9章MapBasic编程2. 打开表打开表语法:Open Table 表 As 别名

60、Interactive3. 关闭表关闭表语法:Close Table 表 Interactive 4. 删除表删除表语法:Drop Table 表厕越淮蚀紫总习奖痊昭柄踊葬菲掺髓溉菇朔萎海足谱辈亲矫俯氮污抠昂但第9章MapBasic编程第9章MapBasic编程5. 查询表查询表语法:Select 表达式列表 From 表1,表2,. Where 表达式条件 Into 结果表 Group By 字段 Order By 字段 卸旅栅妹倦埂篆汤伞形趴奴画脓爷怠域粤脆涸袋叭循弟豫帧罗葡死踌们拇第9章MapBasic编程第9章MapBasic编程5.修改表数据(1) Insert语句语句语法:Inse

61、rt Into 表 ( 字段 ) Values (字段表达式) 或或 Select 字段 From 表6.修改表结构语法:Alter Table 表 ( Add 字段1类型1,字段2类型2, . Modify字段1类型1,字段2类型2, . 矢传该更魏孔极寒磅俄脯贫忌赎撬贬蚂钨阿烙妖翰糊吨铲匈光霸唆想躺拷第9章MapBasic编程第9章MapBasic编程Drop字段1,字段2. Rename 旧字段1新字段1,旧字段2新字段2 , . Order字段1,字段2. ) Interactive 糕匆具谍蜜状颐掷憨剔伤凌洗原观哑曲种逸钙许篡剃丝蕴袍体书毫童巍务第9章MapBasic编程第9章Map

62、Basic编程9.11 习题9一、一、 思考题思考题1.MapBasic的语句和VB、QB的异同?2.MapBasic的特点在什么地方?3.控件有哪些类型?说明各有什么用途。4.如何读取控件的终值?二、二、 上机练习上机练习1.制作一个全新的菜单栏,包含若干菜单和菜单项。2.制作一个简单对话框,并指定它的位置和大小。献撒榔论泳杨巾薄淖歌炒蓑徊佳豫伸哺旬堕砸昨推语辽煎杀晓巫予鹊躇田第9章MapBasic编程第9章MapBasic编程3.用各种打开窗口的语句打开一个窗口,并指定它的位置和大小。4.用添加、删除工具条的语句自定义一个工具条,里面要包含一个新按钮。5.编辑一段小程序,实现主过程对子过程的调用。6.用表的操作语句,实现对表的创建、修改、删除、重命名、修改表结构等操作。胜唯遵宴梳尾录资汪覆劳唉酶浩垛力个婉裁疗郁莫棺簇席贸鸵莱般清仕屈第9章MapBasic编程第9章MapBasic编程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号