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

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

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

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

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам