gpt4 book ai didi

delphi - 使用一些行颜色扩展 DBGrid

转载 作者:行者123 更新时间:2023-12-03 15:48:48 27 4
gpt4 key购买 nike

我想扩展 DbGrid 功能以在奇数行和偶数行上添加颜色。所以我写了这个

procedure TGridx.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
var
row : Integer;
begin
inherited;
row := Self.DataSource.DataSet.RecNo;
if (row mod 2 = 0) then
Self.Canvas.Brush.Color := FColor1 //some color
else
Self.Canvas.Brush.Color := FColor2; //some color

end;

我做错了什么?

最佳答案

您想要的事件称为DBGridDrawColumnCell,您需要决定是否打开或关闭DefaultDrawing属性,以及处理DBGridDrawColumnCell的方式相应地改变。对于您的情况,您只需设置颜色,但将 DefaultDrawing 保留为 true,并且不执行任何其他 canvas.Text 或 GDI 绘图。

我最近问的一个问题here表明在较新的 Delphi 版本(2010、Xe、Xe2)中,当在 OwnerDraw 事件中更改 Canvas 属性时,有时还需要为 TDBGRID 和 TListView 调用 Canvas.Refresh,但这不适用于 Delphi 7.

关于delphi - 使用一些行颜色扩展 DBGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620788/

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