Предложение по исправлению:
Для пользователей
1. Выделить на поле HiAsm компонент MTStrTbl (MT таблица строк) и нажать сочетание Ctrl+F. Должна открыться вкладка с кодом компонента (в вкладке будет написано: hiMTStrTbl).
2. Найти строку:
procedure ThiMTStrTbl._OnBeforeLineChange;
procedure ThiMTStrTbl._OnLineChange;
Нужно добавить две строки чтоб получилось вот так:
procedure ThiMTStrTbl._OnBeforeLineChange;
var
dt: TData;
begin
if _prop_CheckBoxes then CBvalue := Control.LVItemStateImgIdx[idx]; //сохраним
if CBvalue = 0 then exit;//Fix: Error draw checkbox after dbclik on empty area if Redaction = True (sla8a 2021.10.12)
dt := Get(Idx);
_hi_OnEvent_(_event_onBeforeLineChange, dt);
end;
procedure ThiMTStrTbl._OnLineChange;
var
dt: TData;
begin
if CBvalue = 0 then exit;//Fix: Error draw checkbox after dbclik on empty area if Redaction = True (sla8a 2021.10.12)
if _prop_CheckBoxes then Control.LVItemStateImgIdx[idx] := CBvalue; //восстановим
dt := Get(Idx);
_hi_OnEvent_(_event_onLineChange, dt);
end;
4. Закрыть вкладку с кодом компонента.
Важно: Если после тестирования результат вас не удовлетворит, проделайте тоже самое и удалите эти две строки.
Следите за темой и ждите обновления от автора компонента.
Для разработчиков
При двойном нажатии на пустую область таблицы срабатывает _OnBeforeLineChange и _OnLineChange. Первый заносит в CBvalue значение 0, а второй заносит это значение в Control.LVItemStateImgIdx[idx] что и убивает всю отрисовку флажков состояния. Нет смысла его перезаписывать, если редактирование не было.
Возможно есть и более лучшее решение для защиты от срабатывания данных событий чем предложенное мной, предложенное мной решение ошибок отрисовки не довало и блокирует событие _event_onBeforeLineChange и _event_onLineChange если нажатие происходит на пустое поле таблицы и редактирование не происходит.