TDBGrid有没有类似于TDataSet.FieldByName的方法(50分)

  • 主题发起人 主题发起人 ATZ
  • 开始时间 开始时间
A

ATZ

Unregistered / Unconfirmed
GUEST, unregistred user!
通过TDBGird.Columns[下标]可以访问某一列,但列的下标有可能会因为添加列或删除列
而改变,这样代码的可维护性就很差。
TDataSet.Fields也有类似问题,但是可以通过TDataSet.FieldByName来解决,因为名称
相对来说是稳定的。不知道TDBGrid有没有类似的通过名称来指定访问某一列的方法?
 
function DBGridColumByName(DBGrid: TDBGrid; const Name: string): TColumn;
var
i: Integer;
begin
Result := nil;
for i = 0 to DBGrid.Columns.Count - 1 do
if DBGrid.Columns.FieldName = Name then
begin
Result := DBGrid.Columns;
Break;
end;
end;
不一定就编译通过,看看应该能否明白

-----
http://www.8421.org
 
to 张无忌、hamsoft: 方法名称是什么?
 
没有,我知道的只能通过下标。
关注。(希望有人提出不通过下标的方法)
 
TdxDBGrid有这种方法:ColumnByFieldName。
 
DBGrid1.DataSource.DataSet.FieldByName
 
to onlyonekgx: 这样只能访问字段,而我要访问的是列
 
dbgrid1.selectedfield.fieldname
//前提是必须先选中一格。
 
to dlnew: 这样只能访问字段TField,而我要访问的是列TColumn
 
看来只有两个方法: 1. 自己写函数 (qdyoung的方法)
2. 改用第三方控件 (yourice的方法)
谢谢大家
 
多人接受答案了。
 
后退
顶部