zoukankan      html  css  js  c++  java
  • 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;  

    方法一的补充

    procedure CreateDynamicCols;
      var
        i, B_index: Integer;
      begin
        with BTVgather.Bands.Add do
        begin
          Caption := lcb1.Text;
          Position.ColIndex := 2;
        end;
    
        for i := 4 to dsgather.DataSet.FieldCount - 1 do
        begin
          with BTVgather.Bands.Add do
          begin
            Position.BandIndex := 2;
            B_index := Index;
            Caption := dsgather.DataSet.Fields[i].FieldName;
            with BTVgather.CreateColumn do
            begin
              Position.BandIndex := B_index;
              Caption := dsgather.DataSet.Fields[i].FieldName;
              DataBinding.FieldName := dsgather.DataSet.Fields[i].FieldName;
              PropertiesClassName := 'TcxCurrencyEditProperties';
              TcxCurrencyEditProperties(Properties).DisplayFormat := ',0.00;-,0.00';
              Width := 80;
    //还可以绑定一个事件 OnGetDisplayText := Self.OnGetDisplayText;
    end; end; end; if BTVgather.Bands[2].ChildBandCount = 1 then BTVgather.Bands[2].Width := 90 else BTVgather.Bands[2].Width := BTVgather.Bands[2].ChildBandCount * 90; 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;
  • 相关阅读:
    elasticsearch 插件 大全
    ElasticSearch 服务搭建
    限制玻尔兹曼机(Restricted Boltzmann Machine)RBM
    卷积神经网络
    [转]MATLAB cell数据类型
    [转]matlab语言中的assert断言函数
    [转]matlab中squeeze函数的用法,numel的用法
    Sparse autoencoder implementation 稀疏自编码器实现
    MATLAB中的randi函数
    可视化自编码器训练结果&稀疏自编码器符号一览表
  • 原文地址:https://www.cnblogs.com/westsoft/p/10346758.html
Copyright © 2011-2022 走看看