Вверх ↑
Этот топик читают: Гость
Ответов: 8921
Рейтинг: 823
#31: 2023-11-20 17:14:48 ЛС | профиль | цитата
nesco, рад вас видеть, слышать и читать
Ну хотя бы раз в неделю обозначайте своё присутствие
карма: 19

0
Ответов: 306
Рейтинг: 26
#32: 2023-11-20 17:23:10 ЛС | профиль | цитата
nesco писал(а):
у всех стоит мой патч? Дело в том, что меня он стоит и ошибки с пропаданием чекбоксов я не вижу

Приветствую всех!
У меня стоит Patch_17-01-2023_RemoteAccessManager и проблем с чекбоксами у меня не было.
Так же у меня стоит AdjustControls и проблем с _OnBeforeLineChange и _OnLineChange тоже не было.
Была проблема с исчезанием строки но поправил заплаткой от Sla8a.
Есть ошибка, Нет события кликом мыши по тексту

Редактировалось 2 раз(а), последний 2023-11-20 17:29:26
карма: 2
0
Ответов: 2236
Рейтинг: 676
#33: 2023-11-20 17:23:52 ЛС | профиль | цитата
nesco, Привет! Тема про ошибку отрисовки поднята лишь потому, что envoy_sky притянул в тему старые файлы. А в файле на svn заплатка:
hiMTStrTbl.pas писал(а):
if CBvalue = 0 then exit;//Fix: Error draw checkbox after dbclik on empty area if Redaction = True (sla8a 2021.10.12)
решала эту проблему. Не смог найти тему, но это было поправлено в 2021 году судя по записи. Но этот fix испортил отработку событий _OnBeforeLineChange и _OnLineChange, почему собственно и поднял ТС эту тему (MTStrTbl события).
nesco писал(а):
подробнее объясни, что делает твоя первая правка из это темы? У меня что с ней, что без нее одинаково работает

Протестировать можно на схеме Gunta во втором посте этой темы.
-При выключенных чекбоксах, событие: CheckBox = false
-Начать редактировать любую строку
-Выйти из редактирования строки
-Событие _OnBeforeLineChange и _OnLineChange не будет
-if CBvalue = 0 then exit; не даст отработать событиям

Чтоб исправить события и не навредить отрисовки чекбоксов предлагаю вот такую правку в событиях _OnBeforeLineChange и _OnLineChange: hiMTStrTbl.pas.


Повторюсь у кого обновленный компонент из svn (rev.2404) чекбоксы отрисовываются нормально, но будет ошибка с событиями _OnBeforeLineChange и _OnLineChange. Если установить старый файл, то не будет ошибки с событиями _OnBeforeLineChange и _OnLineChange, но будет ошибка с отрисовкой чекбоксов.

nesco писал(а):
А с правой кнопкой на другой линии -- да, надо исправлять.
Подойдет моя правка выложенная выше или есть идея получше?

Редактировалось 14 раз(а), последний 2023-11-20 17:40:51
карма: 11

1
Голосовали:envoy_sky
Ответов: 306
Рейтинг: 26
#34: 2023-11-20 17:39:34 ЛС | профиль | цитата
https://forum.hiasm.com/topic/53169/0#p146673
Вот что то про onMouseUp

Редактировалось 1 раз(а), последний 2023-11-20 17:40:36
карма: 2
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#35: 2023-11-20 18:37:35 ЛС | профиль | цитата
sla8a писал(а):
Протестировать можно на схеме Gunta во втором посте этой темы.
-При выключенных чекбоксах, событие: CheckBox = false
-Начать редактировать любую строку
-Выйти из редактирования строки
-Событие _OnBeforeLineChange и _OnLineChange не будет
-if CBvalue = 0 then exit; не даст отработать событиям

Странно, но у меня работают эти события, с твоей правкой 2021.10.12, кстати
И код при CBvalue = 0 будет работать, тк 0 означает полностью выключенные чекбоксы, а состояние отключенного чекбокса -- 1, установленного -- 2
sla8a писал(а):
Подойдет моя правка выложенная выше или есть идея получше?

Да, пойдет пока как костыль, но отрабатывает нормально

--- Добавлено в 2023-11-20 18:46:57

Завтра обновлю на работе

Редактировалось 3 раз(а), последний 2023-11-20 18:46:57
карма: 22

0
Ответов: 2236
Рейтинг: 676
#36: 2023-11-20 19:01:07 ЛС | профиль | цитата
nesco писал(а):
0 означает полностью выключенные чекбоксы
О чем и речь, если выключить чекбоксы (событие CheckBox = false), то CBvalue всегда равен 0 и происходит выход из процедуры и событие не происходит.
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);//это событие не произойдет если отключены CheckBox-ы
end;

Редактировалось 2 раз(а), последний 2023-11-20 19:02:15
карма: 11

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#37: 2023-11-20 19:03:02 ЛС | профиль | цитата
Точно, эта фигня не будет работать при отключенных чекбоксах. Значит, эту правку тоже внесем
карма: 22

0
Ответов: 2236
Рейтинг: 676
#38: 2023-11-20 19:08:07 ЛС | профиль | цитата
В предложенном мной выше файле, вот такое решение:
Правка для срабатывания событий

procedure ThiMTStrTbl._OnBeforeLineChange;
var
dt: TData;
begin
if _prop_CheckBoxes then
begin
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)
end;
dt := Get(Idx);
_hi_OnEvent_(_event_onBeforeLineChange, dt);
end;

procedure ThiMTStrTbl._OnLineChange;
var
dt: TData;
begin
if _prop_CheckBoxes then
begin
if CBvalue = 0 then exit;//Fix: Error draw checkbox after dbclik on empty area if Redaction = True (sla8a 2021.10.12)
Control.LVItemStateImgIdx[idx] := CBvalue; //восстановим
end;
dt := Get(Idx);
_hi_OnEvent_(_event_onLineChange, dt);
end;
Но хорошо бы проверить, всё ли предусмотрел.
Редактировалось 2 раз(а), последний 2023-11-21 08:45:21
карма: 11

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#39: 2023-11-21 14:08:50 ЛС | профиль | цитата
А куда ты дел вот это в новом файле?


procedure ThiMTStrTbl._OnMouseDown;
begin
if getfredaction then Control.Perform(WM_KEYDOWN, 27, 0);//Fix: Error closing editing when right-clicking on the next line (sla8a 2023.11.17)
sel := Control.LVCurItem;
GMouse := true;
inherited;
end;
карма: 22

0
Ответов: 2236
Рейтинг: 676
#40: 2023-11-21 16:11:15 ЛС | профиль | цитата
Это в новом файле нет, так как проблему озвучили после того как выложил файл. Да и выложил отдельно кодом, чтоб протестировали.
карма: 11

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#41: 2023-11-21 22:44:51 ЛС | профиль | цитата
sla8a, ты тогда все добавь в файл, пусть тестят полную версию. Если все нормально, то я добавлю на SVN
карма: 22

0
Ответов: 2236
Рейтинг: 676
#42: 2023-11-22 14:20:20 ЛС | профиль | цитата
hiMTStrTbl.pas
карма: 11

1
Голосовали:strannik_nebes
Разработчик
Ответов: 26113
Рейтинг: 2126
#43: 2023-11-29 15:00:37 ЛС | профиль | цитата
Ну, что? Кто-нибудь тестировал? Добавлять будем исправления?
карма: 22

0
Ответов: 249
Рейтинг: 4
#44: 2023-11-29 16:35:58 ЛС | профиль | цитата
У меня всё норм вроде бы, кроме мыша при отпускании кнопки нет события и всё.
карма: 1

0
Ответов: 2236
Рейтинг: 676
#45: 2023-11-29 16:52:15 ЛС | профиль | цитата
nesco, думаю что проще добавить и если что, потом поправить, чем ждать пока все протестируют. Не так уж много сейчас активных тестеров.
карма: 11

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)