[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

    {
    >I am trying to change the color of specific cell in TStringGrid.
    >Whenever I change the color of TStringGrid.Color, then the whole thing
    >(TStringGrid) is changed to the given color.
    >
    >If there is no way for doing this, are there any ways to change the
    >font of the text only for the specific cell ?
    >

    This is off the top of my head:

    1.  You must set the DrawAutomatic property to False.
    2.  You must create a method for the OnDrawCell event.
    }

    The OnDrawCell event would look something like:

      var
        Text: array[0..255] of Char;
      begin
      StrPCopy (Text, StringGrid1.Cells[Row, Col]);
      if Col = 2 then
        StringGrid1.Canvas.Brush.Color := clYellow
      else
        StringGrid1.Canvas.Brush.Color := clWhite;
      ExTextOut (..., Rect.Left + 2, Rect.Bottom + 2, ..., Text, StrLen (Text));
      end;

    This will draw the third column yellow and all others
    white.

    Again the code and property names are off the top of my
    head.  If you have the VCL source, then take a look in
    the GRIDS.PAS file and you will see how the default
    OnDrawCell event uses the ExTextOut() function.  You
    could take the code from there and paste it into your
    source and then add the test for what color to draw the
    grid with.

    Best regards,
    Michael Vincze
    mav@asd470.dseg.ti.com

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]