Страница 1 из 1

Определить, что объект изменен

Добавлено: 25 мар 2021, 15:01
spawner
А есть какой-то способ в mapbasic определить, что выбранный объект был изменен? (например сдвинут)
Т.е. я двигаю точку и сразу после завершения сдвига мне нужно вызвать процедуру.

Re: Определить, что объект изменен

Добавлено: 01 апр 2021, 00:53
Boris
Да, тут не один вопрос, а целый десяток. Угадать, что именно вам нужно, не просто.
Очевидные ответы:
1. при изменении любого 1-го объекта в таблице, она получает атрибут "подвергшаяся редактированию".
2. при сдвиге меняется центроид объекта - он храниться в таблице мапинфо в явном виде, как скрытый атрибут, который может быть выведен на экран. при сдвиге пересчитывается автоматически.
3. после сдвига набо Selection не меняется - так, что объект доступен в том же самом запросе.
4. в mapbasic, не знаю как в новомодном python-е Mapinfo 17 и далее, есть "события" при работе с окном карты. Посмотрите какая их комбинация может вам подойти, если речь шла об автоматической реакции, на сдвиг. Но, я бы крайне не рекомендовал использовать "события" в Mapinfo - это очень давно заброшенные разработчиками возможности. Все постобработку вешают на кнопки или меню правой клавиши.

Re: Определить, что объект изменен

Добавлено: 01 апр 2021, 09:58
juffin_h
Раньше события работали хорошо. Думаю есть смысл попробовать. Главное, чтобы нашлось подходящее.

Re: Определить, что объект изменен

Добавлено: 03 апр 2021, 19:36
ginpetr
не, Boris прав насчёт осторожности с событиями. У меня как раз на версиях, теперь считающихся старыми, использование событий резко увеличивало количество вылетов программы (не утилиты а всей Mapinfo).