首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教方法参数怎么定义数组

2013-12-05 
请问方法参数如何定义数组首先我const了一个数组constarr_Duty1:array[0..1, 0..1] of string((rb_Duty1

请问方法参数如何定义数组
首先我const了一个数组

const
  arr_Duty1:array[0..1, 0..1] of string=(('rb_Duty1','grp_Duty1'),('rb_Duty1','grp_Duty1'));
  arr_Duty2:array[0..1, 0..5] of string=(('rb_Duty2','grp_Duty2'),('rb_Duty2','grp_Duty2'),..);
//这个array[X..X,X..X]是不定的



点击按钮,需要运行一个方法,方法参数为上述的不定多维数组,请问这个参数怎么定义?在方法里怎么调用?我个人觉得只能是传指针了。但传进去指针后如何调用呢?
procedure TFrm_Statistics.rb_Duty1Click(Sender: TObject);
begin
  IniState(Pointer(arr_Duty));  //我暂时是这么写的
end;

procedure TFrm_Statistics.IniState(arr: PVarArray);
begin
// showmessage(Length(arr),Length(arr[Low(arr)]))
//但传进来后不知道该怎么写了
end;

[解决办法]
Const
  arr_Duty1: array[0..1, 0..1] of string=(('rb_Duty1','grp_Duty1'),('rb_Duty1','grp_Duty1'));
  arr_Duty2: array[0..2, 0..1] of string=(('rb_Duty1','grp_Duty1'),('rb_Duty1','grp_Duty1') , ('a','b'));

type
  TConstStringList = array [0..0] of String;
  PConstStringList = ^TConstStringList;

procedure Doit(aArray : PConstStringList; AllLen : integer);
var
  i : integer;
begin
  for i:=0 to AllLen-1 do
    ShowMessage(aArray^[i]);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Doit(@arr_Duty1 , 4);
  Doit(@arr_Duty2 , 6);
end;


无法获取长度,需要传递一个长度参数进去

热点排行