Delphi 如何在DevExpress QuantumGrid(VCL)中的onCustomDrawCell事件中获取列索引

Delphi 如何在DevExpress QuantumGrid(VCL)中的onCustomDrawCell事件中获取列索引,delphi,devexpress,vcl,Delphi,Devexpress,Vcl,在我的应用程序中,我需要以不同的颜色共同绘制一些网格列(不完全是行)。 如何从TcxGridTableDataCellViewInfo变量获取当前列id 谢谢。您可以使用AViewInfo.Item.Index 或者,您可以为每个列分配不同的OnCustomDrawCell处理程序,而不是为视图分配单个处理程序。这样就不需要区分列。示例: procedure TFrmBestellingen.grdRequestDBTableCustomDrawCell( Sender: TcxCustom

在我的应用程序中,我需要以不同的颜色共同绘制一些网格列(不完全是行)。 如何从TcxGridTableDataCellViewInfo变量获取当前列id


谢谢。

您可以使用AViewInfo.Item.Index

或者,您可以为每个列分配不同的OnCustomDrawCell处理程序,而不是为视图分配单个处理程序。这样就不需要区分列。

示例:

procedure TFrmBestellingen.grdRequestDBTableCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;AViewInfo:   
  TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  varValue: Variant;
begin
  inherited;
  // Which column must i paint: Paint on column <TcxGridDbColumn>
  if (AViewInfo.Item.Index = <TcxGridDbColumn>.Index) then
  begin
    // Get Value to compare if it is 100
    varValue:=AViewInfo.GridRecord.Values[<TcxGridDbColumn>.Index];
    if (Not VarIsNull(varValue)) and
       (varValue=100) then
    begin
      ACanvas.Font.Style:= [fsBold];
      ACanvas.Brush.Color:= clSilver;
    end;
  end;
end;
过程TFrmBestellingen.grdRequestDBTableCustomDrawCell(
发件人:TcxCustomGridTableView;ACanvas:TcxCanvas;AViewInfo:
TcxGridTableDataCellViewInfo;变量ADone:Boolean);
变量
变量值:变量;
开始
继承;
//我必须画哪根柱子:在柱子上画
如果(AViewInfo.Item.Index=.Index),则
开始
//如果值为100,则获取要比较的值
varValue:=AViewInfo.GridRecord.Values[.Index];
如果(不是VarisAll(varValue))和
(varValue=100)然后
开始
ACanvas.Font.Style:=[fsBold];
ACanvas.Brush.Color:=clSilver;
结束;
结束;
结束;

如果您只想更改颜色,则不需要所有者绘图。使用cxStyles。