Голосование

Ожидаете ли Вы увольнения в связи с кризисом?

Меня никогда не уволят
Боюсь что все-таки могут
Меня собираются увольнять
Меня уже уволили
Я сам собираюсь уйти
Я никогда и не работал



Посмотреть результаты
Другие опросы ...

 

Лента RSS, новости сайта Новости сайта
Лента RSS, новости форума Новости форума
  Bookmark and Share

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Кнопки, Ссылки и Баннеры ...

 


Automatic translation


English German French Italian Spanish
Portuguese Greece Japan Chinese Korean


Ссылки и Баннеры


скрыть

 

Delphi Sources

Delphi Sources

 

 

СТАТЬИ

 

. : Обзор компонентов EasyCAD : .

 

     Построение интерактивных планов, схем или диаграмм – достаточно распространенная задача, которую приходится решать разработчикам инженерных приложений. К сожалению, набор стандартных компонентов, имеющийся в поставке среды Delphi, не содержит инструментов, позволяющих достаточно просто решить эти задачи, и разработчикам приходится либо с нуля реализовывать собственный функционал, либо воспользоваться сторонними библиотеками. Об одной из таких библиотек компонентов сегодня и пойдет речь – на повестке дня компоненты EasyCAD Library. В данной статье будет предоставлен краткий обзор, более подробную информацию можно найти на сайте проекта – http://easycad-lib.com или лично обратиться к автору.

  

Редактор диаграмм

Рис. 1 – Редактор диаграмм


     Библиотека содержит инструментарий, позволяющий решить ряд основных задач, стоящих перед разработчиками, а именно:

  • Отображение и редактирование схемы.
  • Сохранение данных в файл или поток, загрузка данных.
  • Экспорт схемы в популярные растровые и векторные графические форматы
  • Предварительный просмотр и вывод на печать.
  • Возможность разработки и внедрения собственных типов элементов схемы
  • Взаимодействие с буфером обмена (Windows Clipboard).
  • Отображение и редактирование информации о схеме и ее элементах.
  • Возможность описывать классы элементов схемы в подключаемых библиотеках DLL (плагины).
  • Поддержка 3D-моделей и планов.
    Для решения всех этих задач библиотека содержит набор классов и компонент, которые далее вкратце будут описаны в этой статье. Используя эти инструменты, программист может разрабатывать от простых программ, использующих диаграммы, до более сложных инженерных приложений из области систем автоматизированного проектирования (CAD), построения интерактивных планов или ПО для автоматических систем управления технологическим процессом (АСУ ТП).

  

Приложение для построения геологических разрезов

Рис. 2 – Приложение для построения геологических разрезов


Отображение и редактирование схемы

     Каждая схема в библиотеке EasyCAD представляется классом-документом, который содержит общие параметры схемы, а также ее элементы. Для отображения схемы на экране или и редактирования ее пользователем служит компонент – дизайнер диаграмм (TECADDiagramDesigner). Этот компонент очень напоминает рабочую область таких редакторов, как MS Visio или AutoCAD. Компонент отображает схему, служебную информацию (линейку, сетку, выделение и т.д.) и позволяет пользователю с помощью мыши или клавиатуры создавать на схеме новые элементы или изменять существующие, в общем – этот компонент является полноценным визуальным редактором WYSIWYG (What you see is what you get – что видишь то и получаешь).
     Компонент можно настроить на режим "Редактор", "Только просмотр", "Предварительный просмотр печати" или любой другой, определяемый программистом с помощью подключаемых к нему компонентов – контроллеров ввода и вывода. Последние полностью отвечают за обработку ввода и вывода информации, позволяя отображать и редактировать схему таким образом, как того требует задача. Даже отображение 3D-сцен осуществляется в дизайнере диаграмм путем подключения к нему специальных контроллеров (см. далее). Библиотека содержит набор компонентов-котроллеров, а также позволяет программисту реализовать собственные.

Элементы схемы

     Каждая схема состоит из элементов, которыми в зависимости от типа схем, могут являться блоки, соединительные линии или специфические для задачи компоненты (скважина, резистор и т.д.), их группы и объединения. Каждый элемент характеризуется собственным набором параметров, положением на схеме, связью с другими элементами схемы. При записи документов в файл или поток, вся эта информация автоматически сохраняется, а при загрузке – восстанавливается.

     Для создания собственных схем программист может использовать реализованные в библиотеке типы, а при необходимости – разработать собственные. При разработке собственных типов элементов необходимо унаследовать класс от одного из базовых классов библиотеки, и переопределить методы, отвечающие за положение элемента, его отображение в документе, обработку пользовательского ввода, а также при необходимости дополнить классы собственным функционалом.

     Например, следующий простой пример демонстрирует создание элемента, отображаемого в виде листочка с записью (рис. 3):

  

Вид нового элемента в дизайнере

Рис. 3 Вид нового элемента в дизайнере


     Класс TECADBaseKnob, являющийся предком – это базовый класс прямоугольных объектов с регулятором. В нашем случае регулятор позволяет управлять размером уголка, в других же случаях – это может быть радиус закругления, угол наклона и т.д.
    Разумеется, возможно создавать и более сложные элементы, реализующие специфичный функционал.

Сохранение, загрузка, экспорт

     Для реализации сохранения и загрузки документов в библиотеке EasyCAD Library используется принцип, схожий с механизмом хранения форм в dfm – персистенция и RTTI. Это значит, что для того, чтобы параметры сохранялись и загружались не нужно самостоятельно писать код их сохранения или загрузки, достаточно просто при описании классов-элементов объявить, какие параметры вы хотите сохранять. Эти параметры автоматически "подцепятся" системой при записи или загрузке документа. Специальные классы – сериализаторы – способны найти все сохраняемые параметры и правильно записать или загрузить их из потока. Все что остается программисту – это выбрать подходящий сериализатор, отвечающий за то, в каком формате будут сохранены данные (библиотека предоставляет два стандартных сериализатора для двоичного формата и XML, также программист может при необходимости разработать собственный сериализатор), сопоставить его с нужным расширением файла, и вызвать метод документа SaveToFile/LoadFromFile. По расширению файла будет найден соответствующий сериализатор и документ будет сохранен (или загружен) в соответствующем формате.
     Экспорт в графические форматы реализуется схожим образом – с расширением файла сопоставляется соответствующий класс, умеющий записывать документ в виде графической картинки. А дальше используются тот же самый метод SaveToFile. Библиотека содержит классы, осуществляющие экспорт в форматы BMP, JPEG, PNG, GIF, TIFF, EMF, EMF+, EMF+ Dual, SVG. Возможна реализация собственных классов, отвечающих за экспорт.

Работа в 3D

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

  

Работа в 3D

Рис. 4 Работа в 3D


     Принципиальных отличий разработки 2D и 3D приложений нет, все механизмы заложенные в 2D так или иначе имеют аналоги в 3D. Так же от программиста не требуется быть экспертом в 3D-графике, все особенности работы с графическими 3D-движками скрыты в высокоуровневых классах библиотеки. Например, для рисования объектов в трехмерном пространстве используется класс TECAD3DCanvas, который по аналогии с классом TCanvas VCL предоставляет удобный интерфейс для вывода примитивов и управления графическими инструментами (шрифт, перо и т.д.). Объекты рисуются в координатном пространстве модели (так же как и в 2D) и этот код не зависит от положения наблюдателя. Положением камеры же управляют контроллеры ввода/вывода.

Другие компоненты библиотеки

     Кроме дизайнера диаграмм библиотека предоставляет разработчикам и другие визуальные и невизуальные компоненты, как правило использующиеся в инженерных графических приложениях. Это инспектор объектов (TECADObjectInspector), позволяющий отображать и редактировать параметры выбранного в дизайнере элемента, палитра объектов (TECADObjectPalette), позволяющая хранить прототипы элементов, которые можно перетащить мышью в окно дизайнера (и наоборот), менеджер дизайнера (TECADDesignerManager), связывающий дизайнер с другими визуальными элементами окна (например, позволяет связать дизайнер с TComboBox, который после связывания автоматически будет управлять масштабом дизайнера) и некоторые другие.

Заключение

     На этом наш краткий обзор завершен. Напомню, что более подробную информацию можно получить на сайте: http://easycad-lib.com или по электронной почте info@easycad-lib.com.
 

Обсуждение статьи на Форуме...
Оригинал статьи: easy-cad.zip (600 Кб).
Дата:
11.02.2011, Автор: Спектор Юрий.






Назад

 

© 2004-2017 "DS"

Отправить письмо / Реклама


ВКонтакте   Facebook   Twitter