给uniGUI的表格控件uniDBGrid加上记录序号的列

uniDBGrid使用起来还是很方便的,但就是没有显示记录序号的功能,必须自己加,参照老外给的解决方案如下:

方案1:

1- 在UniDBGrid建一个第一列 (列的名字起“NO”)

2- 在 UniDBGrid事件 DrawColumnCell 下加如下代码

  1.  
    procedure ....Form.UniDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  2.  
     
  3.  
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
  4.  
    var
  5.  
      vDbGrid: TDBGrid absolute Sender;
  6.  
    begin
  7.  
     
  8.  
      if DataCol=0 then
  9.  
        vDbGrid.Canvas.TextOut(Rect.Left + 2
  10.  
                               , Rect.Top + 2
  11.  
                               , IntToStr(vDbGrid.DataSource.DataSet.RecNo));
  12.  
    end;

方案2:

       在UniDBGrid的ExtEvents事件下加如下代码:

sender.headerCt.insert(0,new Ext.grid.RowNumberer({text:'','auto',align:'center',menuDisabled:false}));

下面是效果图

欢迎加QQ:elily(910300653)一起交流学习uniGUI

原文地址:https://www.cnblogs.com/westsoft/p/10356091.html