slide1
Download
Skip this Video
Download Presentation
创建和使用用户界面元素

Loading in 2 Seconds...

play fullscreen
1 / 67

创建和使用用户界面元素 - PowerPoint PPT Presentation


  • 180 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 创建和使用用户界面元素' - eman


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
创建和使用用户界面元素

MapBasic在结构上与QBasic和Visual Basic相似,基本用了Basic的结构,语言用户可以方便开发专门的MapInfo应用系统。

通过MapBasic,用户可以开发适合自己的专业化的操作界面,可以修改或取代原有菜单。

mapbasic
创建MapBasic程序的一般过程

对一个MapBasic程序主要通过程序创建、代码输入、编译和运行四步骤进行。

例:编制一个显示内容为“欢迎进入系统”的对话框。

slide3
新建程序窗口

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

slide4
编写程序语句

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

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

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

slide8
运行程序

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

slide9
制作全新的菜单栏

语法:

Create Menu Bar As

{菜单名 或 ID 菜单号}

[,{菜单名 或 ID 菜单号}...]

Alter Menu Bar Add  

{菜单名 或 ID菜单号}  

[,{菜单名 或 ID菜单号}...]

slide10
例:制作一个全新菜单栏,并加入到主菜单,包含“输入”、“编辑”、“删除”的“土地属性”菜单。例:制作一个全新菜单栏,并加入到主菜单,包含“输入”、“编辑”、“删除”的“土地属性”菜单。

1.打开创建窗口输入代码,如图:

slide11
制作全新的菜单栏

通过编译,运行结果如下:

slide12
修改已有菜单栏

1. 删除菜单

语法:

Alter Menu Bar Remove

{菜单名 或ID 菜单号}

[,{菜单名 或 ID 菜单号}...]

slide13
修改已有菜单栏

2. 恢复菜单

若放弃对菜单栏的修改,恢复原有菜单样式,可以运行以下代码:

Create Menu Bar As Default

slide14
对话框制作

标准对话框

1. 消息对话框

语法:

Note 消息 图9-7 消息对话框

例:显示一个“查询成功!”的消息对话框。

代码如下:

Note "查询成功!"

slide15
对话框制作--------询问对话框

语法:

Ask (提示信息,确定文本,取消文本)

例:做一个简单询问对话框,显示“确定删除吗?”,“确定”,“撤消”。

程序代码:

Dim more As logical

more=Ask("确定要删除吗?","确定","撤消")

slide16
对话框制作--------选择文件对话框

语法:

FileOpenDlg(路径,文件名,文件类型,标题)

例:制作一个提示用户打开(保存)文件的对话框。

首先打开创建程序窗口,编写程序如下图:

slide18

对话框制作--------自定义对话框制作

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

slide19
控件类型

1. 静态文本控件

语法:

Control StaticText

[ Position x , y]

[ Width宽度] [ Height高度]

[ ID控件号]

[ Title标题]

slide20
控件类型

2. 输入文本控件

语法:

Control EditText

[ Position x , y]

[ Width宽度 ] [ Height高度]

[ ID控件号]

[ Value 初始值]

[ Into变量]

slide21
实例制作

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

slide24
控件类型

3. 组合框控件

语法:

Control GroupBox

[ Position x , y ]

[ Width宽度 ] [ Height高度]

[ Title标题]

slide26
控件类型

4. 单选项组合控件

语法:

Control RadioGroup  

[ Position x , y ]  

[ ID控件号]  

[ Calling过程]  

[ Title {字符串表达式 或 From Variable 字符串变量}]  

[ Value初始选项]  

[ Into变量]  

slide28
控件类型

5. Picker选取对象类控件

语法:

Control { PenPicker 或BrushPicker 或SymbolPicker 或FontPicker }  

[ Position x , y ] [ Width 宽度 ] [ Height 高度 ]  

[ ID控件号]  

[ Calling过程]  

[ Value样式表达式]  

[ Into样式变量]

slide29
控件类型

6.ListBox列表框控件

语法:

Control ListBox

[ Position x , y ] [ Width 宽度 ] [ Height 高度 ]

[ ID控件号]

[ Calling过程]

[ Title {字符串表达式 或 From Variable字符串变量}]

[ Value初始选项]

[ Into变量]

slide31
控件类型

7. 多重列表框控件

语法:

Control MultiListBox

[ Position x , y ] [ Width 宽度 ]

[ Height 高度 ]

[ ID控件号]

[ Calling过程]

[ Title {字符串表达式 或 From Variable字符 串变量}]

[ Value初始选项]

[ Into变量]

slide32
控件类型

8. 下拉列表框控件

语法:

Control PopupMenu

[ Position x , y ]

[ Width宽度 ]

[ ID 控件号]

[ Calling 过程 ]

[ Title { [ Title {字符串表达式 或 From Variable字符串变量}]

[ Value 初始选项 ]

[ Into 选项变量 ]

slide33
控件类型

9. 复选框控件

语法:

Control CheckBox

[ Position x , y ] [ Width 宽度]

[ ID 控件号]

[ Calling过程]

[ Title标题 ]

[ Value逻辑值 ]

[ Into逻辑变量 ]

slide34
窗口制作

MapBasic应用程序能够控制所有的

MapInfo窗口,包括标准窗口、地图窗口、

浏览(Browse)窗口、布局(Layout)窗

口、专题图(Graph)窗口、信息窗口。

slide35
自定义窗口设置

窗口的大小和位置可以通过两种方法控制:

1.在打开的窗口的同时指定窗口的大小和位置;

2.使用Set Window语句在打开窗口后调整窗口的位置和大小。

slide36
自定义窗口设置

Set Window语句调整窗口语法:

Set Window 窗口号

[ Position ( x , y ) [ Units 纸面单位 ] ]

[ Width 窗口宽度 [ Units 纸面单位 ] ]

[ Height 窗口高度 [ Units 纸面单位 ] ]

slide37

自定义窗口设置

地图窗口增加图层的语法为:

Add Map

[ Window 窗口号 ]

Layer 表1 [ , 表2... ]

[ Auto ]

[ Animate ]

slide38
自定义窗口设置

设置地图投影:

可以使用Set Map CoordSys... 语句改变地图投影,若要保存投影,使用Commit

Table ...As...CoordSys..语句。

slide39
浏览窗口制作

浏览窗口以二维表的形式显示一个表的数据。

浏览窗口语法:

Browse 表达式列表From 表

[ Position ( x , y) [ Units 纸面单位] ]

[ Width 窗口宽度[ Units 纸面单位] ]

[ Height 窗口高度[ Units 纸面单位] ]

[ Row 行号 ]

[ Column 列号]

[ Min 或Max ]

slide40
布局窗口制作

布局窗口表示一个类似于纸面的页面布局。布局窗口语法:

Layout

[ Position ( x , y ) [ Units 纸面单位] ]

[Width窗口宽度 [ Units 纸面单位] ]

[ Height 窗口高度 [ Units 纸面单位] ]

[ { Min 或Max } ]

slide41
统计窗口制作

统计窗口包含一个表达式及统计图。

统计窗口语法:

Graph

标注列, 表达式1,表达式2...

From 表

[ Position ( x , y ) [ Units 纸面单位] ]

[ Width 窗口宽度[ Units 纸面单位] ]

[ Height 窗口高度[ Units 纸面单位] ]

[ Min 或Max ]

slide42
信息窗口制作

信息窗口是MapInfo中很常见的一种窗口。

它显示某个地图对象的全部属性信息。用户

可以通过在其中输入、更改地图对象属性信

息。

slide43
信息窗口制作实例

例:

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

slide44
消息窗口制作

语法:

Print 消息

在窗口信息中可以用

Print “Map Layers:” + Chr$(10) + “ World, Capitals”

实现换行。

slide45
创建工具条

工具条的类型:

1. PushButtons按钮

这种叫做触发式按钮。当用户按下ToolButtons按钮后,按钮立即复位,并调用相应的处理程序。

2. ToggleButtons按钮

这种按钮叫做开关式按钮。当用户单击ToggleButtons按钮时,这种按钮会在按下与没按下之间切换。

3. ToolButton按钮

这种称为工具按钮。当用户单击这种按钮时,它处于活动状态,直到用户单击了另外的按钮。

slide46
创建工具条

1.创建一个新工具条的语句为:

Create ButtonPad

2.激活工具条

创建一个工具条,并不能立刻显示在窗口中,需要使用下面的语句激活:

Alter ButtonPad

3.激活按钮

4.按钮的返回值

用户操作按钮的信息要返回给MapInfo来决定下一步执行哪一个

子程序。MapBasic使用CommandInfo()函数返回用户的操作按钮的

信息。

slide47
创建按钮

1.创建触发式型按钮

2.创建工具按钮

3.向“主”工具条添加一个按钮

4.选择按钮图表

mapbasic1
MapBasic过程

MapBasic主过程

Declare Sub Main \'声明一个主过程

Sub Main \'主过程开始

Note“Testing,onetwothree.“ ‘显示一个消息

End Sub \'结束主过程

mapbasic2
MapBasic过程

MapBasic子过程

子过程的声明方法:

Declare Sub

子过程名

mapbasic3
MapBasic变量

MapBasic变量包括全局变量(Global)和局部变量(Dim)。全局变量在整个程序中起作用,而局部变量仅在声明该变量的过程中其作用。

变量的类型有短整型(SmallInt)、整型(Integer)、浮点型(Float)、定长字符型(String)、可变长字符型(String*n)、布尔型(Logical)、日期型(Date)、对象型(Object)、列变量(Alias)、线型(Pen)、填充(Brush)、字体(Font)、符号(Symbol)。

mapbasic4
MapBasic的表达式

MapBasic的函数

MapBasic支持许多不同的函数。每一个函数都有不同的作用,如Sqr()函数计算正方形的面积,而Ucase$()函数将文本字符串改成大写。在表达式中引用函数时,程序就调用该函数并返回函数值。

slide52

操作符

用途

相加

相减

*

相乘

/

相除

\

整除

Mod

取余

^

乘方

MapBasic的运算符

1. 数字运算符

slide53

表达式

结果

date+integer

日期型值,表示以后的日期

date- integer

日期型值,表示以前的日期

date-date

整型数,表示过去的天数

MapBasic的运算符

2. 字符串运算符

字符运算符有“+”、“&”、“Like”。

3. 日期运算符

slide54

运算符

返回TRUE值

=

相等

<>

不相等

<

小于

>

大于

<=

小于等于

>=

大于等于

Between ...And ...

在…范围内

MapBasic的运算符

4. 比较运算符

slide55

运算符

返回TRUE值

举例

And

两操作数为真

If a And b Then

Or

任一操作数为真

If a Or b Then

Not

操作数为假

If Not a Then

MapBasic的运算符

5. 逻辑运算符

slide56

运算符

返回TRUE值

举例

Contains

目标A包含目标B中心点

If a Contains b Then

Contains Part

目标A包含目标B的一部分

If a Contains Part b Then

Contains Entire

目标A包含目标B的全部

If a Contains Entire b Then

Partly Within

目标A的一部分在目标B内

If a Partly Within b Then

Entirely Within

目标A的全部在目标B内

If a Entirely Within b Then

Intersects

目标A和目标B相交

If a Intersects b Then

MapBasic的运算符

6. 图形运算符

slide57
运算符的优先级

包含多个运算符的复杂表达式,MapBasic会按运算符的优先级规则来确定运算的先后。

优先级最高的是“( )”,其次指数、取反、乘法、除法、取余、取整运算、加法、减法、字符连接符、图形运算符、比较运算符、Like、Not、And,最低的是“Or”。

slide58
分支、循环和其他流程控制

分支语句

1. If语句

(1) If...Then

(2) If...Then...Else

(3) If...Then...ElseIf...Then

slide59
分支、循环和其他流程控制

2. Do Case语句

语法:

Do Case 表达式

Case 结果表1

语句体1

Case 结果表2

语句体2

Case Else

语句体n

End Case

3. Goto语句

语法:

Goto 标号

slide60
循环语句

1. For...Next语句

语法:

For 循环变量=初始值To 终值 [Step 步长]

[循环体]

Exit For

[循环体]

Next

slide61

循环语句

2. While...Wend语句

语法:

While 条件

循环体

Wend

3. Do...Loop语句

语法:

Do

循环体

Loop [ { Until 或While } 条件]

Do

[ { Until 或While } 条件]

循环体

Loop

slide62
其他流程控制语句

1. End Program语句

语法:

End Program

2. Terminate Application语句

语法:

Terminate Application 应用程序名

3. End MapInfo语句

语法:

End MapInfo

mapbasic5
MapBasic的表操作

1. 创建新表

语法:

Create Table 表

( column 字段数据类型 [ , . . . ] )  

[ File 保存位置 ]  

[ { Type NATIVE |  

Type DBF [ CharSet char_set ] |  

Type Access Database 数据库文件格式

mapbasic6
MapBasic的表操作

2. 打开表

语法:

Open Table 表 [ As 别名 ]

[ Interactive ]

3. 关闭表

语法:

Close Table 表 [ Interactive ]

4. 删除表

语法:

Drop Table 表

mapbasic7
MapBasic的表操作

5. 查询表

语法:

Select 表达式列表

From 表1,表2, ... [ Where 表达式条件 ]

[ Into 结果表 ]

[ Group By 字段]

[ Order By 字段]

mapbasic8
MapBasic的表操作

6. 修改表数据

Insert语句

语法:

Insert Into 表 [ ( 字段 ) ]

{ Values (字段表达式) 或 Select 字段From 表}

mapbasic9
MapBasic的表操作

7. 修改表结构

语法:

Alter Table 表 (

[Add 字段1 类型1,字段2 类型2, ... ]

[Modify字段1 类型1,字段2 类型2, ... ]

[Drop字段1,字段2... ]

[Rename 旧字段1 新字段1,旧字段2 新字段2 [, ...] ]

[Order字段1,字段2... ]

)

[ Interactive ]

ad