各位xdjm,快救救我呀,4天弄不出来,我就惨了!!!我的问题是:
如何实现用Delphi来二次开发Geomedia,用以将当前(Mapview)地图输出打印,要保证输出的地图清晰明了(用于工程施工),即将矢量图以任何比例输出打印。现在想到的是,Geomedia自身有现成的动态连接库和类型库(GMLayout.tlb,PlayCmd.dll,PlaySupt.dll),可以实现上面我描述的功能,现在就是要将他的东西变为在Delphi中实现,当然首先是考虑使用Geomedia的DLL和类型库来实现,但是我现在用Delphi无法将其中的两个DLL(PlayCmd.dll,PlaySupt.dll)倒入,请问这是问什么(用别人的机子也不行),请各位大侠们帮我想想办法,如何实现我的地图打印功能(如果有其他的想法或实例也行),我先谢谢大家了。
如何实现用Delphi来二次开发Geomedia,用以将当前(Mapview)地图输出打印,要保证输出的地图清晰明了(用于工程施工),即将矢量图以任何比例输出打印。现在想到的是,Geomedia自身有现成的动态连接库和类型库(GMLayout.tlb,PlayCmd.dll,PlaySupt.dll),可以实现上面我描述的功能,现在就是要将他的东西变为在Delphi中实现,当然首先是考虑使用Geomedia的DLL和类型库来实现,但是我现在用Delphi无法将其中的两个DLL(PlayCmd.dll,PlaySupt.dll)倒入,请问这是问什么(用别人的机子也不行),请各位大侠们帮我想想办法,如何实现我的地图打印功能(如果有其他的想法或实例也行),我先谢谢大家了。
解决方案 »
- 考勤表中夜班的判断
- 关于delphi获取天气信息的问题
- 偶的轮胎
- 求助关于结束依附程序的方法
- 100分答谢$$一个小程序的问题
- 请回答http://expert.csdn.net/Expert/topic/2508/2508449.xml?temp=.7403986的朋友来领分
- 关于Paradox
- DELHPI中的版本控制问题?
- 请问哪儿有delphi做中间件的书?
- 关于Webaction的pathinfo属性的问题:(
- @@@@@兄弟们,救命!为什么在读取ORACLE表索引时,无论是否为主索引,均显示为否。进来有分。@@@@@
- 我的combobox是dropdownlist类型的,能不能在窗体打开时显示 text
---------------------------------------
在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)、重新启动机器
还差得很远呀,也请路过的xdjm都给我出出主意呀。 大家觉得先将Delphi不能倒入的DLL用VB来重新做一个DLL,然后再由Delphi来使用可否很好的实现我的功能。
vc的depends工具可以看导出函数。