var
MegerList: Variant;
i,j,ArrCount:integer;
begin
ArrCount:=0
for i := 0 to 2 do
for j := 0 to 2 do MegerList := VarArrayCreate([0,ArrCount], varVariant);
MegerList[ArrCount] :=VarArrayOf([tt.Top+1,tt.Left+1,tt.Bottom,tt.Right]);
inc(ArrCount);
if VarIsArray(MegerList) then //megerd
begin
for I := VarArrayLowBound(MegerList, 1) to VarArrayHighBound(MegerList, 1) do
begin
showmessage(MegerList[i][1]); end;
end;
end;
MegerList: Variant;
i,j,ArrCount:integer;
begin
ArrCount:=0
for i := 0 to 2 do
for j := 0 to 2 do MegerList := VarArrayCreate([0,ArrCount], varVariant);
MegerList[ArrCount] :=VarArrayOf([tt.Top+1,tt.Left+1,tt.Bottom,tt.Right]);
inc(ArrCount);
if VarIsArray(MegerList) then //megerd
begin
for I := VarArrayLowBound(MegerList, 1) to VarArrayHighBound(MegerList, 1) do
begin
showmessage(MegerList[i][1]); end;
end;
end;
解决方案 »
- 在Delphi下用ado 连接access 数据库 详解
- 编译后exe的按钮标题都显示乱码 '?' 咋回事?
- 面向对象数据插入问题
- xlGrid1.7内存访问错误的问题(要多少分给多少分(100--4700))
- 我想在TreeView里找一个(或者一些)结点。前提是知道这个结点的level和text。怎么写?顶这有分。
- 有关Deiphi和Word显示的问题。急!!!!!!!!
- 如何使DBGrid的相应列得到焦点!谢谢!
- qrdbtext如何换行?
- 程序能够打开,但为什么不能关闭?
- 请教delphi里面文件操作
- 怎样做一个程序能顶替windows的桌面? 像网吧管理软件那样
- 用什么工具去掉ico图标的背景?
ArrCount:=0;
ArrCount:=0 少 ;
程序更正:
var
MegerList: Variant;
i,j,ArrCount:integer;
begin
ArrCount:=0;
for i := 0 to 2 do
for j := 0 to 2 do
MegerList := VarArrayCreate([0,ArrCount], varVariant);
MegerList[ArrCount] :=VarArrayOf([i,j,i+1,j+1]);
inc(ArrCount);
if VarIsArray(MegerList) then //megerd
begin
for I := VarArrayLowBound(MegerList, 1) to VarArrayHighBound(MegerList, 1) do
begin
showmessage(MegerList[i][1]);
end;
end;
end;
但逻辑就不知道了,因为不知道你这段要做什么
另外
inc(ArrCount);
在程序里面没有什么用处
程序实现的目的:将(0,0,1,1)、(0,1,1,2)等等的数据放到MegerList中,然后再读出来:MegerList[i][1];不知你是否明白我的意思!在线!!!
var
MegerList: Variant;
i,j,ArrCount:integer;
begin
MegerList := VarArrayCreate([0,8], varVariant); // 3*3 ArrCount :=0 ;
for i := 0 to 2 do
for j := 0 to 2 do
begin
//MegerList := VarArrayCreate([0,ArrCount], varVariant);
MegerList[ArrCount] :=VarArrayOf([i,j,i+1,j+1]);
inc(ArrCount);
end; if VarIsArray(MegerList) then //megerd
begin
for i := VarArrayLowBound(MegerList, 1) to VarArrayHighBound(MegerList, 1) do
begin
showmessage(IntToStr(i)+': '+FloatToStr(MegerList[i][0])+'/'+FloatToStr(MegerList[i][1])+'/'+FloatToStr(MegerList[i][2])+'/'+FloatToStr(MegerList[i][3]) );
end;
end;
end;(注:是不是NI要的?)
MegerList: Variant;
i,j,ArrCount:integer;
begin
ArrCount:=0;
MegerList := VarArrayCreate([0,8], varVariant);
for i := 0 to 2 do
for j := 0 to 2 do
begin
MegerList[ArrCount] :=VarArrayOf([i,j,i+1,j+1]);
inc(ArrCount);
end; if VarIsArray(MegerList) then //megerd
begin
for I := VarArrayLowBound(MegerList, 1) to VarArrayHighBound(MegerList, 1) do
begin
Memo1.Text:=memo1.Text+' (';
for j:=0 to 3 do
Memo1.Text:=Memo1.Text+InttoStr(megerList[i][j]);
Memo1.Text:=memo1.Text+') ';
end;
end;
end;
MegerList := VarArrayCreate([0,8], varVariant); // 3*3
这个VarArrayCreate的长度无法确定,所以我用
MegerList := VarArrayCreate([0,ArrCount], varVariant);来动态的设定他的长度。另外VarArrayCreate(([0,ArrCount], varVariant)中的ArrCount是不是可以数组的长度?
主要是这个VarArrayCreate的长度无法确定,肯定不是8,8只是我举例子想让大家好明白,没想到反倒误导了大家!^_^
for i := 0 to rowcount do
for j := 0 to colcount do
begin
if ()then
begin
MegerList[ArrCount] :=VarArrayOf([i,j,i+1,j+1]);
inc(ArrCount);
end;
end;
如果程序这样!怎么确定条件,他的长度如何动态设定?
MegerList是在满足if ()then的条件下才添加内容,所以无法确定!
MegerList := VarArrayCreate([0,rowcount*colcount-1], varVariant);
MegerList := VarArrayCreate([0,rowcount*colcount-1], varVariant);这个我也想到了,
if ()then
begin
MegerList[ArrCount] :=VarArrayOf([i,j,i+1,j+1]);
inc(ArrCount);
end;
但这样MegerList的空间会增加很多多余的空间
Varr: Variant;
i, j, Val: Integer;
begin
Val := 0;
for i := 0 to 2 do
begin
for j := 0 to 2 do
begin
if Val = 0 then
Varr := VarArrayCreate([0, Val + 1], varVariant)
else
VarArrayRedim(Varr,Val + 1);
Varr[Val] := Inttostr(Val);
inc(Val);
end;
end;
for i := VarArrayLowBound(Varr,1) to VarArrayHighBound(Varr,1) do
ShowMessage(Varr[i]);
end;问题1:你重复创建了你的变体数组,却只给最新的也就是索引最大的写值
问题2:你给各个变体数组里的个体写值时,不是写的是单数据,而又是一个具有4列的数据,当然无法显示
兄弟你说的非常正确,OK了。非常感谢!