Показать сообщение отдельно
  #4  
Старый 02.07.2010, 01:21
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Вот так, наверное, лучше. Тем более, нужно же, чтобы ячейка заливалась цветом, а не цвет текста менялся.
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  X: Integer;
begin
  if TryStrToInt(StringGrid1.Cells[ACol, ARow], X) and (X mod 2 = 0) then
    with StringGrid1.Canvas do
    begin
      Brush.Color := clYellow;
      FillRect(Rect);
      TextOut(Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[ACol, ARow]);
    end;
end;
А такие приемчики как
Код:
(Sender as TStringGrid).Cells[ACol, ARow]
нужны, когда одна процедура является обработчиком события сразу для нескольких StringGrid'ов.
Ответить с цитированием