欢迎来到天天文库
浏览记录
ID:25511129
大小:54.50 KB
页数:5页
时间:2018-11-20
《powerbuilder和mapinfo的集成开发技术论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、PowerBuilder和MapInfo的集成开发技术论文摘要:本文介绍了客户/服务器开发工具Poix、SQLServer等多种关系数据库,具有强大的数据库应用程序开发功能,尤其是它提供的如数据窗口(DataapInfo的地图窗口集成到客户程序中,从而使客户程序具备地图处理能力。客户程序使用MapInfoOLE自动化对象、MapBasicOLE自动化对象的有关属性和方法,通过MapInfoOLE自动化服务器对集成的地图窗口进行控制。图1给出了客户程序和服务器程序间的关系。图1Poation技术实现客户程序和MapInfo服务器的连接,借助O
2、LE调用MapInfo服务器。具体实现上是:在包含地图窗口的框架窗口的Open事件中添加代码,创建一个新的OLEObject,而将MapInfo作为这个新的OLEObject的OLE服务器。要调用MapInfo服务,则需调用ConnectToNemableObject的程序标识,即“MapInfo.Application”://OLEObject对象的实例OLEObjectMapInfo//接收错误代码IntegerErrCode//创建一个与MapInfo进行通信的OLE自动化对象MapInfo=CreateOLEObject//连接OL
3、E自动化对象到MapInfo服务器ErrCode=MapInfo.ConnectToNeapserver.Exiting...")RuturnEndIf在退出应用程序时,要调用DisConnectToObject()函数断开OLE自动化对象和MapInfoOLE自动化服务器之间的连接,并撤消OLE自动化对象,以释放其占用的系统资源。为此,可在上述框架窗口的Close事件中添加代码实现://断开与OLE自动化对象与MapInfo服务器的连接MapInfo.DisConnectToObject()//释放OLE自动化对象DestroyMapIn
4、fo3.将地图窗口集成到Poap为一个窗口MapInfo.Application.Do("SetApplicationapInfo.Do("SetNextDocumentParent"+string(Handle(p_map))+"Style1").gif(11237字节)"src="/Ne_Custom01(=1024)。然后,编写一个在MapInfo服务器中运行的MapBasic应用程序,在此应用程序中添加对地图窗口事件进行处理的子程序。当对客户程序中的集成地图窗口进行操作时,MapBasic程序中对应的事件处理程序被触发。在事件处理程
5、序中,可以将要传递给客户程序的信息保存到MapBasic中定义的一个全局变量中,然后使用essage(),以PoandInfo(CMD_INFO_SELTYPE)=1Then'保存地图对象所在的表的名称g_seltabname=SelectionInfo(SEL_INFO_TABLENAME)'向Pobserver.mbx程序。在MapBasic程序中保存事件信息的变量为g_SelTabName,而g_PbHapBasic程序中用来接收Pobx~"")//创建对MapBasic应用程序进行控制的OLE自动化对象MBAppOleObject=
6、CreateOleObjectMBAppOleObject=MapInfo.MBApplications.Item(1)//传递Po("g_pbhap的用户自定义事件ue_SelectionMade中处理地图窗口事件://在PoandInfo=MBAppOleObject.MBGlobals.Item("g_mandInfoString").Value5.充分利用MapBasic应用程序MapBasic是MapInfo提供的用户系统开发工具,它具有对地图对象的管理、对含有地图对象的MapInfo表的管理等方面的强大功能。在将MapInfo地
7、图集成到PooteMsgHandler()或RemoteQueryHandler()过程,并可以在过程中通过mandInfo(CMD_INFO_MSG)得到调用Do方法或Eval方法的参数。以下代码运用MBApplications的Do方法,实现改变当前选中地图对象的颜色://要求将当前选中地图对象的颜色改为兰色MBAppOleObject.Do("Blue")MapInfo将自动调用RemoteMsgHandler()过程:SubRemoteMsgHandler()DimMyObjectAsObject'获取并分析Do方法的参数CmdIn
8、foStr=mandInfo(CMD_INFO_MSG)'改变地图对象的颜色IfCmdStr="Blue"thenMyObject=Selection.objAlterObjec
此文档下载收益归作者所有