读出 delphi DBGrid控件的里的第i行j列数据 如2行3列 1 2 3 2 23 87 90 33
2013-05-12 · 知道合伙人数码行家
关注
展开全部
我的百度网盘推广链接,可以的话支持下
http://yun.baidu.com/disk/beinvited?uk=4195699187
万分谢谢!!!
你好,可以到绑定的dataset中读取,方法如下:
如有什么问题再追问
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBClient, StdCtrls;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
lbl1: TLabel;
lbl2: TLabel;
edt1: TEdit;
edt2: TEdit;
btn1: TButton;
procedure FormCreate(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
dt:TCustomClientDataSet;
ds:TDataSource;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
dt:=TCustomClientDataSet.Create(Application);
ds:=TDataSource.Create(Application);
with dt do
begin
Active:=False;
FieldDefs.Clear;
FieldDefs.Add('col1',ftString,16);
FieldDefs.Add('col2',ftString,16);
CreateDataSet;
Active:=True;
end;
for i:=1 to 5 do
begin
dt.Append;
dt.FieldByName('col1').AsInteger:=2*i-1;
dt.FieldByName('col2').AsInteger:=2*i;
dt.Post;
end;
ds.DataSet:=dt;
DBGrid1.DataSource:=ds;
DBGrid1.ReadOnly:=True;
end;
procedure TForm1.btn1Click(Sender: TObject);
var
col,row:Integer;
cellvalue:string;
function datacheck:Boolean;
begin
Result:=False;
try
row:=StrToInt(edt1.Text);
col:=StrToInt(edt2.Text);
except
ShowMessage('行或列输入有误!');
Exit;
end;
if (row>dt.RecordCount) or (row<1) then
begin
ShowMessage('行数应在1~'+IntToStr(dt.RecordCount)+'之间!');
Exit;
end;
if (col>dt.FieldCount) or (col<1) then
begin
ShowMessage('列数应在1~'+IntToStr(dt.FieldCount)+'之间!');
Exit;
end;
Result:=True;
end;
begin
if datacheck=False then Exit;
//关键地方
DBGrid1.DataSource.DataSet.RecNo:=row;
cellvalue:=DBGrid1.DataSource.DataSet.Fields[col-1].AsString;
ShowMessage(cellvalue);
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DBGrid没有具体读几行几列的方法,利用函数确定几行几列,利用FOR语句定位。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把 DBGrid 对应的TADOQuery数据表 各字段 对应成一个字符串常量数组
利用for 循环 从TADOQuery的第一条开始循环取数;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stemp : string;
stemp = dbgrid1.row[i]col[j];
具体记不清楚了,机器上没有 环境,大约是这样的。
stemp = dbgrid1.row[i]col[j];
具体记不清楚了,机器上没有 环境,大约是这样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询