能否在一个listbox中输入一个矩阵(20分)

  • 主题发起人 主题发起人 lj.ah
  • 开始时间 开始时间
L

lj.ah

Unregistered / Unconfirmed
GUEST, unregistred user!
能否在一个listbox中输入一个矩阵,再将其内容赋予一个二位数组?
或者用别的控件,能成么?
 
stringgrid不是更直观?
 
具体怎么用呢?
 
即如何将stringgrid里的内容作为初值赋给一个二维数组?
 
怎么这样回出错?
type
AA=array of array of integer;
procedure text(A:AA ;var m,n:integer);
var i,j:integer;
begin
setlength(A,m,n);
for i:=1 to m do
for j:=1 to n do
A[i,j]:=A[i,j]+1;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
var B:AA;m,n,i,j:integer;
begin
m:=3;n:=4;
setlength(B,m,n);
begin
for i:=1 to m do
for j:=1 to n do
B[i,j]:=strtoint(stringgrid1.cells[j,i]);
end;
text(B, 3, 4);//这句通过不了,她说少操作符或是分号。
for i:=1 to m do
for j:=1 to n do
StringGrid2.cells[j,i]:=inttostr(B[i,j]);
end;
 
Text在Controls单元有一个定义,所以得改,另外还有一些错误,如:OpenArray是从0开始,最后一个元素是的下标Count-1
改后的如下:
procedure MyText(var A:AA;m,n:integer);
var i,j:integer;
begin
setlength(A,m,n);
for i:=0 to m-1 do
for j:=0 to n-1 do
A[i,j]:=A[i,j]+1;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
B:AA;
m,n,i,j:integer;
begin
m:=3;n:=4;
for i:=0 to m-1 do
for j:=0 to n-1 do
B[i,j]:=strtoint(stringgrid1.cells[j,i]);
MyText(B,3,4);//Õâ¾äͨ¹ý²»ÁË£¬Ëý˵ÉÙ²Ù×÷·û»òÊǷֺš£
for i:=1 to m do
for j:=1 to n do
StringGrid1.cells[j,i]:=inttostr(B[i,j]);
end;
 
后退
顶部