DELPHI里使用CXGRID给行加序号

DELPHI里使用CXGRID给行加序号,第1张

其实这个方法就是cxGrid范例中提供的,原范例在CellLevelMultiselectDemo目录下

把cxGridView里OptionsView选项中的两项修改成如下

OptionsView.Indicator = True

OptionsView.IndicatorWidth = 40//宽度

在customDrawIndicatorCell事件中填写

procedure TForm1.cxGrid1BandedTableView1CustomDrawIndicatorCell(

Sender: TcxGridTableViewACanvas: TcxCanvas

AViewInfo: TcxCustomGridIndicatorItemViewInfovar 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

两种方法,一种是使用计算字段。根据自己的规则,用RecNo来定义行号

二种是使用组件的特殊功能,如cxgrid中,可以随意添加一列,在OngetDisplayText句柄中根据RecordIndex来获取行号。怎么用看楼主喜好了

双击“cxgrid”后,d出界面;右半部的窗口有个“Sunmmary”标签项,点击“Add”,会添加一行TxcGridDBTableSunmmaryItem项,在左边的属性栏中找到“Column”选择要进行合计的字段。再找到“Kind”的属性,选择Sum/Max/Min/average你想要的合计类型。Format属性是格式化你合计后显示的结果例如0.000 就是保留3位小数。另外双击“cxgrid”后,再属性栏中找到“optionview”属性,里面有个“Foot”选项设置为True


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11506351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存