Firemonkey: стилизация tGrid или альтернативных компонентов Grid / List (Virtual) - PullRequest
7 голосов
/ 03 ноября 2011

Я пытаюсь создать свое первое приложение на основе FireMonkey, и я врезался в стену.Единственный виртуальный элемент управления списком, который я могу найти, это tGrid.

Этот компонент довольно хорош, но я не могу понять, как его расширить или настроить.Я получаю, что есть столбец tCheckbox, столбец tImage и т. Д., Но что, если мне нужен ButtonColumn или что-то вроде этого?

Также я хотел бы стилизовать строку, основываясь на состоянии данных, которые она представляет.

Пример: если данные, представленные в строке, имеют «Error = True», они должны отображаться красным цветом.

Кто-нибудь сталкивался с подобной проблемой?Или нашли альтернативные компоненты виртуального списка / сетки?Или даже просто несколько советов по использованию компонента tGrid.Эти компоненты очень важны во всех приложениях базы данных, поэтому это должен быть довольно распространенный запрос.

Также как примечание, я не думаю, что TGrid поддерживает перетаскивание строк?

Я посмотрел на Firemonkey версию VirtualTreeView и Firemonkey и большие объемы данных

1 Ответ

6 голосов
/ 03 ноября 2011

Если вы посмотрите на источники, TCheckColumn составляет всего 15 строк кода.Если вам нужно создать свой собственный класс-потомок, это довольно просто.Это одно из решений, в противном случае вы можете динамически создавать некоторые компоненты в своих ячейках и затем приводить дочерние элементы при проверке реквизитов (TColumn.CellControlByRow () возвращает TControl, и дочерние элементы будут теми, которые вы поместили туда).

Поскольку вы хотите «стилизовать» вашу строку, я бы предложил вам написать собственный класс TColumn, даже если вы можете рисовать в событии OnPaint.

...