DBGrid的用法?(30分)

  • 主题发起人 主题发起人 wp531
  • 开始时间 开始时间
W

wp531

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,有个问题难住小弟了:
怎样使DBGrid.Columns[1]的下拉列表里包含另一个表的全部字段?
代码如下:
//DBGrid1.Columns[1].InheritsFrom(TListbox);
for i:=0 to Form1.Query1.RecordCount-1 do
DbGrid1.Columns[1].PickList:=Form1.Query1.fields.fieldname;
错误提示:List index out of bounds(0)
 
只有一条一条的往里面加了。
 
DbGrid1.Columns[1].PickList.Add(Form1.Query1.fields.fieldname)
试试看?
你的PICKLIST根本就没东西,你怎么可以直接使用呢?
PICKLIST实际上是TSTRINGS,其用法是一样的,你怎么不多动脑子?
 
To:hpretty
问题解决了一半了,现在问题是为什么只能加四个字段,其实有28个字段,用Combobox
就可以全部加上。
 
用DbGrid1.Columns[1].PickList.add(Form1.Query1.fields.fieldname)
 
可在query1中新增一个字段,类型是lookup,再把它与你要在picklist显示的字段连接,
在dbgrid中显示这个新增的字段,就可以了。
 
大家好,有个问题难住小弟了:
怎样使DBGrid.Columns[1]的下拉列表里包含另一个表的全部字段?
代码如下:
//DBGrid1.Columns[1].InheritsFrom(TListbox);
for i:=0 to Form1.Query1.RecordCount-1 do
DbGrid1.Columns[1].PickList:=Form1.Query1.fields.fieldname;
错误提示:List index out of bounds(0)

在上面的代码中,你的循环变量I是QUERY1的记录数,
而你在循环体里用QUERY1。FIELD。FIELDNMAE这样肯定会抛出异常,
除非你的记录数刚好和字段数相同。
应该是:for i:=0 to Form1.Query1.fieldcount-1 do
DbGrid1.Columns[1].PickList:=Form1.Query1.fields.fieldname;
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
767
import
I
I
回复
0
查看
672
import
I
I
回复
0
查看
597
import
I
后退
顶部