0

我使用套件http://www.cadetill.com/gmlib_en/在 Delphi 的 Windows 应用程序中绘制地图。

在我的项目中,我需要使用 TLinePoint 和 TPolygon 对象的 TAG 属性(TLinePoint 存储多边形点)。

在我更改 TLinePoint 和 TPolygon 对象的 TAG 属性的过程中,它可以完美运行而不会出现错误。但是当我尝试在另一个过程中访问以检查我之前更改的对象的 TAG 属性时,只记录了 TPolygon 的 TAG,并且 TLinePoint 对象的 TAG 丢失了,就好像它是只读的一样。所有其他数据,如该点的纬度和经度都被正确记录。

我已经尝试了一切,我相信这是原始代码中的错误。我对面向对象了解不多,我已经尝试了一切来找到问题,但我不能。

有人可以帮助我吗,我不知道我在做什么错了。

这是我的代码的一个小例子:

{procedure 1: create the polygon and write the TAG}

var p: TPolygon; pLP: TLinePoint; GMPolygonMap : TGMPolygon;

p:=GMPolygonMapa.Add; //Create the TPolygon index 0 and add it to the TGMPolygon object that is linked to the TGMMap object
p.Tag := 88; // polygon TAG arrow

pLP := p.AddLinePoint (lat, lng ); //create the TLinePoint index 0
pLP.Tag := 99; //point tag arrow

这是我检查 TAG 的另一个过程:

{procedure 2 checks the polygon TAG}

ShowMessage(GMPolygonMapa.Items[0].Tag + //here returns 88 correctly for the polygon tag
  GMPolygonMapa.Items[0].Items[0].LngToStr + //here returns the point longitude correctly
  GMPolygonMapa.Items[0].Items[0].LatToStr + //here returns the latitude of the point correctly,
  IntToStr(FMapa.Items[0].LinePoints[0].Tag) ); //here returns 0 incorrect because the point tag should return 99*

谢谢。

4

0 回答 0