2016-04-28 39 views
0

TGridセルにデータを入力する際に​​いくつかの問題がありますが、TGridセルにデータを挿入する方法についての解説があります。私はStringGridを使用していたときにC++ Builderで、より正確に言うと、私は最初の行の2列目の「Hello World」メッセージのセルに挿入されますC++ BuilderまたはDelphiでTGridセルにデータを入力する方法

StringGrid1->Cells[1][0] = "Hello world"; 

を使用することができます。私はTGridでどうやって同じことをすることができますか? TCheckColumnはどのように使用できますか?私は良い文書を見つけることができないので、多くの困難を抱えています。
私は探していますが、どこにでもこのガイドはありません。

+0

http://docwiki.embarcadero.com/CodeExamples/Berlin/en/TGrid_(Delphi)[FireMonkeyのの – sddk

+0

可能な重複:エンバカデロC++ BuilderのXE3にTGrid使い方](http://stackoverflow.com/questions/15543698/firemonkey-tgrid-usage-on-embarcadero-c-builder-xe3) –

+1

これは私をたくさん助けました[MonkeyStyler](http://monkeystyler.com/guide/ TGrid) – nolaspeaker

答えて

0

TL; DR:
データは独自のデータ構造に格納し、表示されたグリッドにOnGetValueイベントで渡す必要があります。


私はコメントで@nolaspeakerによって提供さlink to MonkeyStylerで答えを見つけました。

TGridは内部的にデータを格納しません。

自分でデータを保存する必要があります。グリッド内のセルが表示されると、OnGetValue(Sender: TObject; const Col, Row: Integer; var Value: TValue)イベントが発生します。

このためにイベントハンドラを実装し、指定されたセルのデータを返します。

たとえば、最初の列のすべてのセルに "hello"と2番目の列のすべてのセルに "world"のみを表示する非常に単純なグリッドがあるとします。
あなたOnGetValueイベントは次のようになります。

procedure MyOnGetValueHandler(Sender: TObject; const Col, Row: Integer; var Value: TValue); 
begin 
    if Col = 0 then 
    Value := 'hello' 
else 
if Col = 1 then 
    Value := 'world'; 
end; 
関連する問題