+2
Completed
Выход из режима редактирования
Хочется иметь выход из режима редактирования например по клавише Esc. Очень его нехватает. Постоянно зрительно шаришь по панели инструментов с поиском кнопки, которую отжать. И еще в АПИ возможность программного вкл/выкл.
Customer support service by UserEcho
Завершение редактирования, как и начало редактирования, по кнопке Enter
Программно, через API:
Delphi:
MainWindow.Actions["ActionsEditStartSelection"].Execute
VBScript:
MainWindow.Actions("ActionsEditStartSelection").Execute
а с помощью апи можно узнать текущий режим? (редактируется или нет)
Узнать текущий режим можно, анализируя состояния команд:
function GetMapMode
dim aSelectionMode, anEditingMode
aSelectionMode = MainWindow.Actions("ActionsEditStartSelection").Checked
anEditingMode = MainWindow.Actions("ActionsEditReshapeSelection").Checked
if aSelectionMode then
GetMapMode = "Выделение"
elseif anEditingMode then
GetMapMode = "Редактирование"
else
GetMapMode = "Создание"
end if
end function
Узнать, какой объект и какая его форма редактируется, можно через Selection.Ids(0) и Selection.ShapeIndexes(0).
Про "MainWindow.Actions["ActionsEditStartSelection"].Execute" думал, что так не совсем правильно.
Про ESC имел в виду выход из режима создания НОВОГО объекта. Нарисовав объект нужно жать на панели кнопку или запомнить что она есть еще в контекстном меню, но кнопки на это не предусмотрено. Жалобы по этому поводу слышу от разных пользователей разного уровня. Чаще от тех кто работал в графических редакторах.
Да, мне тоже практика использования MainWindow.Actions("ActionsЧтоТоТам") кажется порочной (костыль какой-то).
логичнее было бы видеть такие методы в АПИ.
ну или отразить в документации эти приёмкики и жёстко закрепить список "системных" акшонов
Абсолютно согласен!
Практика использования системных команд - абсолютно нормальна и безопасна, и довольно часто используется. Имена системных команд меняться не будут. Никогда. Могут добавляться новые команды.
Тогда стоит закрепить это в документации к API и задекларировать список основных ( а лучше всех) системных команд с соответствующим описанием.
Можно на вашем wiki статью сделать, которую потом включить в документацию.
Сейчас:
Выход из режима редактирования:
- Клавиша [Enter].
- Двойной щелчок левой кнопкой мыши.
- Из контекстного меню "Завершить редактирование.
- На панели инструментов отжать кнопку
- На панели инструментов нажать кнопку
Выход из режима создания:- Из контекстного меню "Выйти из режима создания".
- На панели инструментов отжать кнопку
- На панели инструментов нажать кнопку
Можем добавить (скорее всего, добавим):Выход из режима создания/редактирования/измерений/выделений по [Escape].
Спасибо!
Может еще сделать такую развилку выхода из создания:
- [Enter], [Esc], [double click] - создать объект и выйти из режима создания
- [Ctrl]+[Enter], [Ctrl]+[double click] - создать объект и начать создание другого такого же
Дело в том что ингео после создания объекта продолжает оставатся в режиме создания; я предлагаю изменить это поведение: оставатся в режиме создания если пользователь закончил редактирование при зажатом [Ctrl], так как в основном юзеры создают 1 объект и начинают с ним работу.