我有一个问题,我有一个带有一些数字的TStringList对象,以及我在我创建的某种json文本中的状态,例如:{' 8987436'' Sin documentar。&#39 ;,' 0',' 1'},{...},...
此文件可包含许多数据组。这工作得很好,这个信息我在DBGrid中显示,只有数字。
问题在于,当我尝试更改行的颜色时,只绘制添加到dbgrid的最后一个数字的颜色,并且我需要每个具有某种类型数字的行以黄色绘制,其他类型以红色绘制,其他种类的绿色和所有其他让它白色。另一个问题是,当我单击一行时,它会刷新dbgrid并再次以白色绘制它。
我创建了这个程序:
procedure TEmbarqueGeneracionEscaneoFRM.DBValidasDrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
if Pinta then
begin
with (Sender As TDBGrid).Canvas do
begin
brush.Color:=GridColor;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Column.Field.AsString);
end;
TDBGrid(sender).DefaultDrawColumnCell(Rect, Datacol, Column, State);
end;
Pinta := false;
end;
其中Pinta是一个变量,用于判断数字是否已绘制,而GridColor是一个TColor变量,其颜色将被绘制。
你有什么想法吗?
此致