Вверх ↑
Разработчик
Ответов: 26163
Рейтинг: 2127
#1: 2024-12-27 02:40:27 ЛС | профиль | цитата
Окончательное решение:

procedure ThiMTStrTbl._OnSelState;
var
dt, Data: TData;
begin
dtNull(Data);
TRY
if (Newstate = 3) or (Newstate = 1) then
begin
if FEnableOnClick then _hi_OnEvent(_event_onClick, IdxFrom);
_hi_OnEvent(_event_onSelect, IdxFrom);
exit;
end;
if GMouse and (OldState = 0) then
begin
Sender.LVItemStateImgIdx[IdxFrom] := 0;
exit;
end;

if (Newstate = $3000) and ((OldState = $1000) or (OldState = $2000)) then
dtInteger(dt, 2)
else if (Newstate = $2000) and ((OldState = $1000) or (OldState = $3000)) then
dtInteger(dt, 1)
else if (Newstate = $1000) and ((OldState = $2000) or (OldState = $3000)) then
dtInteger(dt, 0)
else
exit;

dtInteger(Data, IdxFrom);
Data.ldata := @dt;

if GMouse then _hi_onEvent_(_event_onCheck, Data);

FINALLY
GMouse := false;
END;
end;

--- Добавлено в 2024-12-27 02:41:41

Если устроит, то пофиксю на SVN
карма: 22

0
Редактировалось 1 раз(а), последний 2024-12-27 02:41:41