Прошу добавить в API простую возможность перевызывать нажатие сочетания клавиш после выполнения команды скрипта

tormozit Закрыто Высокий

Например я создал команду скрипта с сочетанием CTRL+M для редактора модуля (кстати у самого Туброконфа тоже используется это сочетание). А оно используется для штатной команды "Объединить ячейки" конфигуратора в редакторе табличного документа.
Примеры:
https://turboconf.ru/Tasks/9563
https://turboconf.ru/Tasks/9564

Тогда пользователь не сможет вызывать эту штатную команду этим сочетанием клавиш.

В скрипте можно проверить, что контекст вызова команды не подходящий. Тогда нужно передать обработку нажатия клавиш дальше (окну конфигуратора). Если передавать ее явно (например Турбоконф.Клавиша(ХХ)), то случится беда если пользователь изменит сочетание клавиш для команды.

Поэтому прошу добавить в API возможность перевызывать нажатие сочетания клавиш после выполнения команды скрипта. Например в класс "Турбоконф" добавить флаг "ПродолжитьОбработкуНажатияКлавиш"

Комментарии

tormozit
#1, ред. 06 июля 2024 14:05

Сейчас из-за неизученной проблемы пришлось отключить приложение ИР в одной базе. Но сочетание клавиш CTRL+F1 захвачено ИР адаптером. Теперь не могу вызывать синтакс-помощник в этом состоянии. Приходится отключать Турбоконф, чтобы это сочетание клавиш вызывало штатную команду конфигуратора.
tormozit изменил статус на Открыто


tormozit
#2, 11 июля 2024 14:52

@bolsun прошу рассмотреть эту заявку, т.к. проблема с CTRL+F1 возникает регулярно и пользователю неочевидно как с ней бороться.


bolsun
#3, ред. 15 июля 2024 13:57

API

Класс ТурбоКонф

  • Добавлено свойство ПродолжитьОбработкуНажатияКлавиш

Свойство устанавливает режим перехвата текущей вызываемой комбинации клавиш
В случае Истина - после выполнения скрипта, комбинация будет отправлена дальше в текущее активное окно

https://disk.yandex.ru/d/XKCz9ijzgtoO1w


tormozit
#4, 15 июля 2024 23:02

3 раза все перепроверил. Но похоже свойство не появилось.

ScriptEngine.Machine.PropertyAccessException: {Модуль C:\Portable\TurboConf\user_scripts\RDT.os / Ошибка в строке: 3360 / Свойство объекта не обнаружено (ПродолжитьОбработкуНажатияКлавиш)}
ТурбоКонф.ПродолжитьОбработкуНажатияКлавиш = Истина; в ScriptEngine.Machine.Contexts.ContextPropertyMapper`1.FindProperty(String name)
в ScriptEngine.Machine.MachineInstance.ResolveProp(Int32 arg)
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
в ScriptEngine.Machine.MachineInstance.ExecuteCode()
в ScriptEngine.Machine.MachineInstance.ExecuteMethod(IRunnable sdo, Int32 methodIndex, IValue[] arguments)
в ScriptEngine.Machine.Contexts.ScriptDrivenObject.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в TurboConf.HostApplication.HostApplicationForm.ExecuteScript(Script script, Keys ctrl, Keys alt, Keys shift, ScreenForm statusForm, String entryPoint, ScriptOptions options, IVariable[] parameters)

Ссылка скрыта


bolsun
#5, 15 июля 2024 23:26

(4) tormozit, попробуй скачать еще раз
версия должна быть 6.2.8963.2474

https://disk.yandex.ru/d/XKCz9ijzgtoO1w


tormozit
#6, 16 июля 2024 00:41

Проверил. Работает.


tormozit
#7, 16 июля 2024 00:42

tormozit изменил статус на Закрыто


tormozit
#8, 16 июля 2024 08:56

Пропало другое свойство

ScriptEngine.Machine.PropertyAccessException: {Модуль C:\Portable\TurboConf\user_scripts\RDT.os / Ошибка в строке: 2684 / Свойство объекта не обнаружено (ОтжатьМодификаторыПослеЗавершенияСкрипта)}
ТурбоКонф.ОтжатьМодификаторыПослеЗавершенияСкрипта = Истина; в ScriptEngine.Machine.Contexts.ContextPropertyMapper`1.FindProperty(String name)
в ScriptEngine.Machine.MachineInstance.ResolveProp(Int32 arg)
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
в ScriptEngine.Machine.MachineInstance.ExecuteCode()
в ScriptEngine.Machine.MachineInstance.ExecuteMethod(IRunnable sdo, Int32 methodIndex, IValue[] arguments)
в ScriptEngine.Machine.Contexts.ScriptDrivenObject.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в TurboConf.HostApplication.HostApplicationForm.ExecuteScript(Script script, Keys ctrl, Keys alt, Keys shift, ScreenForm statusForm, String entryPoint, ScriptOptions options, IVariable[] parameters)
tormozit изменил статус на Открыто


bolsun
#9, 16 июля 2024 11:12

(8) tormozit, проверь эту
https://disk.yandex.ru/d/XKCz9ijzgtoO1w


tormozit
#10, ред. 16 июля 2024 20:47

Проверил. В новой версии оба свойства работают.
tormozit изменил статус на Закрыто


tormozit
#11, 18 июля 2024 08:28

Есть команда с сочетанием ALT+Num- . Если она устанавливает этот флаг, то почему то открывается меню окна

//@script_hotkey Alt+Subtract СвернутьДеревоКромеТекущей Свернуть дерево кроме текущей строки

RDT.os

Ссылка скрыта
tormozit изменил статус на Открыто


bolsun
#12, 18 июля 2024 13:40

(11) tormozit, потому что Alt+Subtract штатная команда конфигуратора.
Вызвать системное меню окна (кроме модальных диалогов)
Alt + Hyphen (- )
Alt + Num-


tormozit
#13, 18 июля 2024 19:51

tormozit изменил статус на Закрыто


bolsun
#14, 01 августа 2024 11:53

bolsun изменил статус на Закрыто


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера