TO DZHZH2000:
下面一段是我写的一部分文档(以GeoMedia3.0为例),仅供参考:
---------------------------------------
在Delphi中利用Geomedia控件编程
1.前言
GeoMeida是INTERGRAPH公司优秀的地理绘图软件,在Delphi中可以利用其在系统中注册的控件来编程。
2.准备工作
(1)、安装GeoMedia地理信息软件或注册其主要控件。
主要控件名称:MapView控件、EventControl控件、DataView控件。
其他控件名称:NorthArrow控件、ScaleBar控件。(可以不在Delphi中引入)
(2)、在AUTOEXEC.BAT中加入GeoMedia的安装路径中Program目录:
例如C:/Progra~1/Geomed~1/Program
加入后重新启动机器。
(3)、在Delphi中引入控件步骤:
a. 选择“/Component/Import ActiveX Control…”后弹出对话框“Import ActiveX”,在列表
框中选择“Intergraph Geomedia Event Control 3.0(Version 3.0)”后单击“Create Unit”按纽,
b. 选择“/Component/Install Component…”后在弹出的对话框中选择“浏览”按纽
,选择”.Pas”文件,分别选择下列文件
DataviewLib_TLB.pas
GMEventControlLib_TLB.pas
GMNorthArrowLib_TLB.pas
GMScaleBarLib_TLB.pas
MapviewLib_TLB.pas
如果以上步骤正确的话会在指定的选项卡中出现以上控件
建议将控件放在新建的选项卡(如:GeoMedia)上,
c. 继续第一步,分别加入下列选项:
Intergraph Geomedia MapView Control 3.0(Version 3.0)
Intergraph Geomedia North Arrow Control 3.0(Version 3.0)
Intergraph Geomedia Scale Bar Control 3.0(Version 3.0)
d.引入类库
选择“/Project/Import Type Library…”后弹出对话框“Import Type Library”,在列表框中
逐一选择下列选项后单击“Create Unit”按纽,提示文件存在时否覆盖时选择“确定”.
Intergraph GDO 1.0 Object Library
Intergraph GeoMedia PAdvLgd
Integraph GeoMedia PBasic
Integraph GeoMedia PClient
Integraph GeoMediaPClCmd
Integraph GeoMedia PCSS
Integraph GeoMedia PPipe
Integraph GeoMedia PRaster
Integraph GeoMedia PService
Integraph GeoMedia Pview
注:引入类库后,编译时可能会提示
(a).某些属性未定义
(b).过程的参数说明有误(如:多了“var”,主要就是这个)
(c).只读属性不能赋值
解决方法:
(a).添加未定义的属性(前提要保证有定义该属性的过程和函数,一般该类的前面都有此过程
和函数说明)
(b).去掉“var”(可能工作量较大,请耐心删除)
(c).添加属性设置中的Write 过程(此提示一般是因为只对属性设置了Read过程)
(4)、下面应该可以从控件选项卡上拖一个GMMapview控件到窗体上
可能出现的问题:弹出对话框,显示 “Can not obtain Ole Handle”之类的信息,
可能的原因:(1)、Autoexec.bat中未加入安装路径或路径加入错误 。
(2)、Autoexec.bat中加入后未重新启动机器。
解决办法:(1)、正确加入路径。
(2)、重新启动机器