Страница 1 из 1

Grid

СообщениеДобавлено: 21.11.2019 21:07:25
Ivan_OK
Как выделить редактируемую ячейку в StringGrid заданным цветом?

Re: Grid

СообщениеДобавлено: 25.11.2019 12:30:49
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;