А по вопросу данных - SQLQuery это и есть данные, полученные с помощью запроса находящиеся в памяти в вашей программы. А так ещё добавляется ненужное копирование. И ещё плюсик SQLQuery - с помощью его легко делается редактирование этих данных - достаточно определить запросы на изменение данных.
Основной посыл моего ответа был в том, что не нажно делать лишний код - обычно компоненты уже предоставляют требуемый вам функционал из коробки. Ну можно с помошью обработчиков чуть чуть переопределить поведение.
А в вашем примере всё как будет из мира питона или ещё чего подобноно - в котором никто не умеет нормально с БД общаться и приходится кучу обвязок писать чтобы оно хоть как-то шевелилось.
Когда я обращался за помощью в группу Lazarus в телеге, я обратился туда с этим примером
https://devlaz.ru/lazarus_sqlite/ . Моих знананий нехватало, что бы сделать так: при изменении ячейки в гриде (мне нужно редактировать прям в gride, без отдельных форм редактирования), внести изменения в таблицу sql. Я прям жутко тупил. Пример порвали в клочья, говоря о том что это неправильно и что нужен dataset для нормальной работы. Я попросил простой пример что бы увидить как это делать правильно для простых задачах. Получил пример примерно такого взаимодействия с БД, как вы видите. После Ваших слов я теперь вообще перестал понимать, для чего тогда вообще нужен memdataset?
Может достаточно метода RxDBGrid.OnGetCellProps?
Переписал код на данный метод, но так и не получилось решить проблему, все равно перерисовка происходит только при смене фокуса. Думаю повешу на данном этапе кнопку, при нажатии которой будет происходить применения форматирования в grid, как временное решение).
Вы уж извините, я буду иногда приставать с вопросами. Сильно не серчайте, если они будут глупами.