2010-12-11 57 views
1

我想在此創建一個過程。如何創建具有兩維或多維數組參數的程序?

procedure TForm1.Button1Click(Sender: TObject); 
var 
    a: Array[0..1, 0..2] of TControl; // need to be pass 
    tmp: Array[0..1] of TControl; 
    i, j, iCnt : Integer; 
begin 
//------------------------------------- 
    a[0][0] := Panel1; //sample data inside the main panel 
    a[0][1] := Panel2; 
    a[0][2] := Panel3; 
    a[1][0] := Panel4; 
    a[1][1] := Panel5; 
    a[1][2] := Panel6; 
//------------------------------------- 

    for i := low(a) to high(a) do 
    AutoSizeCtrlWidth(mainpanel, a[i], 20, 20); 
    for j := low(a[1]) to High(a[1]) do 
    begin 
    for i := low(a) to high(a) do 
    tmp[i] := a[i][j]; 
    AutoSizeCtrlHeight(mainpanel, tmp, 20,20); 
    end; 
// 
end; 

實施例:

procedure AutoSizeCtrlWidthHeight(AParentCtrl: TControl; arControls: Array of TControl; ASpacing, AMargin: Integer); 

如何創建具有兩個參數或多維陣列的程序?

回答

3
type 
    TMyDataType = array of array of integer; 

procedure MyProcedure(const Data: TMyDataType); 
begin 
end; 
+0

我總是想要一個數組參數爲const - 我相信你也知道這個 – 2010-12-11 16:40:36

+0

* dynamic * array? – 2010-12-11 23:23:18

+1

@ user205376:是的,這就是它所稱的。 「數據」是一個整數的二維動態數組。 – 2010-12-11 23:28:31