Delphi控件cxGrid 如何动态创建列?

方法一:

var i: Integer;   
  Column: TcxGridDBColumn;   
  cxview: TcxGridDBTableView;     
begin   
  cxview := Self.Levels[0].GridView as TcxGridDBTableView;   
  if cxview.DataController.DataSource <> nil then   
    if cxview.DataController.DataSource.DataSet <> nil then   
    begin   
      cxview.ClearItems;   
      for i:=0 to  cxview.DataController.DataSource.DataSet.FieldCount-1 do    
        begin   
         Column := cxview.CreateColumn;   
         Column.DataBinding.FieldName := cxview.DataController.DataSource.DataSet.Fields[i].FieldName;   
         Column.PropertiesClass := TcxTextEditProperties;   
      end;   
    end;   
end;  

方法二、

for i := 0 to Query.FieldCount - 1 do   
begin   
  cxGrid.CreateColumn;   
  cxGrid.columns[i].DataBinding.FieldName := Query.Fields[i].displayName;   
  cxGrid.Columns[i].Caption := XXXX;   
  cxGrid.Columns[i].Width   :=80;   
end;

方法三、

procedure TFrmRuleEdit.CreateCols;
var
Column: TcxGridDBColumn;
begin
cdsPowerPrj.First;
while not cdsPowerPrj.Eof do
begin
Column := viewPower.CreateColumn;
Column.Caption := cdsPowerPrj.FieldByName(description).Text;
Column.DataBinding.FieldName := cdsPowerPrj.FieldByName(powerName).Text;
Column.PropertiesClassName := TcxCheckBoxProperties;
Column.Width := 50;
cdsPowerPrj.Next;
end;
end;

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...