2010-12-11 15 views
1

私はこれに関する手順を作成したいと思います。2次元または多次元配列のパラメータを持つプロシージャを作成する方法は?

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にしたいと思います - 私もこれを知っていると思います –

+0

* dynamic * array? –

+1

@ user205376:はい、それはそれが呼び出されたものです。 'Data'は整数の2次元動的配列です。 –