测试的一些pb中控制mapx5.0的代码(有前面发表过的,有新测试的),有使用这请在这里拷贝

coolriver 2002-07-25 11:33:40
二:pb对mapX控件的控制(例mapX5.0).
1:首先注册mapX5.0 ;在ole的insert custom control页 有register按钮,选择 mapX50.dll进行注册.

2:帮助信息有:
a):在pb的browser工具的ole标签页有所有注册的ole control的信息,包括 注册的对象名(id),control
的属性,事件,函数等.
b):mapX5.0的帮助信息,可从mapX5.0中启动,也可以ole控件的properties中有ole control help按钮.
3:摸索出的一些函数调用格式.

//添加层.
ole_1.object.layers.add("C:\Program Files\MapInfo\MapX 5.0\Maps\drawing1.tab",1)

//设置当前鼠标的功能为拖动(或其他放大,缩小等)
ole_1.object.currenttool=1001

//设置geoset对象
ole_1.object.geoset="china.gst"

//得到选中的对象 (得到的是选中对象的id ,在.tab文件中的值必须是唯一的)
string s_name
s_name = ole_1.object.layers.item[1].selection.item[1].Name

//查找对象,将查找对象选中
ole_1.object.layers.item[1].selection.selectbyid(s_id,0)

//获取查找对象的x,y坐标
d_x=ole_1.object.layers.item[1].selection.item[1].centerX
d_y=ole_1.object.layers.item[1].selection.item[1].centerY

//将查找对象设在图示中央
ole_1.object.zoomto(0.2,d_x,d_y)



//通过odbc添加数据源 , 即绑定数据类型为miDataSetODBC
//注意:通过该obdb添加的数据源不能使用指定层,而且将仅匹配于obdb表
// 的行完全匹配的对象

int i_result
parm = create oleobject

i_result = parm.connecttonewobject("mapX.OdbcQueryInfo.5")
if i_result= 0 then
parm.sqlquery="select * from text"
parm.datasource="Powersoft Demo DB V6"
parm.connectstring="odbc;"

end if

mylayer=ole_1.object.layers.item[1]
ole_1.object.datasets.removeall()
ole_1.object.datasets.add(2,parm,"hello","id")

//绑定mapinfo(*tab)数据源,(miDataSetLayer)
oleobject mylayer

mylayer = create oleobject

mylayer=ole_1.object.layers.item[1]
ole_1.object.datasets.removeall()
ole_1.object.datasets.add(6,mylayer)

//设置主题地图类型为独立值(individualvalue)
//在数据库表中添加状态列(status)值为0,1,2,3等
//地图上的图形对象设为不同的状态,相同的状态设为相同的颜色
//不同的状态设为不同的颜色

//添加主题individualvalue
ole_1.object.datasets.item[1].themes.add(5,'status','color')

//设置自己的颜色,
oleobject ob_theme
ob_theme = create oleobject

ob_theme=ole_1.object.datasets.item[1].themes.item[1].themeproperties

ob_theme.individualvaluecategories.item[1].style.regioncolor=0 //将status=0的颜色设为black
ob_theme.individualvaluecategories.item[2].style.regioncolor=65535 //将status=1的颜色设为yellow
ob_theme.individualvaluecategories.item[3].style.regioncolor=4210816 //将status=2的颜色设为brown
ob_theme.individualvaluecategories.item[4].style.regioncolor=16711680 //将status=3的颜色设为blue

//显示数据集中的数据集个数
i_count=ole_1.object.datasets.count


//显示数据集名称
//s_name=ole_1.object.datasets.item[1].name

//取添加的主题名称,测试正确与否
//s_name=ole_1.object.datasets.item[1].themes.item[1].name


//返回status 的值
//s_name = ole_1.object.datasets.item[1].themes.item[1].themeproperties.individualvaluecategories.item[3].value

//返回主题设置在列的列名
//s_name=ole_1.object.datasets.item[1].themes.item[1].fields.item[1].name


...全文
68 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
online 2002-07-25
  • 打赏
  • 举报
回复
发我一份
yyg@xjeri.com.cn
我对这方面比较感兴趣
qq;5794125
互相交流

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧