Firemonkey: użycie TGrid w Embarcadero C ++ Builder XE3

Próbuję zbudować narzędzie, które odczytuje dane z bazy danych i wyświetla je jako tabelę za pomocą TGrid w Firemonkey. Muszę używać różnych typów kolumn, takich jak TCheckColumn i TPopupColumn, ale nie mogę znaleźć żadnego dobrego przewodnika ani przykładu, jak ich używać w C ++ Builder.

W każdym razie udało mi się zrozumieć użycie TStringColumn, TProgressColumn ustawiającej wartość komórki w zdarzeniu TGrid onGetValue.

Czy ktokolwiek z was wie, jak ustawić wartość dla kolumn typu TCheckColumn, TImageColumn i TPopupColumn?

dzięki Daniele

---AKTUALIZACJA---

Udało mi się użyć kolumny TProgressColumn. To właśnie robię w konstruktorze formularza:

// 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 ;

a to jest metoda 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);

---AKTUALIZACJA---

jeśli zapisuję wartość kolumny za pomocą metody OnSetValue

void __fastcall TForm1::Grid1SetValue(...)
{
if(Col == 1) check = Value;
}

a następnie ustaw go metodą OnGetValue:

void __fastcall TForm1::Grid1GetValue(...)
{
// TCheckColumn  !! Can't make it work
if(Col == 1) Value = check;// TValue::From<Boolean>(true);
}

Po kliknięciu na jedno pole wyboru wszystkie pozostałe pola wyboru zmieniają stan. Zatem komponent działa poprawnie ... teraz chodzi o to, jak ustawić wartość na true lub false we właściwy sposób.

questionAnswers(3)

yourAnswerToTheQuestion