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

And*_*rey 4 delphi vcl devexpress

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

谢谢.

Uli*_*rdt 6

您可以使用AViewInfo.Item.Index.

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


Rav*_*123 5

例:

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;
Run Code Online (Sandbox Code Playgroud)