Mirror

Change fonts between columns in a TStringGrid (2) (Views: 100)


Problem/Question/Abstract:

How can I code the Fixed Row in Bold (font) style whereas Normal Rows in Normal style for TStringGrid component?

Answer:

You need to handle the OnDrawCell event.

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  Fmt: integer;
begin
  StringGrid1.Canvas.FillRect(Rect);
  {set bold for fixed cells, also set alignment}
  if gdFixed in State then
  begin
    StringGrid1.Canvas.Font.Style := [fsBold];
    Fmt := DT_SINGLELINE or DT_VCENTER or DT_CENTER;
  end
  else
    Fmt := DT_SINGLELINE or DT_VCENTER or DT_LEFT;
  DrawText(StringGrid1.Canvas.Handle, PChar(StringGrid1.Cells[ACol, ARow]), -1, Rect,
    Fmt);
end;

<< Back to main page