采用Delphi进行MapGIS二次开发
近来忽然用到了MapGIS进行制图,而MapGIS是支持二次开发的,看了些二次开发的教程,多是基于VC6或者VB开发的。由于MapGIS同时支持COM组件进行二次开发的,因此想用试验下如何在Delphi下进行MapGIS的二次开发,鼓捣了一下还算是比较顺利的。
- 首先在Delphi下创建新的包(Package)工程;
- 然后把MapGIS相关的组件库导入(Component/Import)[注意的是要先安装MapGIS SDK];
- 这样便有了一堆*_TLB.pas文件,然后安装包(Install),会报错,使用逐一添加文件的方法{
contains
EDITVIEWLib_TLB in ‘EDITVIEWLib_TLB.pas’,
ACTXEDITLib_TLB in ‘ACTXEDITLib_TLB.pas’,
EDITGISATTLib_TLB in ‘EDITGISATTLib_TLB.pas’,
ATTSTRUEDITLib_TLB in ‘ATTSTRUEDITLib_TLB.pas’,
MapTree_TLB in ‘MapTree_TLB.pas’,
GISATTEDITLib_TLB in ‘GISATTEDITLib_TLB.pas';},重新安装,成功,也许可以再多包含些文件,可以自行试验。 - 成功安装Delphi导入相关的MapGIS组件包后,默认情况下一般在ActiveX栏下面多了几个组件(最重要的是TEditView)。
- 新建可执行文件工程,把TEditView添加进来,成功。
编写MapGIS二次开发代码时需要注意的是由于导入组件时自动生成的pas文件存在重复定义接口的问题,所以在进行MapGIS功能调用时会报类型不匹配的错误,可以自己修改相应的文件,出于简单考虑,只是调用函数时进行了相应的类型转换,或者声明为MAPGISBASCOM1Lib_TLB.Type interface。
如果需要MapGIS控件支持中键拖动及滚轮缩放当首先注册新的窗口函数,在捕获到中键消息及滚轮缩放消息进行适当处理。
最后还有一项还是在使用Delphi进行MapGIS开发中遇到的小问题,那就是小心防火墙的问题哦……
ralin on 十月 15th, 2012
楼主,请问下MapGIS相关的组件库导入是导入的哪些呢?
水文工具集 on 十月 15th, 2012
导入了这几个,也许多了
contains
EDITVIEWLib_TLB in ‘EDITVIEWLib_TLB.pas’,
ACTXEDITLib_TLB in ‘ACTXEDITLib_TLB.pas’,
EDITGISATTLib_TLB in ‘EDITGISATTLib_TLB.pas’,
ATTSTRUEDITLib_TLB in ‘ATTSTRUEDITLib_TLB.pas’,
MapTree_TLB in ‘MapTree_TLB.pas’,
GISATTEDITLib_TLB in ‘GISATTEDITLib_TLB.pas';