类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
对于mapx的自定义工具使用时,定义toolused事件时定义变量类型的问题,
VB中这样定义的变量类型如下:
dim ftr as MapXlib.feature //定义了一个feature对象;
dim pt as new point // 点对象;
dim pt as new points
请问,这样的类型定义,对应在delphi中应该是怎么样的呢?
在delphi里可以这样定义的,有两种,区别是什么呢,好迷惑啊!
newObj : Variant; // Used for storing new feature object
pt : Variant; // Used for storing point of click
pts : Variant; // Used for storing collection of points
ftrs : Variant; // Used for storing collection of features
或是
newObj : cmapxfeature; // Used for storing new feature object
pt : cmapxpoint; // Used for storing point of click
pts :
ftrs :
哪位大侠给指教指教,迷惑好久了!小弟先道谢了!
网友回答:
不会Delphi,不过,我觉得应该一样吧。Variant在VB中也有啊,是MS定义的一种复合数据类型,也能够指向对象的。如果想清晰点,我觉得用明确的类型定义好一点!
祝你好运吧。如果真的迷惑,那就多写程序,多看程序,代码看多了,自然就有感觉啦!
Variant是在不能确定变量类型的时候使用的一种声明方式!
个人建议要使用那种明确的定义方法
因为使用Variant来定义的话,有的时候会出现莫名其妙的错误
今天上午刚刚解决完一个问题
就是和这个东西有关系
VB中这样定义的变量类型如下:
dim ftr as MapXlib.feature //定义了一个feature对象;
dim pt as new point // 点对象;
dim pt as new points
请问,这样的类型定义,对应在delphi中应该是怎么样的呢?
对应在delphi中应该是
var
ftr : cmapxfeature;
pt : cmapxpoint;
pts : cmapxpoints;
定义为Variant变量是一个变体变量,cmapxfeature 就是MAPX的一个具体变量。
这里隐藏面向对象语言的特性。
比如java语言中。是单根继承的语言。
继承自Object.
Object s=new Point();
Points=new Point();
如果为单根继承语言。这样定义是OK的。 但多根的,比如c++就麻烦了。
这里面有继承的概念。面向对象的编程思想是很流行的。VB里面把这些都隐藏起来了。我们看不到细节,
我举个例子你就知道了。
对象 Object
地理对象也是一个对象 GeoObj
点、线、面是地理对象 Point,Line,Polygon
所以以下定义都是正确的。
Object obj=new GeoObj();
Object obj=new Point();
Object obj=new Polygon();
GeoObj obj=new Polygon();
GeoObj obj=new Line();
部分代码:
var
pt : Variant;
begin
pt := CreateOleObject(MapX.Point.4);
end;
其他类似!
pt: MapXlib_tlb.point;
pts: Mapxlib_tlb.Points;
f : Mapxlib_tlb.Feature;
这样也可以