Библиотека просмотра графики
IbisMap
версия 2
 
     
 
  • Библиотека просмотра графики IbisMap 2.0 предназначена для создания, просмотра и обработки изображений в среде 1С:Предприятие (и не только).
  • Возможности компоненты позволяют использовать ее для работы с топокартами, чертежами, диаграмами, графиками. При использовании низкоуровневого интерфейса, есть возможность встраивания окна компоненты в окно приложения, что дает возможность создать на основе компоненты целостное приложение с удобным интерфейсом.
  • Библиотека позволяет построить любое изображение на основе графических примитивов, таких как полигон, полилиния, а также добавить текстовую информацию и растровые изображения. Возможен расчет расстояний, площадей объектов, а также площадей пересечения обьектов; определение принадлежности точек объекту; идентификация объекта по точке и другие возможности.
  • Библиотека реализована в виде внешней компоненты (inproc server, Maplib.dll) и создана на основе технологии создания внешних компонент, предложенной фирмой 1С для расширения возможностей системы 1С:Предриятие 7.5, 7.7. Компонента поддерживает версию 2.0 указанной технологии и полностью совместима с вышеперечисленными системами. Имеется так же низкоуровневый интерфейс для работы с компонентой из таких сред как C++ Builder, Delphi, Visual C++.
  • Изображение формируется посредством вызова методов и свойств, описания которых приводится в документации.
  • Компонента проста и удобна в работе, снабжена интуитивно понятным интерфейсом, встроены функции масштабирования и скроллинга изображения, имеется возможность сохранить изображение в файл *.bmp. В случае использования низкоуровневого интерфейса, есть возможность програмного управления окном с помощью WinAPI, а также управления контекстным меню, в зависимости от объекта и(или) координат щелчка правой кнопки мыши.
 
     
     
     
 

     Графический модуль IbisMap 2.0 поддерживает следующие типы объектов:

  • Полигон — закрашенная область, ограниченная замкнутой полилинией. Изменяет видимые размеры в зависимости от масштаба отображения. Участвует в расчете площадей.
  • Полилиния — не замкнутая полилиния. Изменяет видимые размеры в зависимости от масштаба отображения. Участвует в расчете площадей.
  • Надпись — строка текста. Гарнитура шрифта (кроме размера и угла наклона, которые назначаются каждому объекту) определяется независимо для каждого слоя. Изменяет видимые размеры в зависимости от масштаба отображения. Не участвует в расчете площадей.
  • Маркер — полигон, конфигурация которого определяется шаблоном. Не изменяет видимые размеры в зависимости от масштаба отображения. Не участвует в расчете площадей.
  • Иконка — растровое изображение размером 32х32 пикселя. Не изменяет видимые размеры в зависимости от масштаба отображения. Не участвует в расчете площадей.
  • Символ — строка текста. Наименование шрифта определяется независимо для каждого объекта. Не изменяет видимые размеры в зависимости от масштаба отображения. Не участвует в расчете площадей.
  • Картинка — растровое изображение произвольного размера. Для изображений в формате BMP используется двойное кэширование в оперативной памяти, т.е. при использовании этого формата необходимо наличие большого объема свободной памяти, однако операции масштабирования и панорамирования производятся быстрее. Размер каждого изображения ограничен особенностями используемой операционной системы, а их количество - объемом доступной оперативной памяти.Также после загрузки файл с изображением может быть удален. Изображения в формате PCX не хранятся целиком в памяти, а подгружаются из файла по мере необходимости, что приводит к сокращению используемой оперативной памяти для обработки любого количества изображений до 10...15Мб. Размер каждого изображения ограничен особенностями используемой операционной системы, а их количество не ограничено. Файл с изображением в формате PCX должен присутствовать в неизменяемом виде все время существования объекта.Изменяет видимые размеры в зависимости от масштаба отображения. Не участвует в расчете площадей.

     Для всех объектов поддерживается сквозная (т.е. независимо от вида объекта) идентификация в пределах слоя. Уникальность идентификаторов, кроме (-1), не отслеживается. Объект с идентификатором (-1) может существовать только один в слое. Такой объект отображается поверх всех остальных объектов в своем слое. В случае присутствия (до выполнения метода) объекта с идентификатором (-1), объект заменяется. Объекты с идентификатором (0) считаются прозрачными, они не участвуют в расчетах и для них не выводится подсказка. При добавлении (удалении) объектов и установке параметров отображения происходит автоматическое обновление окна отображения.

 
     
 

   При работе с окном компоненты генерируются следующие внешние сообщения:

  • Двойной щелчок мыши в окне компоненты
  • Щелчок правой кнопкой мыши (перед показом контекстного меню)
  • Выбор пункта контекстного меню (для пунктов определяемых пользователем)
  • Изменение видимости слоя
  • Открытие окна компоненты
  • Закрытие окна компоненты