动态给dbgrid添加列后,只显示空行,有几行数据就有几行空行
动态给dbgrid添加列后,只显示空行,有几行数据就有几行空行,哪里出问题了这是,谢谢!
DM.ADOshow_topic_patent.Active :=true ;
dbgrid1.CleanupInstance;
for i := 0 to DM.ADOtemplate.RecordCount - 1 do //把一个模板所有列添加在dbgrid
begin
column:=DBGrid1.Columns.Add ;
Column.FieldName:=DM.ADOtemplate.FieldByName( 'template_field ').AsWideString ;
end;
DM.ADOtemplate.next;
end;
dbgrid1.Refresh;
[解决办法]
这样应该是不行的
dbgrid必须有数据源,在有数据源的情况下只能新增一行
如果想增加多行,就的给一行中的某个列赋值才行
[解决办法]
看起代码没有问题,估计是动态设置的字段在DBGrid1连接的数据集中不存在。
[解决办法]
可能是动态生成列时,字段没连对·
[解决办法]
CleanupInstance
Do not call CleanupInstance directly. CleanupInstance is called automatically when the object instance is destroyed.
CleanupInstance releases all long strings and Variants. (It set long strings to empty and Variants to Unassigned.)
括號內重點,估計是出在這里吧,呵呵,瞎蒙的哦
[解决办法]
DM.ADOshow_topic_patent.Active :=true ;
DBGrid1.Columns.Clear;
if DM.ADOtemplate.Active then
begin
for i := 0 to DM.ADOtemplate.RecordCount - 1 do //把一个模板所有列添加在dbgrid
begin
column:=DBGrid1.Columns.Add ;
Column.FieldName:=DM.ADOtemplate.Fields.Fields[i].FieldName;
Column.Width:= 100;
end;
DM.ADOtemplate.next;
end;
end else
begin
showmessage( 'DM.ADOtemplate还未打开 ');
end;
你是不是数据集错了啊