Показать сообщение отдельно
  #2  
Старый 03.12.2014, 08:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Нужен компонет StringGrid плюс его "родная" процедура DrawCell, для примера, похожая на эту из drkb
Код:
procedure TForm1.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 ACol = 2   //Вторая колонка будет зелёной , другие - ячейки красными 
   then StringGrid1.Canvas.Brush.color := clPaleGreen 
   else StringGrid1.canvas.brush.Color := clPaleRed; 

//Теперь закрасим ячейки, но только, если ячейка не 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;
Ответить с цитированием