Цветные ячейки в DBGrid
Категория: Delphi/Pascal
2012-10-15 15:43:03
С DBGrids это делается намного проще. Здесь мы будем использовать событие "OnDrawColumnCell". Следующий пример разукрашивает ячейки колонки "Status" когда значение НЕ равно "a".
code: #delphi
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); const clPaleGreen = TColor($CCFFCC); clPaleRed = TColor($CCCCFF); begin If Column.FieldName = 'Status' then //Удалите эту линию, если хотете закрасить целую линию If Column.Field.Dataset.FieldbyName('Status').AsString <> 'a' then If (gdFocused in State) //имеет ли ячейка фокус? then dbgrid1.canvas.brush.color := clBlack //имеет фокус else dbgrid1.canvas.brush.color := clPaleGreen; //не имеет фокуса //Теперь давайте закрасим ячейку используя стандартный метод: dbgrid1.DefaultDrawColumnCell(rect,DataCol,Column,State) end;
автор: Alex Schlecht
Поделиться: