使用样式在网格中使用cxgrid颜色编号

时间:2014-05-24 00:14:54

标签: delphi devexpress tcxgrid

我想将一个样式应用于列(在获取内容样式上),以便该列中的所有数字都颜色为所选样式。只是数字,没有别的。这意味着如果在文本短语中找到一个数字,它将变为彩色。这可能吗?

2 个答案:

答案 0 :(得分:2)

不确定。使用像

这样的东西
procedure TForm1.Column1StylesGetContentStyle(
  Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
  AItem: TcxCustomGridTableItem; var AStyle: TcxStyle);
var
  i: Integer;
begin
  if TryStrToInt(ARecord.Values[Column1.Index], i) then
    AStyle := cxStyle1;
end;

答案 1 :(得分:0)

这是粗略的代码,但应该让你朝着正确的方向前进。我认为它可能会在画布上略微重叠您的绘图,但您可以根据需要进行调整。您还需要进行调整,以便从字符串中解析出数字。

procedure TForm7.cxGrid1TableView1CustomDrawCell(Sender: TcxCustomGridTableView;
  ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
  var ADone: Boolean);
var Bounds : TRect;
begin
  Bounds := AViewInfo.Bounds;

  ACanvas.Font.Color := clRed;
  ACanvas.TextOut(Bounds.Left, Bounds.Top, '123');
  Bounds.Left := ACanvas.Canvas.TextWidth('123');

  ACanvas.Font.Color := clGreen;
  ACanvas.TextOut(Bounds.Left, Bounds.Top, 'abc');

  ADone := True;
end;