1

一部のデータを TGrid セルに入力するのが難しいのですが、TGrid セルにデータを挿入する方法についてのコメント付きのコード例を教えてもらえますか? 私が使用できる StringGrid を使用しているときに C++ Builder でより正確にするには

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

これにより、最初の行の 2 列目のセルに「hello world」メッセージが挿入されます。TGrid で同じことを行うにはどうすればよいですか? また、TCheckColumn はどのように使用できますか? 適切なドキュメントが見つからないため、多くの困難があります。
私は探していますが、これに関するガイドはどこにもありません。

4

1 に答える 1

0

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


コメントで@nolaspeakerが提供する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;
于 2016-07-14T13:35:17.213 に答える