Grid

Модератор: Модераторы

Ответить
Ivan_OK
незнакомец
Сообщения: 2
Зарегистрирован: 13.11.2019 15:53:50

Grid

Сообщение Ivan_OK »

Как выделить редактируемую ячейку в StringGrid заданным цветом?
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

Пример для выделенных ячеек. Для редактируемой ячейки может лучше использовать gdFocused вместо gdSelected, не проверял.
В обработчике события OnDrawCell:

Код: Выделить всё

procedure TFrameGrid.sgItemsDrawCell(Sender: TObject; aCol, aRow: Integer;
  aRect: TRect; aState: TGridDrawState);
var
  TH, TW: Integer;
  CellText: String;
begin
  CellText := sgItems.Cells[ACol, ARow];

  // подсветка выделенных ячеек
  if gdSelected in AState then
  begin
    sgItems.Canvas.Font.Color := clHighLightText;
    sgItems.Canvas.Brush.Color := clHighLight;

    sgItems.Canvas.FillRect(ARect);
    TH := sgItems.Canvas.TextHeight(CellText);
    TW := sgItems.Canvas.TextWidth(CellText);
    sgItems.Canvas.TextOut((ARect.Left + ARect.Right) div 2 - TW div 2, (ARect.Top + ARect.Bottom) div 2 - TH div 2, CellText);
  end; 
end;
Ответить