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

Posted westsoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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控件cxGrid 如何动态创建列?的主要内容,如果未能解决你的问题,请参考以下文章

delphi10 cxgrid控件怎么啦出来

如何在delphi里cxgrid单击某一个单元格弹出树形结构

DELPHI中的cxgrid,如何用代码实现表格内容居中显示,注意不是表头是内容

delphi cxgrid如何显示数据

三步轻松搞定delphi中CXGRID手动添加复表头(多行表头,报表头)

delphi cxgrid 控件如可实现展开一行记录看其明细