----------如何引用DBGrid中某个单元格的内容?----------(50分)

  • 主题发起人 主题发起人 bobzane
  • 开始时间 开始时间
B

bobzane

Unregistered / Unconfirmed
GUEST, unregistred user!
如:DBGrid1的第二行,第三列的单元格的值,怎样表示?
 
先声名一个类
dbgrid 的row 和cloumn两个属性是保护的。可以通过声明一个类来完成赋值
type
tabc=class(tdbgrid);
procedure buttion1click();
begin
table1.first ;
table1.moveby(2);
tabc(dbgrid1).col:=3;
label1.caption:=dbgrid1.selectfield.asstring;
end




tabc(dbgrid1).row赋值好象不行,只能用moveby了
 
type
tabc=class(tdbgrid);

这一句怎么好象不行,声明不了变量,总出错误提示.不知道是怎么回事,所以后面的语句也没办法试了.
请再解释以下.
 
TStringGrid(DBGrid1).Col:=
TStringGrid(DBGrid1).Row:=
试试
 
杜宝:
照您说的.例如:
TStringGrid(DBGrid1).Col:=3;
TStringGrid(DBGrid1).Row:=2;
然后怎么引用这个单元格呢?怎么才能在另一个edit1中显示这个单元格中的内容呢?
 
如果你是达到这一点:就是用鼠标点一下,edit中显示内容的话,采用以下办法:
edit1.Text := DBGrid1.Columns[2].Field.asstring;
即可,如果你点击第一行,则显示第一行第三列内容。
 
如果你是在光标定位后取值,可直接用:
edit1.text := DBGrid1.SelectedField.asstring;

可以取出的/没有必要申明Tabc = class(Tdbgrid);
 
在浪里白条的基础上


table1.first ;
table1.moveby(2);
tabc(dbgrid1).col:=3;
label1.caption:=dbgrid1.columns[0].field.asstring;
 
type
tabc=class(tdbgrid);
怎可能没法声明的呢?应加在var form1:tform1;的前面
 
下可实现:edit1.text:=table1.fields[n].asstring;
这是很常用的方法哦。
功能就是将当前段的的第n个记录的字符值显示在edit中。当然你的那个记录不是string型
就不是用asstring,别的类型看看帮助就是了
例如实现一个功能,当你双击dbgrid的某一段时,弹出另外一个窗口form2,在form2中
用edit来显示该段的所有内容:
procedure tform1.dbrgid1dbclick(shend:tobject);
begin
form2.show;
form2.edit1.text:=table1.fields[0].asstring;
form2.edit2.text:=table1.fields[1].astring;
...
end;
你试一下就知道是什么回事了
 
还有一点疑惑:
用这条语句是可以将某个单元格中的内容显示出来:
edit1.Text := DBGrid1.Columns[2].Field.asstring;
如果我想将某个edit中的内容写入到这个单元格中,该怎么办?这个单元格的字段不是
表中的字段,是另外加上去的.
 
谢谢大家。
 
可以用ttable的字段编辑器,双击ttable,把原来的都加上,再新建一个
 
谢谢大家捧场!!
 
后退
顶部