setting a grid's cell style

Two related questions for you:
1: Which is the best event to get back a grid's cell style such as bold,italic etc? I want a toolbar button to change its down state if the cell contains bold text for instance. I use the OnGetCellColor to change a colorselector drop down according to what the cell's colour state is but not sure of the correct event for this one. 
 
2: How do I set any cell's text to bold in the first place?
I've tried:
grid.ActiveCellFont.Style[grid.Col,grid.Row] := fsbold;  
and grid.FontStyles[grid.Col,grid.Row] := fsbold;
but none of these work.
Many thanks

1: Easiest is to set the color, font via the properties grid.Colors[], grid.FontStyles[], ... and read it back the same way.


2: The FontStyles is a set property, thus you would use: grid.FontStyles[col,row] :=  [fsBold];

Righto, I had left off the brackets around fsbold so that cured that problem.

My problem is understanding which of the events to use as there are so many in there. So presumably then I check the state of colour/styles etc all within the GetCellColor event?
 
I used this to make the button stay up or down when the cell is chosen:
 
procedure Tmain.gridGetCellColor(Sender: TObject; ARow, ACol: Integer;
  AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
begin
bold_btn.Down := (fsbold in grid.FontStyles[grid.Col,grid.Row]);
end;
It works fine.
I am digging through the pdf manuals, is there a detailed list of all the grid's events and their proper use somewhere I've missed?
cheers
 

So far so good until I try to read the cell's alignment.

If I try the logic I used for fsbold it doesn't work, ie:
 
procedure Tmain.gridGetAlignment(Sender: TObject; ARow, ACol: Integer;
  var HAlign: TAlignment; var VAlign: TVAlignment);
begin
center_btn.Down := (tacenter in grid.FontStyles[grid.Col,grid.Row]);
end;
 
How would I read the alignment of that cell so I can make the button go down depending on what the alignment is?