读出 delphi DBGrid控件的里的第i行j列数据 如2行3列 1 2 3 2 23 87 90 33

 我来答
FoolRabbit编程
2013-05-12 · 知道合伙人数码行家
FoolRabbit编程
知道合伙人数码行家
采纳数:619 获赞数:3805
毕业于苏州大学,4年编程经验,对WPF有研究。

向TA提问 私信TA
展开全部

我的百度网盘推广链接,可以的话支持下
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.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ydf521521
2013-05-12 · 超过10用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:33.5万
展开全部
DBGrid没有具体读几行几列的方法,利用函数确定几行几列,利用FOR语句定位。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徐金柱第一
2013-05-12 · TA获得超过333个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:181万
展开全部
  1. 把 DBGrid 对应的TADOQuery数据表 各字段 对应成一个字符串常量数组

  2. 利用for 循环 从TADOQuery的第一条开始循环取数;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rich556677
2013-05-12 · TA获得超过2028个赞
知道小有建树答主
回答量:1365
采纳率:0%
帮助的人:900万
展开全部
stemp : string;

stemp = dbgrid1.row[i]col[j];
具体记不清楚了,机器上没有 环境,大约是这样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式