DBGrid的问题(100分)

  • 主题发起人 darkblood
  • 开始时间
D

darkblood

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在程序运行过程中,增加dbgrid的columns,动态给dbgrid.columns.fieldname赋值
但是,dbgrid默认只有columns[0],也就是只有一条,应该怎么增加,我用dbgrid.columns.add
对吗?但是程序总报错,无法编译,请指教
 
纠正一下,可以编译,但是运行会出错,我断点跟踪过,columns.add没有增加columns的行数
 
dbgrid.columns.count:=dbgrid.columns.count+1;
dbgrid.columns[dbgrid.columns.count-1].fieldname:=query1.field[0];
 
dbgrid.columns.add 是增加列
dbgrid.columns.add增加列是可以的,不出错
 
荷塘新月,谢谢,不过编译的时候,出错,提示dbgrid.columns.count是read only ,不能赋值
[Error] main.pas(64): Cannot assign to a read-only property
 
var
AColumn: TColumn;
begin
DBGrid1.Columns.Clear;
AColumn := DBGrid1.Columns.Add;
AColumn.FieldName := '姓名';
end
 
begin
GetCustData;
for i:=1 to 2 do
DBGrid1.Columns.Add;
DBGrid1.Columns[0].FieldName:='CUST_NO';
DBGrid1.Columns[1].FieldName:='CUST_NAME';
DBGrid1.Columns[0].Title.Caption:='¿Í»§´úºÅ';
DBGrid1.Columns[1].Title.Caption:='¿Í»§Ãû³Æ';
end;
 
我一直是这么用的啊。
 
哦!!!有人回了,就是SWORD_LIU的方法。。
晚了一步。。
 
DBGrid1.Columns.Add;
好用啊!我刚试完,用的是d6
 
>DBGrid1.Columns[0].Title.Caption:='¿Í»§´úºÅ';
>DBGrid1.Columns[1].Title.Caption:='¿Í»§Ãû³Æ';

是什么??
 
碧血剑、sword_liu 回答都是对的!
以下是两种写法的代码
var
AColumn:TColumn;
i:integer;
begin
//写法一
DBGrid1.Columns.Clear;
AColumn := DBGrid1.Columns.Add;
AColumn.FieldName := '姓名';
AColumn := DBGrid1.Columns.Add;
AColumn.FieldName := '年龄';
//写法二
for i:=1 to 2 do
DBGrid1.Columns.Add;
DBGrid1.Columns[2].FieldName:='CUST_NO';
DBGrid1.Columns[3].FieldName:='CUST_NAME';
DBGrid1.Columns[2].Title.Caption:='编号';
DBGrid1.Columns[3].Title.Caption:='姓名';
 
应该没问题,仔细检查一下
 
顶部