2012-11-09 5 views
3

이 질문을 전에 다른 question의 일부로 묻는 것을 보았습니다. 따라서 나만이 될 수는 없습니다. 새로운 FireMonkey2 HD 앱을 여는 경우 다음을 추가하십시오. TButton 및 TStringGrid를 클릭 한 다음 버튼에 클릭 이벤트를 추가하면 버튼을 클릭 할 때 그리드에서 아무 것도 발생하지 않습니다!Delphi XE3, Firemonkey2에서 TStringGrid 셀을 어떻게 업데이트합니까?

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;  

아이디어가 있으십니까? 추신 : 나는 또한 TStringGrid.OnGetValue를 사용하여 시도했지만 여전히 StringGrid에 아무 것도 표시하지 않습니다.

TStringGrid 소스 코드를 자세히 살펴보면 셀이 설정되지 않으므로 C가 nil입니다.

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; 

"버진"StringGrid에 열이 없으므로 어떻게 추가합니까?

답변

5

당신은 셀에 데이터를 추가하기 위해 TStringGrid에 적어도 열을 추가해야합니다, 당신은 런타임에서이 작업을 수행 할 수 있습니다 ...이 rowCount 속성 승 r에 +는하지만 COLCOUNT은 읽기 전용

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

또는 디자인 시간에이 항목 디자이너

enter image description here

+0

찰흙을 사용! 고맙습니다 ... 웹 예제에서 그 정보를 볼 수 없었습니다. – sergeantKK

+0

그렇다면 아이템 디자이너는 어디에 있습니까? 나는 이것에 대한 다른 문서를 두 번 클릭하는 것 외에 다른 것에 대해서는 알지 못한다. –