К сожалению нет у DBGridEh события прорисовки строк. Для столбцов есть, а для строк нет. Поэтому можно использовать событие OnDrawDataCell. Поставь логическое поле первым в списке полей компонента доступа к таблице БД и попробуй этот вариант:
Код | var Form1: TForm1; FBoolValue: Boolean;
implementation
{$R *.dfm}
procedure TForm1.DBGridEh1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin if (Field.DataType=ftBoolean) and (Field.FieldName = 'BOOL') then FBoolValue := Field.Value;
if FBoolValue then DBGridEh1.Canvas.Brush.Color:=$0066FF99 else DBGridEh1.Canvas.Brush.Color:=$0000FFFF;
if Field.DataType<>ftBoolean then begin DBGridEh1.canvas.FillRect(Rect); if FBoolValue then DBGridEh1.canvas.Font.Color:=clBlue else DBGridEh1.canvas.Font.Color:=clBlack; DBGridEh1.canvas.TextOut(Rect.left+4, Rect.Top+1, Field.Value); end; end;
|
BOOL из моего примера замени на название твоего логического поля. |