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...