这可能是基本的,但我花了很长时间寻找示例代码来根据 Firemonkey 中数据库中的值更改字符串网格的行颜色。我有来自 MDB 的数据,没有问题,但需要该行具有某些颜色,即“1”=红色“2”=绿色等。我知道我必须以某种方式“OnApplyStyleLookup”访问样式元素?但在什么阶段。我已经看到了有关更改文本样式和颜色等的问题,但我正在为自己挖一个洞,试图进入“背景”元素并应用。任何帮助将不胜感激。 干杯 理查德 ...(Firemonkey 新手)
最佳答案
{OnDrawColumnCell event}
procedure OnDrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var
RowColor : TBrush;
begin
RowColor := Tbrush.Create(TBrushKind.Solid,TAlphaColors.Alpha);
{you can check for values and then set the color you want}
if Value.ToString = 'red' then
RowColor.Color := TAlphaColors.Red;
Canvas.FillRect(Bounds, 0, 0, [], 1, RowColor);
{ perform default drawing }
TGrid(Sender).DefaultDrawColumnCell(Canvas, Column, Bounds, Row,
Value, State);
end;
关于delphi - 根据数据值对 firemonkey stringgrid 上的单元格背景进行着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12889428/