Создание кнопки и назначение ей скрипта в Arcview GIS

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/butscript.html


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

1. Понять в какую группу документов должна быть подключена эта кнопка: Views, Tables, Charts, Layouts, Scripts или какую-то другую.

2. Дважды щелкнуть мышкой на панели инструментов Arcview (не важно в какой группе вы в это время находитесь). Должно открыться окно Customize

Butscript1.jpg

3. Затем выбрать в поле Type тип документа (View, Table, Layout и т.д.) в котором будет работать скрипт, в этом поле будут перечислены все доступные на данный момент типы. Если вы добавили кнопку в тип документа Script, то в панели кнопок View (Вида) она не появится.

*если некий тип документа создается включением определенного расширения ( то есть по умолчанию такого типа документов в Arcview нет), а вам надо добавить в нее кнопку, то, для того, чтобы это сделать, необходимо сначала включить расширение добавляющее данный тип документа.

4. В поле Category выберите нужный тип кнопки. Кнопки бывают 2-х типов:

  • простые (Buttons)
  • инструменты (Tools)

Отличие их состоит в том, что простая кнопка после нажатия немедленно выполняет какую-либо операцию, например открывает окно "Добавить тему", а инструмент переключает действие в особый режим, а само действие выполняется только после использования это инструмента, например инструмент Identify. Допустим вам нужно добавить простую кнопку. Следовательно выбираем категорию Buttons.

5. Определяем место где будет находиться кнопка, для этого перемещаем черную рамку которая сначала оконтуривает первую кнопку туда где мы хотим вставить новую кнопку, то есть на существующую кнопку перед ней и нажимаем кнопку New. Появляется новая кнопка.

Butscript2.jpg

6. Добавляем связанный с этой кнопкой скрипт. Скрипт перед тем как быть присоединен к кнопке должен быть подгружен в проект и обязательно скомпилирован. Для этого дважды щелкаем на поле Click и выбираем из появившегося окна менеджера скриптов (Sript manager) нужный скрипт.

На этом процесс подключения кнопки можно считать завершенным. Описание других полей заполнение которых не обязательно:

  • Disabled значением этого поле может быть только false\true, обычно используется в совокупности со скриптом подключаемым через поле Update, блокирование кнопки осуществляется если не выполнено некоторое условие (например, нет тем в TOC)
  • Help Строка помощи для кнопки, вводится в виде tool tip//help string, где tool tip - то что будет отображаться во всплывающем, при наведении на кнопку окошке, а help string - то что будет отображаться (возможно более развернуто) внизу экрана в строке статуса. Два параметра разделяются обязательным знаком "//"
  • HelpTopic Название раздела в файле помощи Arcview
  • Icon Используемая для кнопки иконка, при двойном щелчке на этом поле появляется окно Менеждера иконок (Icon Manager), которое облегчает процесс выбора существующей, подгрузки новой иконки
  • Invisible Включение/отключение режима невидимости кнопки
  • Tag Дополнительная текстовая строка к которой можно получить доступ через запрос ObjectTag
  • Update Скрипт выполняемый при любом изменении в активном окне проекта, обычно используется для проверки необходимого условия для включения\выключения (см.Disabled) кнопки.

Соответственно, если ваша цель - сделать так, чтобы у вас в проекте была такая же кнопка как в проекте товарища, но это невозможно сделать путем загрузки соответствующего расширения, то проще всего добавить кнопку так как указано выше и присоединить к ней скрипт добытый путем указанным здесь.

Существую также экзотические случаи, когда создается новый тип документа аналогичный существующему, например расширением Automatic Tiled Layouts создается группа Tiles полностью аналогичная группе Layouts, но подключаемые к группе Layouts расширения не будут автоматически подключаться к группе Tiles, что может быть очень неудобно, например тем, что нельзя воспользоваться таким удобным расширением как Graticules and Grids, которое работает только в Layouts, но так как эти группы полностью аналогичны, то обмануть расширение можно способом указанным выше, скопировав кнопку и все ее параметры в группу Tiles из группы Layouts.