Аналитика
http://geosystema.net/forum/

Создание скриптов для обработки событий
http://geosystema.net/forum/viewtopic.php?f=1&t=1480
Страница 2 из 2

Автор:  Olg@ [ 11 мар 2010 14:16 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

попробовала прописать добавление объекта на событии OnSelect

%Events.OnSelect
$S=@EventObject
@If $S=0 then @Break
$x=@Map.Object[$S].Parameter[-4]
$y=@Map.Object[$S].Parameter[-3]
@Map.AddObject 0|1|3|1|0 $x $y 0.00|1|3|0


программа зацикливается и вешается, а мне остается нервно курить в сторонке... :(

Автор:  Sergey Oleynik [ 11 мар 2010 18:16 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

Olg@ писал(а):
программа зацикливается и вешается, а мне остается нервно курить в сторонке... :(

Добавлена блокировка от зацикливания обработчиков событий.
Теперь, до завершения обработки события, все возникающие события того же типа игнорируются.
Поводов покурить становится меньше :)

Автор:  Olg@ [ 12 мар 2010 14:00 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

А можно еще добавить событие OnClick с возвращением координат курсора?

Автор:  Olg@ [ 04 май 2010 11:04 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

В пределах одной пользовательской панели активизируется только одна кнопка с обработчиком событий, если панелей несколько - на каждой по одной. Можно сделать так, чтобы в пределах одной панели можно было бы активизировать несколько кнопок с событиями?

Автор:  voha [ 05 окт 2013 09:41 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

Sergey Oleynik писал(а):
Добавлены события (на кнопке):
%Events.OnStartup
%Events.OnShutdown
%Events.OnFileOpen
%Events.OnFileClose
%Events.OnFileSave
%Events.OnFileNew

Alex3 писал(а):
Я предлагаю разделить эти скрипты на две группы:
1 группа) общие скрипты дижиталса (хранить, например, в файле Digitals.dsf в корне программы). В этом файле могут быть определены:
%Events.StartUp - функции, выполняемые один раз после запуска дижиталс
%Events.OnFileOpen - функции, выполняемые после открытия каждой карты,
%Events.OnFileNew - функции, выполняемые после создания каждой новой карты,
%Events.OnFileClose - функции, выполняемых до начала закрытия каждой карты,
%Events.OnFileExit - функции, выполняемые перед закрытием оболочки дижиталса

2 группа) скрипты конкретной карты (хранить в карте, назначать в свойствах карты, не на кнопки).
%Events.OnFileOpen - функции, выполняемые после открытия конкретной карты,
%Events.OnFileSave - функции, выполняемые до начала записи конкретной карты,
%Events.OnFileClose - функции, выполняемых до начала закрытия каждой карты...

Наскільки "реально" забезпечити тепер такий досконалий підхід до обробки подій Digitals?

Та ще хочеться просити, щоб функції 2-ї групи вставлялись в карту призначення при застосуванні команди @Map.ReplaceTemplate Filename.

Автор:  voha [ 19 окт 2014 14:12 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

Sergey Oleynik писал(а):
...Поскольку событие OnFileSave вызывается до сохранения карты, обработчик события может запретить сохранение, присвоив переменной $Result значение 1. В этом случае в скрипте необходимо предусмотреть сообщением пользователю с объяснением причины...
Та вже якось давненько помітив, що перестала коректно працювати змінна $Result в моєму скрипті обробки події збереження карти. Не працює ні в скрипті рівня карти, ні в скрипті на кнопці. Вирішив перевірити - у чому річ. От простенький скрипт:
Код:
%Events.OnFileSave
@Dialog.Message Запущено скрипт OnFileSave
$MapFile=@Map.Filename
$Modifed=@Map.Modified
@If $Modifed=0 then @Dialog.Message Скрипт OnFileSave каже, що змін в карті не було, тому карта легко збережеться.
@If $Modifed=0 then @Goto %EndFileSave
$Rez=@Dialog.Ask 2+2=|Вкажіть правильний результат, якщо зміни в карті треба зберегти||Вкажіть не правильний результат операції, якщо зміни в карті зберігати не потрібно. Size=500
@If $Rez=4 then $Result=0 else $Result=1
@If $Rez<>4 then @Dialog.Message Зміни не збережено - перевірте
%EndFileSave

Пів-дня морочусь, а толку нема. Зберігає Digitals зміни і все тут тобі :!: . Дуже прошу, зжальтесь наді-мною :?

Автор:  voha [ 20 окт 2014 20:29 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

voha писал(а):
...перестала коректно працювати змінна $Result в моєму скрипті обробки події збереження карти...Пів-дня морочусь, а толку нема. Зберігає Digitals зміни і все тут тобі...
Оперативно виправлено. Величезне дякую розробникам :D

Автор:  voha [ 01 мар 2020 22:31 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

Доброї пори доби.
У мене питання до розробників: хіба скрипт обробки події %Events.OnFileNew не повинний виконуватись при створенні нової карти на шаблоні, в якому цей скрипт прописаний? Я просто думав, що так воно і є, а тут виявляється...

Ну, так як у VBA: є шаблон документа (припустимо Normal.dot), в якому прописана процедура автозапуску Document_New, що запускається автоматом при створенні нового документа Word, основаного на шаблоні.

Нагадайте мені, будь-ласка, як взагалі скористатись %Events.OnFileNew.

По аналогії з %Events.OnStartup (в теці Library є файл Startup.dsf, в якому прописаний текст скрипта, що запускається автоматом після старту програми Digitals)? Так не запускається OnFileNew: ні з файла OnFileNew.tlb або FileNew.tlb у теці Library, ні з тих же файлів у теці Digitals.

Дуже прошу розробників. Терміново треба.

Автор:  Sergey Oleynik [ 02 мар 2020 15:12 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

voha писал(а):
Доброї пори доби.
У мене питання до розробників: хіба скрипт обробки події %Events.OnFileNew не повинний виконуватись при створенні нової карти на шаблоні, в якому цей скрипт прописаний? Я просто думав, що так воно і є, а тут виявляється...

При цьому визивається %Events.OnFileOpen, тому, що фактично це відкриття існуючого файлу, а не створення нового. Але можемо також додати і визов Events.OnFileNew

Автор:  voha [ 03 мар 2020 10:00 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

Sergey Oleynik писал(а):
При цьому визивається %Events.OnFileOpen, тому, що фактично це відкриття існуючого файлу, а не створення нового. Але можемо також додати і визов Events.OnFileNew
.Доброго дня Сергію Васильовичу. Надіслав лист на help@vingeo.com

Чемно дякую розробникам. Відсьогодні скрипт %Events.OnFileNew, записаний в карті 1, запускається при створенні нової карти 2 на основі карти 1.

Автор:  voha [ 19 дек 2020 12:29 ]
Заголовок сообщения:  Re: Создание скриптов для обработки событий

Доброго дня розробникам.

Хочу підняти питання обробки подій "вирізати точку/точки з об'єкта" і "вставити точку в об'єкт", що колись звучало в темі запиту на функцію. Тепер, мабуть було би добре додати окремі скриптові функції:
%Events.OnPointInsert та %Events.OnPointsClear :?:

Страница 2 из 2 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/