两个我必须马上解决的简单的问题:1.怎样判断在DBGrid控件上双击行的各个字段的内容2.怎样将查询结果保存到word文件中(50分)

  • 主题发起人 主题发起人 zlw
  • 开始时间 开始时间
Z

zlw

Unregistered / Unconfirmed
GUEST, unregistred user!
两个我必须马上解决的简单的问题:1.怎样判断在DBGrid控件上双击行的各个字段的内容
2.怎样将查询结果保存到word文件中
 
1、dbgrid不是有个ondoubleclick的事件吗。
2、参考一下/demo/ole下面的例子,很简单
 
1. fields[..].asstring,
or fieldbyname('columnname').asString or fieldbyname('columnname').asInteger

2.aggree with snake
 
对不起,我想更正一下,在第一个问题中,我当时想知道的是你双击的是第几行,并且我要得
到这一行所有字段的内容,麻烦你在告诉我一下,十分感谢!
 
行号对sql数据库如oracle是不知道的,对其它
数据库可以用table.recno
 
刚好也碰到问题1,同意jqw的观点,补充一点,如果DbGrid对应Query,也可用Query1.RecNo.
 
获得grid中的行的信息可以用如下代码。但保存到WORD文件中比较麻烦。DELPHLI
支持的文件类型只有TEXT、RTF和无文件类型。保存到WORD中要调用OLe组件。
方法吗。。。。。。小弟才疏学浅。^^

procedure TForm1.DBGrid1DblClick(Sender: TObject);
var s:array of Variant;
i:integer;
begin
i:=0;
setlength(s,dbgrid1.fieldcount);
while i<>dbgrid1.FieldCount do
begin
s:=dbgrid1.Fields.AsVariant;
i:=i+1;
end;

end;
 
To zlw 、lcdjj 两位大虾:
双击 DBGrid 肯定会把数据集的记录指针移动到当前行啊,所以在 OnDblClick 事件里直接
取数据集字段的内容是正确的做法。
要想知道双击的是第几行,需要访问 TCustomGrid 的 Protected 属性: Row 、Col。
TDBGrid 的间接父类是 TCustomGrid,但是 Col 和 Row 属性被定义成 Protected,外部
无法访问,一般只能定义 TDBGrid 的一个子类,然后把这两个属性 Published 出来。
Ok ?
From: BaKuBaKu
 
to BaKuBaKu:
肯定不行
 
多人接受答案了。
 
后退
顶部