Головна » 2016 » Січень » 8 » Скриптові функції - Обробка подій
21:13
Скриптові функції - Обробка подій

В даному розділі зібрано особливі скриптові функції, які реагують на події, що відбуваються в програмі. Для їх запуску не потрібно натискати ніяких кнопок. Достатньо, щоб в програмі просто відбулася та чи інша подія. Але, не зважаючи на те, що вони цікаві, не рекомендую їх для новачків. Навчіться спершу створювати скрипти, які будуть запускатися натисканням кнопки на панелі інструментів. Ці ж функції найчастіше використовуються не кнопках, а в меню програми Карта - Скрипт обробки подій чи Шари - (контекстне меню шару) - Скрипт обробки подій, тобто, прописуються зразу для карти чи якогось із шарів, оминаючи взагалі звичайні панелі інструментів.


Список подій, на які може реагувати скрипт

%Events.OnStartup - запуск програми

%Events.OnFileOpen - відкриття карти

%Events.OnFileNew - створення нової карти

%Events.OnFileSave - збереження карти

%Events.OnActivateMap - активація вкладки з картою

%Events.OnAdd - вставка об'єктів на карту

%Events.OnSelect - виділення об'єкта

%Events.OnChange - зміна об'єктів

%Events.OnChangeZoom - збільшення/зменшення відображення карти на екрані

%Events.OnCollect - збір нового об'єкта

%Events.OnCollectionLayerChange - зміна шару для збору

%Events.OnPointCollect - додавання нової точки під час збору

%Events.OnDelete - видалення об'єкта

%Events.OnLayerChange - зміна шару об'єкта

%Events.OnParametersChange - зміна параметра об'єкта

%Events.OnJoin - з'єднання об'єктів кнопкою на правій панелі

%Events.OnMergeоб'єднання об'єктів кнопкою на правій панелі

%Events.OnPaint - скролінг (прокрутка мишкою) карти

%Events.OnFileClose - закриття карти

%Events.OnShutdown - закриття програми

Вкл/викл подій

@DisableEvents - забороняє всі події, до виклику функції @EnableEvents

@EnableEvents - дозволяє події, заборонені функцією @DisableEvents

Властивості події

@EventName - повертає ім'я поточної події, наприклад, ONSELECT

@EventObject - повертає номер об'єкта для останньої події: OnSelect, OnCollect, і т.д.

@EventObjectsList - повертає список номерів об'єктів для останньої події

@EventParameter - повертає номер змінених параметрів для останньої події OnParametersChange

@ToolbarButtonState - повертає 1 якщо кнопка скрипту натиснута і 0 - якщо не натиснута

 

@Map.Layers.Script Number [ScriptText] - повертає або встановлює скрипт обробки подій шару

@Map.ExecuteLayerEvent ObjIndex EventName - виконує скрипт обробки подій шару для конкретного об'єкта

@Map.IsEventParameter ParamIndex - ?


Примітка: жирним шрифтом (напр.@DisableEvents) виділена назва функції, червоним шрифтом (напр.%Events.OnStartup)  - подія, на яку має реагувати скрипт.

 

Переглядів: 4433 | Додав: Микола | Рейтинг: 0.0/0
Всього коментарів: 5
avatar
4 anecrasch • 16:52, 04.03.2023
Сбор | Автозахват (XY:=[20.8],Z:=[1])
не допомагає
avatar
3 anecrasch • 16:40, 04.03.2023
є ще запитання
є програмний код

@Map.DeselectAll
@Map.SelectLayer id1000000
@Map.Copy
@ActivateMap 2
@Map.SelectLayer id90005
@Window.ShowSelected
;міняємо значення автозахвату
;
;вставка скопійованої таблиці
Специальная вставка | В текущую позицию

чи можливо програмним кодом (а не вручну через сервіс = > налаштування = > правка = > точність карти в мм на папері) виставити змінити (установити) своє значення автозахвату (прив'язки чи пристиковки) зі стандартного значення "0.8" на "20.8" чи навіть більше.

p.s. це потрібно для того, щоб зекономити час і довго (досить точно) не підтягувати один об'єкт-таблицю під інший об'єкт-таблицю (щоб вона красиво відображалася по горизонталі та вертикалі) під існуючою таблицею на карті, по-суті не ловити (не співставляти) крайні точки (центри) існуючого об'єкта-таблиці
avatar
0
5 Микола • 22:51, 04.03.2023
@SetMapAccuracy Value_mm - Змінює значення "Точність карти на папері" в Сервіс/Налаштування/Правка
avatar
2 Анонімно • 22:12, 02.03.2023
Доброго дня.
Замість @FileClose використовуйте @CloseMap
[MapNumber]Закриває активну карту без запиту на збереження
avatar
1 anecrasch • 17:27, 02.03.2023
доброго дня. підкажіть, будь-ласка, як реалізувати програмне закриття відкритої активної карти, щоб коли карта закривалася і питає чи зберегти змінни - програмний код сам нажимав на кнопку НІ.
цось типу такого:
@ActivateMap 3
;чи зберігати перед закриттям?
@FileClose
$Save=ні
але повідомлення всеодно вискакую, щок я нажав на ТАК чи НІ
avatar