Цветные ячейки в DBGrid

С 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

Поделиться:

Похожие статьи: