Firemonkey: использование TGrid в Embarcadero C ++ Builder XE3

Я пытаюсь создать инструмент, который читает данные из базы данных и отображает их в виде таблицы, используя TGrid в Firemonkey. Мне нужно использовать разные типы столбцов, такие как TCheckColumn и TPopupColumn, но я не могу найти хорошего руководства или примера того, как их использовать в C ++ Builder.

В любом случае, мне удалось понять использование TStringColumn, TProgressColumn, устанавливающего значение ячейки в событии TGrid onGetValue.

Кто-нибудь из вас знает, как установить значение для столбцов типа 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);
}

После того, как я нажимаю один флажок, все остальные флажки меняют состояние. Таким образом, компонент работает правильно ... теперь дело в том, как правильно установить Значение в true или false.

Ответы на вопрос(3)

Ваш ответ на вопрос