var
Item,i:integer;
ItemName: array of string;
begin
Item:= DBGrid1.Columns.Count;
SetLength(ItemName, Item-1);
For i:=0 to Item-1 do
ItemName[i]:= DBGrid1.Columns[i].Title.Caption ;
就这样,一执行就报错,就出现一个标题为cpu的窗口,16进制数的那种报错窗口
Item,i:integer;
ItemName: array of string;
begin
Item:= DBGrid1.Columns.Count;
SetLength(ItemName, Item-1);
For i:=0 to Item-1 do
ItemName[i]:= DBGrid1.Columns[i].Title.Caption ;
就这样,一执行就报错,就出现一个标题为cpu的窗口,16进制数的那种报错窗口
var
Item,i:integer;
ItemName: array of string;
begin
Item := DBGrid1.Columns.Count;
SetLength(ItemName, Item); //你SetLength的项数错了
For i := 0 to Item - 1 do
ItemName[i] := DBGrid1.Columns[i].Title.Caption;
end
Item,i:integer;
ItemName: array of string;
begin
Item:= DBGrid1.Columns.Count; //如果Item为10
SetLength(ItemName, Item-1); //开辟的控件为9
For i:=0 to Item-1 do //赋10个值到ItemName,自然会导致地址访问越界冲突
ItemName[i]:= DBGrid1.Columns[i].Title.Caption ;
SetLength(ItemName, Item-1);
不要减一的