type
  TBoard  = record   //定义一个记录
    A:String;
    B:Integer;
  end;
  TForm1 = class(TForm) 
  public
    { Public declarations }
    Function Get_BJ(i,j:Integer):TBoard;  //自定义函数
  end;
var
  Form1: TForm1;
  B:Array of Array of TBoard; //定义一个2维记录型数组
implementation
{$R *.dfm}
Function TForm1.Get_BJ(i,j:integer):TBoard;
begin
  result:=B[i,j];
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetLength(B,2,2); //初始化数组
  B[0,0].A:='image1';
  B[0,0].B:=1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  with Get_BJ(0,0) do //问题出这里,调用函数,返回数组中相应的元素,然后改变该元素的值,可就是无法改便...要是直接改掉某元素的值是可以的..用上函数就不行了..Why???
  begin
    A:= Edit1.text;  //编译通过,,就是无法改变其值
    B:=StrToInt(Edit2.text); //编译通过,,就是无法改变其值
  end;
end;
end;