DBGrid动态添的列不能手动输入,而且取不到值

DBGrid动态加的列不能手动输入,而且取不到值
procedure TFormGzffmxb.FormShow(Sender: TObject);
var
  dbColumn: TColumnEh;

        dbColumn:=DBGridEh1.Columns.Add;
        dbColumn.Index:=DBGridEh1.Columns.count-1;
        dbColumn.Title.Caption:=FieldByName('qm').AsString;
        dbColumn.FieldName:='je_'+FieldByName('bh').AsString;
        dbColumn.Width:=84;
        dbColumn.ReadOnly:=False;//这里不能手动输入

for i :=0 to DBGridEh1.Columns.count-1 do
begin
  ShowMessage(DBGridEh1.Fields[i].FieldName);//动态加的列在这里取不到值

我用的控件是DBGridEh,DBGrid也一样取不到值,为什么,怎么改?
------解决方案--------------------
也遇到这样的问题,帮顶。
------解决方案--------------------
DBGrid动态添的列不能手动输入,而且取不到值
------解决方案--------------------
dbColumn.FieldName:='je_'+FieldByName('bh').AsString;这句有误。
你如果换成:dbColumn.FieldName:='bh';肯定正确。但不是你所要的。
这个应该用“计算字段”。
比如:新加一字段xbh,让它的值='je_'+FieldByName('bh').AsString就行了(实际不是这样写)。
双击ADOTable1调出字段编辑器,再新加字段就可以调出计算字段的编辑窗口。