nesco писал(а): Перевел в схеме селектор на Shift + ПКМ вместо DblClick. Вот это не понял ты к чему поменял?
nesco писал(а): ввел защиту от срабатывания onDblClick при включенном Redaction Ты добавил только защиту на вывод события, но сама таблица при включенном редактировании и группах ведет себя мягко сказать странно.
Вот тестовая схема:
Add(MainForm,10676448,217,231) { Width=802 Height=424 link(onCreate,15053014:doEnum,[]) } Add(MTStrTbl,6747634,609,238) { Width=786 Height=385 Align=5 Font=[MS Sans Serif,12,0,0,1] Name="myTable" Columns=#12:Название=400|12:Значение=120| Redaction=0 CheckBoxes=0 Alternating=1 AlternatingColor=15793151 } Add(StrList,6353263,273,196) { Strings=#26:0;Редактор формы;0;55295;1|14:1;Ширина;400;1|14:1;Высота;600;1|19:1;Цвет поля;White;1|15:1;Маркеры;нет;1|22:0;Таблица;0;12639424;2|12:1;Сетка;да;2|20:1;Высота строки;24;2|22:0;Тестовая;0;2345345;3| } Add(ArrayEnum,15053014,287,245) { link(onItem,7302297:doSplit,[]) link(onEndEnum,5178369:doData,[(327,258)(327,363)]) link(Array,6353263:Array,[]) } Add(MST_RowAction,6457972,511,238) { MSTControl="myTable" } Add(MT_String,1985565,455,238) { link(onResult,6457972:doRowAction,[]) link(Str1,8779871:Var3,[(461,229)]) } Add(If_else,11801584,378,245) { Op2=String(1) link(onTrue,1985565:doMT,[]) link(onFalse,481735:doMT,[(429,258)(429,300)]) AddHint(-5,-21,31,13,Op2) } Add(MultiStrData,7302297,336,245) { Count=1 link(onPart1,11801584:doCompare,[]) } Add(MT_String,481735,441,287) { link(onResult,8543499:doInsertGroup,[]) link(Str1,8779871:Var2,[]) } Add(DoData,5178369,441,357) { Data=Integer(1) link(onEventData,8543499:doEnableGroupViewer,[(492,363)(492,300)]) AddHint(-1,-21,21,13,Data) } Add(GetDataEx,8779871,441,224) { Angle=3 link(Data,7302297:RemaindStr,[(421,229)(421,301)(342,301)]) } Add(StyleXP,8844878,217,189) { } Add(MST_Groups,8543499,511,287) { MSTControl="myTable" Point(onDblClickInGroup) link(onDblClickInGroup,14999384:doMessage,[]) } Add(MST_SelectRow,13646441,602,399) { MSTControl="myTable" } Add(Timer,5096122,546,476) { Interval=300 link(onTimer,16560004:doData,[]) } Add(DoData,16560004,609,476) { link(Data,14053241:Var,[]) } Add(Debug,14053241,609,448) { link(Data,13646441:Index,[]) } Add(Message,14999384,567,287) { }
1 тест:
-Выдели строку: "Сетка"
-Двойным кликом мыши сверни первую кладку:"Редактор формы"
-Начнется редактирование строки "Сетка" O_o
2 тест:
-Выдели строку: "Высота"
-Двойным кликом мыши сверни первую кладку:"Редактор формы"
-Обрати внимание что выделенной остается все та же строка (индекс 1)
-Нажми пару клавиш на клавиатуре
-Двойным кликом мыши разверни первую кладку:"Редактор формы"
-Строка "Высота" оставалась в включенном состоянии редактирования даже будучи в свернутой группе
Как по мне, то:
1. Нужно исключить включение редактирование строки при двойном клике по заголовку группы.
2. При сворачивании группы убирать выделения с строк свернутой группы.
Странное поведение при включении мультиселекта. Тестовая схема:
Add(MainForm,10676448,217,231) { Width=802 Height=424 link(onCreate,15053014:doEnum,[]) } Add(MTStrTbl,6747634,609,238) { Width=786 Height=385 Align=5 Font=[MS Sans Serif,12,0,0,1] Name="myTable" Columns=#12:Название=400|12:Значение=120| Redaction=0 CheckBoxes=0 Alternating=1 AlternatingColor=15793151 MultiSelect=0 } Add(StrList,6353263,273,196) { Strings=#26:0;Редактор формы;0;55295;1|14:1;Ширина;400;1|14:1;Высота;600;1|19:1;Цвет поля;White;1|15:1;Маркеры;нет;1|22:0;Таблица;0;12639424;2|12:1;Сетка;да;2|20:1;Высота строки;24;2|22:0;Тестовая;0;2345345;3| } Add(ArrayEnum,15053014,287,245) { link(onItem,7302297:doSplit,[]) link(onEndEnum,5178369:doData,[(327,258)(327,363)]) link(Array,6353263:Array,[]) } Add(MST_RowAction,6457972,511,238) { MSTControl="myTable" } Add(MT_String,1985565,455,238) { link(onResult,6457972:doRowAction,[]) link(Str1,8779871:Var3,[(461,229)]) } Add(If_else,11801584,378,245) { Op2=String(1) link(onTrue,1985565:doMT,[]) link(onFalse,481735:doMT,[(429,258)(429,300)]) AddHint(-5,-21,31,13,Op2) } Add(MultiStrData,7302297,336,245) { Count=1 link(onPart1,11801584:doCompare,[]) } Add(MT_String,481735,441,287) { link(onResult,8543499:doInsertGroup,[]) link(Str1,8779871:Var2,[]) } Add(DoData,5178369,441,357) { Data=Integer(1) link(onEventData,8543499:doEnableGroupViewer,[(492,363)(492,300)]) AddHint(-1,-21,21,13,Data) } Add(GetDataEx,8779871,441,224) { Angle=3 link(Data,7302297:RemaindStr,[(421,229)(421,301)(342,301)]) } Add(StyleXP,8844878,217,189) { } Add(MST_Groups,8543499,511,287) { MSTControl="myTable" Point(onDblClickInGroup) }
Тест:
-Кликнуть курсором (чтоб выделить) на любую стоку первой группы "Редактор формы"
-Кликнуть курсором по названию самой группы "Редактор формы"
-Небольшое движение курсора и выделяются все строки группы
Как по мне то это не правильно.
Вот к примеру правильное поведение при выборе всех строк:
-Нажать курсором по названию группы "Редактор формы" и не отпуская начать двигать курсор вниз
-Выделится все строки группы
nesco писал(а): Надо оставлять только глобальную версию.
Не могу попасть на svn (http://svn.hiasm.com/packs/). Ты вносил добавленные свойства Selector таблицы на svn или они пока только у нас с тобой? Мне чтоб "вырезать" FocusFrame надо понять вносил ли ты обновления.
nesco писал(а): Да и вообще, давно надо отказываться от обычного режима, аля Win95. Какой год на дворе, ребята?
Соглашусь что лучше обновить внешний вид. Но хорошо когда есть возможность выбора.
|