2010-11-22 123 views
2

嗨 我有一个问题,当我使用二维动态数组。我使用这个: 程序ListDeleted(FilesList:整数数组的数组); 德尔福给我编译错误 我该如何解决它?如何使用二维动态数组作为函数参数?

+1

如果你找到了一个适合你的答案,你应该选择它作为接受的答案(通过点击它旁边的勾号) – mjn 2010-11-23 11:23:13

回答

11

声明数组头型,然后在参数列表

type 
    T2DIntArr = array of array of Integer; 

... 

ListDeleted(FilesList: T2DIntArr); 
+0

比你的工作 – micheal 2010-11-22 07:02:11

+5

@micheal,如果这是有效的答案你,你应该选择它作为接受的答案(通过点击旁边的勾号)。 – vcldeveloper 2010-11-22 12:10:34

2

使用它定义自定义类型:

type 
    TIntArray2 = array of array of Integer; 

如果你只是读ListDeleted参数内容,使用

procedure ListDeleted(const FilesList: TIntArray2) 

如果参数即将被修改,请使用

procedure ListDeleted(var FilesList: TIntArray2) 

如果参数是在内部修改,但修改不应该被传播到主叫方,使用

procedure ListDeleted(FilesList: TIntArray2) 

但要注意的是,最后的声明(没有常量也不VAR)将使在调用ListDeleted之前调用数组的临时副本,这对性能不是好主意。