for 每行 begin for 每列 sringGrid.cell[行,列] := DbGrid.DataSource.Dataset.Fields[列].AsString; DbGrid.DataSource.Dataset.Next; end;
代码好象不行啊 老大 运行老是出现'list index out of bangs(5)'的错误
你是否是stringgrid的Row、Col设得太小了? 超出了范围?
我现在找出当DBGRID的列大于5列的时候就出错 但是我给XSTRING的COL的值设的很大了啊
procedure TForm1.ADOTable2AfterOpen(DataSet: TDataSet); Var I,j:integer; begin StringGrid1.ColCount:=DbGrid1.FieldCount+1; For I:=0 to DbGrid1.FieldCount-1 do begin StringGrid1.Cols[I+1].Text:=DBGrid1.Fields[I].DisplayName; StringGrid1.ColWidths[I+1]:=DBGrid1.Columns.Items[I].Width; end; with DBGrid1.DataSource do begin For I:=0 to DataSet.recordCount-1 do begin StringGrid1.RowCount:=StringGrid1.RowCount+1; for j:=0 to DataSet.FieldCount-1 do StringGrid1.Cells[j+1,I+1]:=DataSet.Fields[j].Value; DataSet.Next; end; end; end;
有這個控件??用個For 循環了, 一行一行寫
begin
for 每列
sringGrid.cell[行,列] := DbGrid.DataSource.Dataset.Fields[列].AsString;
DbGrid.DataSource.Dataset.Next;
end;
运行老是出现'list index out of bangs(5)'的错误
超出了范围?
Var
I,j:integer;
begin StringGrid1.ColCount:=DbGrid1.FieldCount+1;
For I:=0 to DbGrid1.FieldCount-1 do
begin
StringGrid1.Cols[I+1].Text:=DBGrid1.Fields[I].DisplayName;
StringGrid1.ColWidths[I+1]:=DBGrid1.Columns.Items[I].Width;
end;
with DBGrid1.DataSource do
begin
For I:=0 to DataSet.recordCount-1 do
begin
StringGrid1.RowCount:=StringGrid1.RowCount+1;
for j:=0 to DataSet.FieldCount-1 do
StringGrid1.Cells[j+1,I+1]:=DataSet.Fields[j].Value;
DataSet.Next;
end;
end;
end;