データベースからデータを読み取り、Firemonkey の TGrid を使用してテーブルとして表示するツールを構築しようとしています。TCheckColumn や TPopupColumn などのさまざまな種類の列を使用する必要がありますが、C++ Builder でそれらを使用する方法に関する適切なガイドや例が見つかりません。
とにかく、TGrid のイベント onGetValue でセルの値を設定する TStringColumn,TProgressColumn の使用法を理解することができました。
タイプ TCheckColumn、TImageColumn、および TPopupColumn の列の値を設定する方法を知っている人はいますか?
ありがとうダニエレ
- -アップデート - -
TProgressColumn を使用することができました。これは、フォームのコンストラクターで行うことです。
// TStringColumn
Grid1->AddObject(new TStringColumn(this));
// TCheckColumn
TCheckColumn* c = new TCheckColumn(this);
Grid1->AddObject(c);
// TPopupColumn
// list of values
TStringList * l = new TStringList(NULL);
l->Add(L"First");
l->Add(L"Second");
l->Add(L"Third");
TPopupColumn* p = new TPopupColumn(this);
// adding the list to the PopupColumn
p->Items = l;
Grid1->AddObject(p);
// TProgressColumn
Grid1->AddObject(new TProgressColumn (this));
Grid1->RowCount = 3 ;
これは Grid1GetValue メソッドです。
// TStringColumn
if(Col == 0) Value = TValue::From<String>(Row);
// TCheckColumn !! Can't make it work
if(Col == 1) Value = TValue::From<Boolean>(true);
// TPopupColumn
if(Col == 2) Value = TValue::From<int>(2);
// TProgressColumn
if(Col == 3) Value = TValue::From<double>(50.0);
- -アップデート - -
メソッド OnSetValue を使用して列の値を保存した場合
void __fastcall TForm1::Grid1SetValue(...)
{
if(Col == 1) check = Value;
}
次に、メソッド OnGetValue で設定します。
void __fastcall TForm1::Grid1GetValue(...)
{
// TCheckColumn !! Can't make it work
if(Col == 1) Value = check;// TValue::From<Boolean>(true);
}
1 つのチェックボックスをクリックすると、他のすべてのチェックボックスの状態が変わります。したがって、コンポーネントは正しく機能します...ここでのポイントは、Value を正しい方法で true または false に設定する方法です。