gpt4 book ai didi

delphi - 如何更改 tcxgrid 行的颜色

转载 作者:行者123 更新时间:2023-12-03 18:07:37 25 4
gpt4 key购买 nike

我想以不同的颜色显示 tcxgrid 中的一些行(取决于列值)。

我对其进行了更改,但在运行我的项目后它没有反射(reflect)在网格上。

procedure TfrmMessaging.cxGrid1DBTableView1CustomDrawCell(..);
Var
i : Integer;
begin
For i := 0 To cxGrid1DBTableView1.ViewData.RowCount - 1 Do
Begin
If cxGrid1DBTableView1.ViewData.Rows[i].Values[4] = '1' Then
Begin
cxGrid1.Canvas.Brush.Color := clRed;
End;
End;
end;

在上面的代码中,我使用了 tcxgrid 的 cxGrid1DBTableView1CustomDrawCell 事件。
提前致谢。

最佳答案

如果您使用的是 data-aware view (看起来)你需要使用 DataController而不是 ViewData获取记录。

TcxGridDBTableView 的 DevExpress 帮助中所述(粗体格式是我的):

The TcxGridDBTableView object represents the data-aware version of the grid Table View. It inherits all functionality from its ancestor, except for data binding settings. The DataController.DataSource property of the TcxGridDBTableView provides the connection between the View and a TDataSet or its descendant.



除此之外, OnCustomDrawCell事件为每个单元格触发,因此您不需要迭代行。

以下代码应该可以帮助您:
procedure TfrmMessaging.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if Sender.DataController.GetValue(AViewInfo.GridRecord.RecordIndex, 4) = '1' then
ACanvas.Brush.Color := clRed;
end;

关于delphi - 如何更改 tcxgrid 行的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com