1 / 67

创建和使用用户界面元素

创建和使用用户界面元素. MapBasic 在结构上与 QBasic 和 Visual Basic 相似,基本用了 Basic 的结构,语言用户可以方便开发专门的 MapInfo 应用系统。 通过 MapBasic ,用户可以开发适合自己的专业化的操作界面,可以修改或取代原有菜单。. 创建 MapBasic 程序的一般过程. 对一个 MapBasic 程序主要通过程序创建、代码输入、编译和运行四步骤进行。 例:编制一个显示内容为“欢迎进入系统”的对话框。. 新建程序窗口.

eman
Download Presentation

创建和使用用户界面元素

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 创建和使用用户界面元素 MapBasic在结构上与QBasic和Visual Basic相似,基本用了Basic的结构,语言用户可以方便开发专门的MapInfo应用系统。 通过MapBasic,用户可以开发适合自己的专业化的操作界面,可以修改或取代原有菜单。

  2. 创建MapBasic程序的一般过程 对一个MapBasic程序主要通过程序创建、代码输入、编译和运行四步骤进行。 例:编制一个显示内容为“欢迎进入系统”的对话框。

  3. 新建程序窗口 在MapBasic中新建一个程序窗口:打开“文件File”中的“创建New”、或通过“Ctrl+N”快捷方式新建。

  4. 编写程序语句 在程序窗口内编写程序语句。

  5. 程序存盘 • 在主菜单中选择File→Save,将保存为一个MapBasic源代码文件,如“首页.mb”

  6. 程序编译 在编译成功将自动生成一个相应的可执行文件,“首页.MBX”,否则会出现错误提示(见下页):

  7. 根据提示查找语句、调试,再编辑调试程序(Project->Combile Current File ),直 到成功。

  8. 运行程序 在MapBasic中,选择Project->Run系统将自动启动MapInfo系统,并执行刚才生成的可执行文件“首页.mbx”。

  9. 制作全新的菜单栏 语法: Create Menu Bar As {菜单名 或 ID 菜单号} [,{菜单名 或 ID 菜单号}...] Alter Menu Bar Add   {菜单名 或 ID菜单号}   [,{菜单名 或 ID菜单号}...]

  10. 例:制作一个全新菜单栏,并加入到主菜单,包含“输入”、“编辑”、“删除”的“土地属性”菜单。例:制作一个全新菜单栏,并加入到主菜单,包含“输入”、“编辑”、“删除”的“土地属性”菜单。 1.打开创建窗口输入代码,如图:

  11. 制作全新的菜单栏 通过编译,运行结果如下:

  12. 修改已有菜单栏 1. 删除菜单 语法: Alter Menu Bar Remove {菜单名 或ID 菜单号} [,{菜单名 或 ID 菜单号}...]

  13. 修改已有菜单栏 2. 恢复菜单 若放弃对菜单栏的修改,恢复原有菜单样式,可以运行以下代码: Create Menu Bar As Default

  14. 对话框制作 标准对话框 1. 消息对话框 语法: Note 消息 图9-7 消息对话框 例:显示一个“查询成功!”的消息对话框。 代码如下: Note "查询成功!"

  15. 对话框制作--------询问对话框 语法: Ask (提示信息,确定文本,取消文本) 例:做一个简单询问对话框,显示“确定删除吗?”,“确定”,“撤消”。 程序代码: Dim more As logical more=Ask("确定要删除吗?","确定","撤消")

  16. 对话框制作--------选择文件对话框 语法: FileOpenDlg(路径,文件名,文件类型,标题) 例:制作一个提示用户打开(保存)文件的对话框。 首先打开创建程序窗口,编写程序如下图:

  17. 保存后编译,再运行(Run),流程如下:

  18. 对话框制作--------自定义对话框制作 控件的大小由Width(宽)和Height(高)控制。位置和大小采用对话框单位为单位,每个对话框单位表示一个字符宽度的1/4或一个字符高度的1/8,以对话框的左上角为原点,它的位置是(0,0)。

  19. 控件类型 1. 静态文本控件 语法: Control StaticText [ Position x , y] [ Width宽度] [ Height高度] [ ID控件号] [ Title标题]

  20. 控件类型 2. 输入文本控件 语法: Control EditText [ Position x , y] [ Width宽度 ] [ Height高度] [ ID控件号] [ Value 初始值] [ Into变量]

  21. 实例制作 自定义一控件的位置及大小,要求对话框输入“权属主姓名”,有“确定”和“取消”两个按钮。

  22. 打开创建程序窗口,键入程序保存,如下图

  23. 程序编译与运行

  24. 控件类型 3. 组合框控件 语法: Control GroupBox [ Position x , y ] [ Width宽度 ] [ Height高度] [ Title标题]

  25. 组合框控件实例

  26. 控件类型 4. 单选项组合控件 语法: Control RadioGroup   [ Position x , y ]   [ ID控件号]   [ Calling过程]   [ Title {字符串表达式 或 From Variable 字符串变量}]   [ Value初始选项]   [ Into变量]  

  27. 单选项组合控件实例

  28. 控件类型 5. Picker选取对象类控件 语法: Control { PenPicker 或BrushPicker 或SymbolPicker 或FontPicker }   [ Position x , y ] [ Width 宽度 ] [ Height 高度 ]   [ ID控件号]   [ Calling过程]   [ Value样式表达式]   [ Into样式变量]

  29. 控件类型 6.ListBox列表框控件 语法: Control ListBox [ Position x , y ] [ Width 宽度 ] [ Height 高度 ] [ ID控件号] [ Calling过程] [ Title {字符串表达式 或 From Variable字符串变量}] [ Value初始选项] [ Into变量]

  30. ListBox列表框控件实例

  31. 控件类型 7. 多重列表框控件 语法: Control MultiListBox [ Position x , y ] [ Width 宽度 ] [ Height 高度 ] [ ID控件号] [ Calling过程] [ Title {字符串表达式 或 From Variable字符 串变量}] [ Value初始选项] [ Into变量]

  32. 控件类型 8. 下拉列表框控件 语法: Control PopupMenu [ Position x , y ] [ Width宽度 ] [ ID 控件号] [ Calling 过程 ] [ Title { [ Title {字符串表达式 或 From Variable字符串变量}] [ Value 初始选项 ] [ Into 选项变量 ]

  33. 控件类型 9. 复选框控件 语法: Control CheckBox [ Position x , y ] [ Width 宽度] [ ID 控件号] [ Calling过程] [ Title标题 ] [ Value逻辑值 ] [ Into逻辑变量 ]

  34. 窗口制作 MapBasic应用程序能够控制所有的 MapInfo窗口,包括标准窗口、地图窗口、 浏览(Browse)窗口、布局(Layout)窗 口、专题图(Graph)窗口、信息窗口。

  35. 自定义窗口设置 窗口的大小和位置可以通过两种方法控制: 1.在打开的窗口的同时指定窗口的大小和位置; 2.使用Set Window语句在打开窗口后调整窗口的位置和大小。

  36. 自定义窗口设置 Set Window语句调整窗口语法: Set Window 窗口号 [ Position ( x , y ) [ Units 纸面单位 ] ] [ Width 窗口宽度 [ Units 纸面单位 ] ] [ Height 窗口高度 [ Units 纸面单位 ] ]

  37. 自定义窗口设置 地图窗口增加图层的语法为: Add Map [ Window 窗口号 ] Layer 表1 [ , 表2... ] [ Auto ] [ Animate ]

  38. 自定义窗口设置 设置地图投影: 可以使用Set Map CoordSys... 语句改变地图投影,若要保存投影,使用Commit Table ...As...CoordSys..语句。

  39. 浏览窗口制作 浏览窗口以二维表的形式显示一个表的数据。 浏览窗口语法: Browse 表达式列表From 表 [ Position ( x , y) [ Units 纸面单位] ] [ Width 窗口宽度[ Units 纸面单位] ] [ Height 窗口高度[ Units 纸面单位] ] [ Row 行号 ] [ Column 列号] [ Min 或Max ]

  40. 布局窗口制作 布局窗口表示一个类似于纸面的页面布局。布局窗口语法: Layout [ Position ( x , y ) [ Units 纸面单位] ] [Width窗口宽度 [ Units 纸面单位] ] [ Height 窗口高度 [ Units 纸面单位] ] [ { Min 或Max } ]

  41. 统计窗口制作 统计窗口包含一个表达式及统计图。 统计窗口语法: Graph 标注列, 表达式1,表达式2... From 表 [ Position ( x , y ) [ Units 纸面单位] ] [ Width 窗口宽度[ Units 纸面单位] ] [ Height 窗口高度[ Units 纸面单位] ] [ Min 或Max ]

  42. 信息窗口制作 信息窗口是MapInfo中很常见的一种窗口。 它显示某个地图对象的全部属性信息。用户 可以通过在其中输入、更改地图对象属性信 息。

  43. 信息窗口制作实例 例: Include "MapBasic.def" Open Table "World" Interactive Select Country,Capital,Inflat_Rate+0 "Inflation" From World Into World_Query Set Window Info Title "Country Data" Table World_Query Rec 9 Font MakeFont("Arial",1,10,BLACK,WHITE) Width 3 Units "in" Height 1.2 Units "in" Position (2.5,1.5) Units "in" Front

  44. 消息窗口制作 语法: Print 消息 在窗口信息中可以用 Print “Map Layers:” + Chr$(10) + “ World, Capitals” 实现换行。

  45. 创建工具条 工具条的类型: 1. PushButtons按钮 这种叫做触发式按钮。当用户按下ToolButtons按钮后,按钮立即复位,并调用相应的处理程序。 2. ToggleButtons按钮 这种按钮叫做开关式按钮。当用户单击ToggleButtons按钮时,这种按钮会在按下与没按下之间切换。 3. ToolButton按钮 这种称为工具按钮。当用户单击这种按钮时,它处于活动状态,直到用户单击了另外的按钮。

  46. 创建工具条 1.创建一个新工具条的语句为: Create ButtonPad 2.激活工具条 创建一个工具条,并不能立刻显示在窗口中,需要使用下面的语句激活: Alter ButtonPad 3.激活按钮 4.按钮的返回值 用户操作按钮的信息要返回给MapInfo来决定下一步执行哪一个 子程序。MapBasic使用CommandInfo()函数返回用户的操作按钮的 信息。

  47. 创建按钮 1.创建触发式型按钮 2.创建工具按钮 3.向“主”工具条添加一个按钮 4.选择按钮图表

  48. MapBasic过程 MapBasic主过程 Declare Sub Main '声明一个主过程 Sub Main '主过程开始 Note“Testing,onetwothree.“ ‘显示一个消息 End Sub '结束主过程

  49. MapBasic过程 MapBasic子过程 子过程的声明方法: Declare Sub 子过程名

  50. MapBasic变量 MapBasic变量包括全局变量(Global)和局部变量(Dim)。全局变量在整个程序中起作用,而局部变量仅在声明该变量的过程中其作用。 变量的类型有短整型(SmallInt)、整型(Integer)、浮点型(Float)、定长字符型(String)、可变长字符型(String*n)、布尔型(Logical)、日期型(Date)、对象型(Object)、列变量(Alias)、线型(Pen)、填充(Brush)、字体(Font)、符号(Symbol)。

More Related