我们知道双击组件Table会打开一个字段编辑器(Columns edit),在这个编辑器里能选择增加所有字段和建立新字段的两种主要功能,但这都要在设计期事先设定的;如果在运行期时,怎样用代码实现和以上同样的功能。怎么写代码?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        oField :TField;
    begin
        Table1.Close;
        SetHsxmBrowse(Table1);
        Table1.Open;
    end;procedure TForm1.SetHsxmBrowse(oDataSet: TDataSet);
    var oField :TField;
    begin
      //设置自定义附加字段
    with oDataSet.FieldDefs.AddFieldDef do
    begin
    Name := 'LAST_NAME';
          DataType := ftString;
          Size := 20;
        oField :=CreateField(oDataSet);
    end;
    end;
      

  2.   

    Var
      Vfield:Tstringfield;
    begin
      VField := TStringField.Create(Self);
      Vfield.FieldName := 'a';  //这地方写你要加的字段的实际名字就是数据 as 后的名字
      Vfield.Name := ADOQuery1 .Name + Vfield.FieldName;
      Vfield.Index := ADOQuery1 .FieldCount;
      Vfield.DataSet := ADOQuery1 ;
      ADOQuery1 .FieldDefs.UpDate;
      ADOQuery1 .Open
    这是动态删除 
    var
      C: TComponent;
    begin
      C := FindComponent('ADOQuery1a');
      if not (TC = nil) then begin
        ADOQuery1.Close;
        C.Free;
        ADOQuery1.Open;
      end;