更改dbgrid delphi 5中某些行的颜色

时间:2015-07-29 15:12:23

标签: delphi-5 tdbgrid

我有一个问题,我有一个带有一些数字的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变量,其颜色将被绘制。

你有什么想法吗?

此致

0 个答案:

没有答案