3

この質問は以前に別の質問の一部として尋ねられたので、それが私だけではないことを知ってください...新しいFireMonkey2 HDアプリを開いたら、TButtonと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;    

何か案は ?PS 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に列がないようですが、どのように追加しますか?r + w RowCountプロパティがありますが、ColCountは読み取り専用です...

4

1 に答える 1

5

セルにデータを追加するには、少なくとも列を 1 つ追加する必要TStringGridがあります。これは実行時に行うことができます。

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

またはアイテム デザイナーを使用して設計時に

ここに画像の説明を入力

于 2012-11-09T14:41:37.860 に答える