Вверх ↑
Ответов: 2200
Рейтинг: 673
#1: 2015-05-12 00:58:44 ЛС | профиль | цитата
nesco, почему после выхода из редактирования строки (двойной клик по строке), пропадает флажек?
MTStrTbl:
Redaction = True
CheckBoxes = True
Тестовая схема:
Add(MainForm,3208517,266,203)
{
Width=385
Height=276
Position=1
link(onCreate,4746729:doEnum,[(306,223)(306,209)])
}
Add(MTStrTbl,3627423,455,189)
{
Left=10
Top=15
Width=350
Height=220
Name="MyTable"
Columns=#8:Материал|3:Вес|
Redaction=0
CheckBoxes=0
Grid=0
Point(onBeforeLineChange)
}
Add(StrList,12112024,301,147)
{
Strings=#8:Кокс;111|10:Стр-ка;202|7:FeSi;57|7:FeMn;88|0:|
}
Add(ArrayEnum,4746729,315,203)
{
link(onItem,6413393:doMT,[])
link(Array,12112024:Array,[])
}
Add(MST_RowAction,4441281,399,196)
{
MSTControl="MyTable"
}
Add(MT_String,6413393,357,196)
{
link(onResult,4441281:doRowAction,[])
}
Покопался в коде (не глубоко) намеков не нашел. Предположил что это "фича", если так, то возможно можно внести изменения:
hiMTStrTbl.pas

Добавить в private:
#pas
CBvalue: integer;
А в процедурах вначале сохраним значение, а после восстановим.
#pas
procedure ThiMTStrTbl._OnBeforeLineChange;
var
dt: TData;
begin
if _prop_CheckBoxes then CBvalue := Control.LVItemStateImgIdx[idx]; //сохраним
dt := Get(Idx);
_hi_OnEvent_(_event_onBeforeLineChange, dt);
end;

procedure ThiMTStrTbl._OnLineChange;
var
dt: TData;
begin
if _prop_CheckBoxes then Control.LVItemStateImgIdx[idx] := CBvalue; //восстановим
dt := Get(Idx);
_hi_OnEvent_(_event_onLineChange, dt);
end;
карма: 11

0