Firemonkey: использование TGrid в Embarcadero C ++ Builder XE3
m попробуйте создать инструмент, который считывает данные из базы данных и отображает их в виде таблицы, используя TGrid в Firemonkey. Мне нужно использовать разные типы столбцов, такие как TCheckColumn и TPopupColumn, но я могуНе найти хорошего руководства или примера, как использовать их в C ++ Builder.
В любом случае мне удалось понять использование TStringColumn, TProgressColumn, устанавливающего значение ячейки в TGrid 's событие onGetValue.
Кто-нибудь из вас знает, как установить значение для столбцов типа TCheckColumn, TImageColumn и TPopupColumn?
спасибо Даниэле
---ОБНОВИТЬ---
Мне удалось использовать TProgressColumn. Это то, что я делаю в формеS конструктор:
// 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(Row);
// TCheckColumn !! Can't make it work
if(Col == 1) Value = TValue::From(true);
// TPopupColumn
if(Col == 2) Value = TValue::From(2);
// TProgressColumn
if(Col == 3) Value = TValue::From(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(true);
}
После того, как я нажимаю один флажок, все остальные флажки меняют состояние. Таким образом, компонент работает правильно ... теперь дело в том, как правильно установить Значение в true или false.