DELPHI里使用CXGRID给行加序号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DELPHI里使用CXGRID给行加序号相关的知识,希望对你有一定的参考价值。

语言:DELPHI表格控件:CXGRID界面如图:现在的问题是:在CXGRID新增一行时,在序号这一列按递增出现0001,0002,0003,序号列绑定了表字段名:XuHao.另外在删除时,比如删除了0002这一行,还剩下0001和0003,在新增一行时,需要从0004开始。请问该如何做

其实这个方法就是cxGrid范例中提供的,原范例在CellLevelMultiselectDemo目录下
把cxGridView里OptionsView选项中的两项修改成如下
OptionsView.Indicator = True
OptionsView.IndicatorWidth = 40//宽度
在customDrawIndicatorCell事件中填写
procedure TForm1.cxGrid1BandedTableView1CustomDrawIndicatorCell(
Sender: TcxGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
AIndicatorViewInfo: TcxGridIndicatorRowItemViewInfo;
ATextRect: TRect;
// AStyle: TcxStyle;
aCV:TcxCanvas;
begin
if not (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
Exit;
aCV:=ACanvas ;
ATextRect := AViewInfo.ContentBounds;
AIndicatorViewInfo := AViewInfo as TcxGridIndicatorRowItemViewInfo;
InflateRect(ATextRect, -2, -1);
if AIndicatorViewInfo.GridRecord.Selected then //这个if段是为了在行号处把把选中的行号跟别的区分开,可不用
begin
aCV.Font.Style := Canvas.Font.Style + [fsBold]; 
aCV.Font.Color := clRed;
end
else
begin
 aCV.Font.Style := Canvas.Font.Style - [fsBold];
 acv.Font.Color := Canvas.Font.Color;
end;
Sender.LookAndFeelPainter.DrawHeader(ACanvas, AViewInfo.ContentBounds,
ATextRect, [], cxBordersAll, cxbsNormal, taCenter, vaCenter,
False, False, IntToStr(AIndicatorViewInfo.GridRecord.Index + 1),
// AStyle.Font, AStyle.TextColor, AStyle.Color);
acv.Font,acv.font.Color,acv.Brush.color );
ADone := True;
end;
参考技术A 用dbgrideh吧。。。自动的

以上是关于DELPHI里使用CXGRID给行加序号的主要内容,如果未能解决你的问题,请参考以下文章

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

delphi下的cxgrid的列值转换问题

Delphi cxGrid使用汇总

delphi10 cxgrid控件怎么啦出来

delphi cxgrid如何显示数据

跪求delphi 中cxgrid控件的用法,越详细越好