2010-11-22 122 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之前調用數組的臨時副本,這對性能不是好主意。