mapx的古怪问题 ( 积分: 100 )

  • 主题发起人 主题发起人 cccccccs
  • 开始时间 开始时间
C

cccccccs

Unregistered / Unconfirmed
GUEST, unregistred user!
又来问mapx的问题,以前问过两个问题,可惜没有得到解决方案,所以没有接受答案,抱歉抱歉。。。

现在的问题是这样的,我的程序在大多数机器上都可以正常使用,但是在某几台机器上总是报读DAENGINE.DLL出错的错误,这些机器都是安装了mapx5.02的,而且可以正常使用的那些机器也没有做什么特殊设置,实在是令小弟头大啊,请高手指点一下吧,拜谢

ps:是用delphi7+mapx5.02开发的
 
又来问mapx的问题,以前问过两个问题,可惜没有得到解决方案,所以没有接受答案,抱歉抱歉。。。

现在的问题是这样的,我的程序在大多数机器上都可以正常使用,但是在某几台机器上总是报读DAENGINE.DLL出错的错误,这些机器都是安装了mapx5.02的,而且可以正常使用的那些机器也没有做什么特殊设置,实在是令小弟头大啊,请高手指点一下吧,拜谢

ps:是用delphi7+mapx5.02开发的
 
兄弟你能不能给我一份你的哪个 MAPX5.02 的控件呀
兄弟我跪求拉。
小弟弟我的电子邮箱地址是 wenqiang-sh@163.com
QQ : 363595903
 
我那mapx是安装版的,压缩包有50多m。。没法用邮箱啊。。抱歉抱歉

 
MapX画点显示汉字就有错误,怎么回事? (200分)
分类:GIS zealothasu (2004-04-15 19:16:00)


一个表
place_id, place_name, longitude, latitude四个字段
其中place_id整型, place_name 字符串,都是汉字
记录着某个地点的名字和经纬度
要做到每次装载地图时都要动态装进去,在相应的经纬度显示一个点,点的标题是地点名称

adoquery1写select place_id, place_name, longitude, latitude from table1
代码写
ADOQuery1.Open;
mBinlayer := CoBindLayer.Create;
mBinlayer.LayerName := 'CarLayer';
mBinlayer.RefColumn1 := 'Longitude';
mBinlayer.RefColumn2 := 'Latitude';
mBinlayer.LayerType := miBindLayerTypeXY;
mDataset := Map1.DataSets.Add(miDataSetADO, ADOQuery1.Recordset, 'Name', 'PLACE_NAME', 'PLACE_ID', mBinlayer, EmptyParam, EmptyParam);
Map1.Layers[mBinlayer.LayerName].AutoLabel := True;

但是硬是有错误,改成 mDataset := Map1.DataSets.Add(miDataSetADO, ADOQuery1.Recordset, 'Name', 'PLACE_ID', 'PLACE_NAME', mBinlayer, EmptyParam, EmptyParam);就没事了


请问谁能够解决?

我一定要临时的图层
但是我创建的土层就是不显示汉字,一有汉字就出错
是不是汉字不行?
我的是mapx5英文版
是不是英文版不行?



zealothasu (2004-04-15 19:24:14)
连发了三个
但是不能怪我
谁叫我的问题我在我的信息中可以看到
但是在“我的待答问题”中看不到呢

我一直以为是系统问题呢
但是,为什么是非技术问题就看不到呢?合理吗?
以前不是的把


yostgxf (2004-04-15 20:37:39)
显示汉字是没问题的,但不能以汉字作为它的第一个字段显示出来‘叫什么我记不起来了’
其它的字段都可以的。

要将mapX的图层建立field,否则它默认一个字段好像叫‘GeoName’,这个字段(第一个字段)无法显示汉字的,其它的字段都可以。

yostgxf (2004-04-15 20:39:17)
我不明白你的数据库跟Mapx的图层是怎么样绑定的。

zealothasu (2004-04-16 9:32:29)
就是像我上面那样绑定的

但是显示不了汉字
会出现访问内存错误

怎么建立?我建立了却绑不上去,说找不到这样的field




yostgxf (2004-04-16 10:21:58)
你建立了带有field的mapX的图层了吗?
类似这样:
var
flds : Fields;
li : LayerInfo;
begin

//定义表结构
flds:=coFields.Create;
flds.AddFloatField('经度:');
flds.AddFloatField('纬度:');
。。。
//define the LayerInfo object
Li:=CoLayerInfo.Create;
li.Type_ := miLayerInfoTypeNewTable;
li.AddParameter('FileSpec',lyrFileName);
li.AddParameter('Name', lyrName);
li.AddParameter('Fields', flds);

lyrLayer:=MapX.Layers.Add(li, 1)


zealothasu (2004-04-16 10:51:26)
还是有问题
只要有汉字就不行了
daengine.dll错误

yostgxf (2004-04-16 10:56:08)
你留个mail,我发个MapX5.0的汉化文件给你看看。你要注意备份噢

zealothasu (2004-04-16 11:17:23)
xueglsoft@163.com

yostgxf (2004-04-16 11:22:23)
已经发出

yostgxf (2004-04-16 13:46:57)
收到了吗?解决了吗?

呵呵,你发了三个贴呀

zealothasu (2004-04-16 13:51:20)
收到了
就是搞不定

还是有问题
一到mDataset := Map1.DataSets.Add(miDataSetADO, ADOQuery1.Recordset, 'Name', 'PLACE_NAME', 'PLACE_ID', mBinlayer, EmptyParam, EmptyParam);
就不行了

zealothasu (2004-04-16 14:10:39)
好啦


好啦

终于搞定
谢谢
to yostgxf,
你想要其他两个贴得分就进去吧

zealothasu (2004-04-16 14:10:51)
接受答案了.

yostgxf (2004-04-16 14:16:39)
呵呵,我还在翻我原来的代码呢


yostgxf的回答最终被接受。
 
to weiliu:
我的问题跟您的不太相同,我显示汉字没什么问题的。。。问题是:在大多数机器上都可以运行通畅,而在部分机器就出错,实在搞不懂为什么,这应该跟汉字没什么关系吧我觉得。。。
 
一台从前运行正常的机器在重装过系统+重装mapx后居然也出这个错了,晕死。。。可以定位到出错是在删除图元的时候,在删除图元前曾有循环做过添加图元、searchatpoint等操作。。。但是如果新建一个工程只简单地作添加图元删除图元的时候却也不报错啊,这是为什么啊啊阿。。晕死,要说程序有问题吧,但是在开发的机器上和其他若干机器都非常正常的运行啊,这是为什么啊啊。。。老大们指点一下吧,拜
 
‘删除图元的时候’,在判断图元时你要考虑for ido
wnto的方法,因为删除图元的时候MapX要刷新
其他的问题没有遇到过,帮不上忙
 
只是删除一个图元,而且这个图元确定存在,唉,大概跟环境有关系?否则为何有些机器可以,有些机器不行呢,但是又不知如何设置。。。
 
嗯,大概确实与环境有关吧,写了一个非常简单的程序
procedure TForm1.Button3Click(Sender: TObject);
begin

lyRoadsTemp := Map1.Layers.Add(FeatureTemp +'/' +RoadsTemp + '.tab', Map1.Layers.Count + 1);
lyRoadsTemp.Visible := false;
end;


procedure TForm1.Button4Click(Sender: TObject);
begin

lyRoadsTemp.DeleteFeature(edit1.Text);
showmessage('ok');
end;


在会出错的机器上执行的话,有时对,有时报读DAENGINE.DLL出错。。。在不出错的机器上永远不会出错。。。

可问题是,mapx装的是一样的啊,也没进行什么特殊设置。。。各位遇到过这种问题么。。
 
没有遇到过 [:(]
 
后退
顶部