Цитата:
Сообщение от Electronic_Arts
...у компонента нету события DrawColumnCell но есть DrawCell...
|
Что, реально как у обычной стрингсетки события что-ли?

Проприетарной поделки этой не видел, поэтому точно не знаю, извнт, но раз такое дело, может прокатит вариант как для StringGrid, вот пример из drkb:
Код:
procedure TfrmMain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: integer;
Rect: TRect; State: TGridDrawState);
Const //здесь определяем цвета.
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);
begin
//Если ячейка получает фокус, то закрасить её другими цветами
if (gdFocused in State) then begin
StringGrid1.Canvas.Brush.Color := clBlack;
StringGrid1.Canvas.Font.Color := clWhite;
end
else //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным
if StringGrid1.Cells[ACol, ARow] = '2' then
StringGrid1.Canvas.Brush.color := clPalered
else
StringGrid1.canvas.brush.Color := clwhite;
//Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column
//Естевственно это завит от того, есть у Вас title-Row/Columns или нет.
If (ACol > 0) and (ARow>0) then
begin
//Закрашиваем бэкграунд
StringGrid1.canvas.fillRect(Rect);
//Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д..
StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
end;
end;
З.Ы. Тут на одном форуме подсказали что у DBAdvGrid за это отвечает событие OnGetCellColor и в нём должно быть такое
Код:
...
with (Sender as TDBAdvGrid) do
if Cells[ACol,ARow] = '1' then ABrush.Color:= clYellow
else
ABrush.Color:= clGreen;
...
жаль что проверить не могу