Sergey Oleynik писал(а):
Не совсем понятно, где это все хранить. Я имею в виду тексты скриптов?
Просто дать возможность добавлять такие скрипты в любую кнопку, по аналогии с OnSelect или OnChange?
Тогда они будут срабатывать на открытие любой карты.
Если хранить в DMF, то OnFileOpen сработает только для той карты, в которой есть скрипт, а такие как StartUp, вообще теряют смысл.
Я предлагаю разделить эти скрипты на две группы:
1 группа) общие скрипты дижиталса (хранить, например, в файле
Digitals.dsf в корне программы). В этом файле могут быть определены:
%Events.StartUp - функции, выполняемые один раз после запуска дижиталс
%Events.OnFileOpen - функции, выполняемые после открытия каждой карты,
%Events.OnFileNew - функции, выполняемые после создания каждой новой карты,
%Events.OnFileClose - функции, выполняемых до начала закрытия каждой карты,
%Events.OnFileExit - функции, выполняемые перед закрытием оболочки дижиталса
2 группа) скрипты конкретной карты (хранить в карте, назначать в свойствах карты, не на кнопки).
%Events.OnFileOpen - функции, выполняемые после открытия конкретной карты,
%Events.OnFileSave - функции, выполняемые до начала записи конкретной карты,
%Events.OnFileClose - функции, выполняемых до начала закрытия каждой карты,
Следует заметить, что обработчики событий 1 и 2 группы
могут включать обработчиков событий объектов, например в следующем коде в секции %Events.StartUp определяются два обработчика - для сбора и редактирования объектов всех карт:
Код:
%Events.StartUp
%Events.Collect
;код обработки сбора нового объекта
%Events.OnChange
;код обработки при редактировании объекта
...
%Events.OnFileNew
;код обработки при создании новой карты
...
думаю, идея понятна.