How do you update TStringGrid cells in Delphi XE3, Firemonkey2

delphi, delphi-xe3, firemonkey

Solution

You must add at least a column to the `TStringGrid` in order to add data to the cells, you can do this in runtime

StringGrid1.AddObject(TStringColumn.Create(Self)); 

or in design time using the Items Designer

Problem

I've seen this question asked as part of another question before, so know it can't just be me...if I open a new FireMonkey2 HD app, add a TButton and TStringGrid, then add this to the button on click event, NOTHING happens in the grid when I click the button! ``` procedure TForm33.Button1Click(Sender: TObject); var i: Integer; begin for i:= 0 to 6 do begin StringGrid1.Cells[0,i] := 'Row:' + IntToStr(i); end; stringgrid1.UpdateColumns; stringgrid1.SetFocus; end; ``` Any ideas ? PS I've also tried using TStringGrid.OnGetValue and it still won't show anything in the StringGrid. Having looked further into the TStringGrid source code, C is nil so the Cells are never being set. ``` procedure TStringGrid.SetValue(Col, Row: Integer; const Value: TValue); var C: TColumn; begin C := Columns[Col]; if Assigned(C) then begin C.UpdateRowCount(RowCount); C.SetCells(Row, Value); end; ``` I appears there are no Columns in the "virgin" StringGrid, so how do you add them ? There is a r+w RowCount property but ColCount is readonly...

Original source