Change the font color of a TStringGrid cell

I need to change the color of text in a TStringGrid cell in Delphi.

Just a cell. How can i do this?

+6
source share
1 answer

You can use the DrawCell event to draw the contents of the cell yourself.

 procedure TForm1.GridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var S: string; RectForText: TRect; begin // Check for your cell here (in this case the cell in column 4 and row 2 will be colored) if (ACol = 4) and (ARow = 2) then begin S := Grid.Cells[ACol, ARow]; // Fill rectangle with colour Grid.Canvas.Brush.Color := clBlack; Grid.Canvas.FillRect(Rect); // Next, draw the text in the rectangle Grid.Canvas.Font.Color := clWhite; RectForText := Rect; // Make the rectangle where the text will be displayed a bit smaller than the cell // so the text is not "glued" to the grid lines InflateRect(RectForText, -2, -2); // Edit: using TextRect instead of TextOut to prevent overflowing of text Grid.Canvas.TextRect(RectForText, S); end; end; 

(Inspired by this. )

+12
source

Source: https://habr.com/ru/post/900977/


All Articles