起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 144|回复: 7

MapX的问题

[复制链接]
发表于 2010-3-8 10:20:32 | 显示全部楼层 |阅读模式
导入MapX控件后,想做添加图元的程序。可是发现很多问题。不知是代码问题还是什么原因,请人帮忙看看。代码是:
procedure TForm1.Button4Click(Sender: TObject);
var
cs:CMapXStyle;
pnt:CMapXPoint;
lyr:layer;//层
ftr:feature;//特征
pt:point;//点
mstyle:style;//样式
x,y:double;
begin
cs:=costyle.create;
cs.SymbolType :=1;
cs.SymbolBitmapSize:=48;
cs.SymbolBitmapName:='RAIL1-32.BMP';
cs.SymbolBitmapTransparent:=true;
pnt:=copoint.Create;
pnt.Set_(50,10);
ftr:=cofeature.Create ;
ftr:=map1.ControlInterface.FeatureFactory.CreateSymbol(pnt,cs);
map1.ControlInterface.Layers['高速公路_50m'].AddFeature(ftr,EmptyParam);
end;
错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(183, 25): Undeclared identifier "create"
[错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(188, 14): 不能隐式转换 "CoPoint" 成为 "CMapXPoint"
[错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(190, 16): 不能隐式转换 "CoFeature" 成为 "CMapXFeature"
[错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(192, 61): Undeclared identifier "EmptyParam"
回复

使用道具 举报

 楼主| 发表于 2010-3-8 10:23:14 | 显示全部楼层
错误贴错了,是:
[错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(183, 13): 不能隐式转换 "CoStyle" 成为 "CMapXStyle"
[错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(188, 14): 不能隐式转换 "CoPoint" 成为 "CMapXPoint"
[错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(190, 16): 不能隐式转换 "CoFeature" 成为 "CMapXFeature"
[错误]Biz:\YKWLZHXXPT\YSGL\GIS\YWGN1.FUNC.DIR\MAINFORM.FORM.PAS(192, 61): Undeclared identifier "EmptyParam"
如果强制转换CMapXStyle(costyle).creat,就会显示Undeclared identifier"creat"
回复 支持 反对

使用道具 举报

发表于 2010-3-8 10:34:29 | 显示全部楼层
对你们使用的控件不熟悉,你使用的类costyle,CMapXStyle之间的继承关系如何?把声明和实现先一致起来试试。
再有组件导入后,很多函数和类型,都要注意所属单元,有必要的话,前面加上单元名!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-8 14:48:38 | 显示全部楼层
这是在MapXLib_TLB.pas里写的他们的继承关系:
CoPoint = class
    class function Create: CMapXPoint;
    class function CreateRemote(const MachineName: string): CMapXPoint;
  end;
  CoStyle = class
    class function Create: CMapXStyle;
    class function CreateRemote(const MachineName: string): CMapXStyle;
  end;
  CoFeatures = class
    class function Create: CMapXFeatures;
    class function CreateRemote(const MachineName: string): CMapXFeatures;
  end;
怎么一致?在哪加单元名?我已经在uses里加了MapXLib_TLB啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-8 15:44:02 | 显示全部楼层
这是在MapXLib_TLB.pas里写的他们的继承关系:
CoPoint = class
    class function Create: CMapXPoint;
    class function CreateRemote(const MachineName: string): CMapXPoint;
  end;
  CoStyle = class
    class function Create: CMapXStyle;
    class function CreateRemote(const MachineName: string): CMapXStyle;
  end;
  CoFeatures = class
    class function Create: CMapXFeatures;
    class function CreateRemote(const MachineName: string): CMapXFeatures;
  end;
怎么一致?在哪加单元名?我已经在uses里加了MapXLib_TLB啊?
回复 支持 反对

使用道具 举报

发表于 2010-3-8 15:47:41 | 显示全部楼层
cs:=costyle.create;
cs:CMapXStyle;
声明和实现用一个类试试
回复 支持 反对

使用道具 举报

发表于 2010-3-8 15:49:47 | 显示全部楼层
CMapXStyle(costyle).creat,就会显示Undeclared identifier"creat"
CMapXStyle是怎么定义的,另外creat是不是少写了一个e?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-8 16:25:50 | 显示全部楼层
第二个帖子发的有问题,CMapXStyle(costyle).create,就会显示Undeclared identifier"create" ,程序上没少写。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 21:41 , Processed in 0.039430 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表