[Overview][Classes][Procedures and functions][Index] Reference for unit 'fpg_grid' (#fpgui)

TfpgStringGrid.OnDrawCell

This event allows you to do custom painting of grid cells

Declaration

Source position: fpg_grid.pas line 162

published property TfpgStringGrid.OnDrawCell;

Description

ARow and ACol parameters should be obvious - they point to the cell being drawn. ARect is the boundaries of the Cell being painted. AFlags contain some state information about the grid. eg: Has the grid got focus, has the cell got focus etc. ADefaultDrawing is set to True by default, which means the grid will take care of painting the cell text for you (taking into account layout and alignment settings of each column). If you set this to False, then you need to paint the text yourself.

procedure TMainForm.StringGridDrawCell(Sender: TObject; const ARow,
  ACol: Integer; const ARect: TfpgRect; const AFlags: TfpgGridDrawState;
  var ADefaultDrawing: boolean);
begin
  // two rows with different background color
  if (ARow = 7) or (ARow = 8) then
  begin
    if ((gdSelected in AFlags) and (gdFocused in AFlags)) or
       (gdSelected in AFlags) then
      Exit; // we want select cel to be painted as normal
    // If we got here, we must do some painting. The background first.
    StringGrid.Canvas.Color := clOrange;
    StringGrid.Canvas.FillRectangle(ARect);
    // NOTE: We want the grid to take care of the drawing of the text, which
    //  handles text layout and alignment, so we MUST NOT set the
    //  ADefaultDrawing to False. If we do, we need to handle text painting
    //  ourselves.
  end;
end;

See also

fpg_basegrid.TfpgDrawCellEvent


Documentation generated on: 2013-04-29