我想让一个函数返回一个数组,为什么不行?附上源码(30分)

  • 主题发起人 主题发起人 Boblee
  • 开始时间 开始时间
B

Boblee

Unregistered / Unconfirmed
GUEST, unregistred user!
uses
...
type
private
//过程,函数声明
procedure SetSceneHotSpots(para:array of THotSpot)
function GetSceneHotSpots :array of THotSpot
<<<---编译出错:[Error] panoObj.pas(44): Identifier expected but 'ARRAY' found
....
public
property SceneHotSpots:array of THotSpot read GetSceneHotSpots write SetSceneHotSpots;<<<---编译出错:[Error] panoObj.pas(55): Identifier expected but 'ARRAY' found
[Error] panoObj.pas(55): Incompatible types
....

var
result:array of THotSpot
<<---THotSpot 是 我自己写的class.
....

implementation

procedure SetSceneHotSpots(para:array of THotSpot)
begin
result:=para;<<<-编译出错:[Error] panoObj.pas(109): Incompatible types: 'Array' and 'dynamic array'
end;
function GetSceneHotSpots:array of THotSpot;<<--编译出错:[Error] panoObj.pas(127): Identifier expected but 'ARRAY' found
begin
GetSceneHotSpots:=result;<<--编译出错:[Error] panoObj.pas(129): Incompatible types: 'THotSpot' and 'dynamic array'
....
end;

Help ,help ......
 
procedure SetSceneHotSpots(var para:array of THotSpot)
 
可以在procedure中使用var参数来返回多个值,包括数组
 
好像必须先定义如下
Type
TMyArr=Array Of THotSpot;
function GetSceneHotSpots :TMyArr;
 
而且,你这个地方有语法错误:
procedure SetSceneHotSpots(para:array of THotSpot)
begin
result:=para;
end;
“Result”是Object Pascal的保留字,“Procedure”里面怎么会有“Result”呢?把
你的变量换一个名吧。
 
TO:arcore
result只是举例用的,真正的code中不是用这个。

用两个method的目的是,一个set值,一个返回值。所以,过程是起set作用,
函数起返回值的作用。
所以 LGXing 兄得最多分,其它各兄都是对的但不是我想要的。
谢谢各位。
:)
 
对不起,forget pay.
 
后退
顶部