Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Stingray Studio от Rogue Wave SoftwareНа сегодняшний день более 300.000 разработчиков во всем мире пользуются продуктами Rogue Wave Software - одного из ведущих поставщиков продуктов класса SDK. Особой популярностью заслуженно пользуется Stingray Studio - набор расширений библиотеки MFC, функциональность которых существенно расширяет предоставляемые MFC возможности в части организации пользовательского интерфейса приложений. В данной статье приведен обзор инструментальных средств, входящих в состав текущей версии Stingray Studio 2002 и возможностей, которые открываются для разработчиков GUI, применяющих этот продукт. Что такое Stingray Studio 2002Stingray Studio 2002 представляет собой набор библиотек классов, построенных на базе MFC, полностью совместимых с этой библиотекой и удовлетворяющих практически все потребности разработчика при конструировании пользовательского интерфейса. Поставка компонентов в исходных кодах дает возможность использовать их максимально гибко и обеспечивает совместимость практически со всеми используемыми в настоящее время компиляторами C++, в том числе VC++ 6.0 и VC++ 7.0. Помимо библиотек классов, в поставку Stingray Studio 2002 входят прекомпилированные ActiveX-компоненты, которые позволяют использовать объекты библиотек в средах разработки, не основанных на C++. Обзор компонентов Stingray Studio 2002Objective ToolkitObjective Toolkit предоставляет разработчикам программного обеспечения более 60 компонентов, функциональность которых восполняет пробелы, имеющиеся в MFC. Классы Objective Toolkit позволяют программистам работать в привычном окружении MFC и одновременно экономить время, необходимое для решения задач программирования пользовательского интерфейса под MFC. Компоненты, предоставляемые Objective Toolkit, можно разделить на следующие категории:
![]() Рисунок 1. Пример использования архитектуры Extended Control Bar При установке Objective Toolkit выполняется его полная интеграция в используемую среду разработки, будь то Visual C++ 6.0 / MFC 6.0 или Visual C++ 7.0 / MFC 7.0. Компоненты Objective Toolkit поддерживаются AppWizard, Component Gallery, IntelliSense. Stingray Foundation Library 2.0 Библиотека SFL реализована в виде набора независимых пакетов, в число которых входит менеджер вывода, классы архитектуры model-view-controller, и шаблонов разработки, которые могут быть использованы для интеграции либо с MFC, либо с ATL. SFL одинаково хорошо приспособлена для использования в обеих средах. SFL расширяет ATL оконными классами и классами приложения, что позволяет использовать только ATL для построения всего приложения. Разработчики могут использовать предоставляемый AppWizard, что значительно сокращает начальный этап разработки приложения. Помимо этого, SFL предоставляет классы, инкапсулирующие Windows GDI, что особенно привлекательно для разработчиков ATL, поскольку сама по себе ATL не предлагает равнозначного решения. Objective Chart 7.0 Возможности Objective Chart по созданию диаграмм и управлению ими, а также замечательная расширяемость продукта способны удовлетворить требования самого взыскательного разработчика. Перечислим основные особенности Objective Chart:
![]() Рисунок 2. Примеры диаграмм Objective Chart Objective Grid 9.0Objective Grid предоставляет разработчикам законченный набор классов, расширяющих MFC и реализующих элемент управления "таблица" (grid), обладающий действительно широкими возможностями. Без преувеличения можно сказать, что Objective Grid не только не уступает, но и, на наш взгляд, во многом превосходит по функциональности аналогичные элементы управления других производителей, в том числе и Microsoft Excel Worksheet. Перечислю некоторые особенности работы с Objective Grid:
Помимо возможности создания ячеек новых типов, Objective Grid предоставляет чрезвычайно широкий набор готовых типов ячеек. Кроме того, Grid Designer является действительно мощным и удобным инструментом визуального проектирования таблиц (см. рис. 3). В совокупности все это позволяет с минимальными затратами времени организовать достаточно сложный пользовательский интерфейс с использованием одного единственного контрола! ![]() Рисунок 3. Пример работы Objective Grid Designer Objective Views 8.0Objective Views предоставляет разработчикам библиотеку классов, использование которой позволяет создавать приложения с графическим интерфейсом drag&drop, по функциональности аналогичным интерфейсу Microsoft Visio. Классы Objective Views позволяют разработчикам создавать в рамках разрабатываемых приложений собственные графические объекты. Objective Views предоставляет canvas (поверхность для изображения), которая может быть помещена в любое окно приложения MFC. Графические компоненты (линии, текст, иконки и т.д.) пользователь может поместить на canvas с использованием технологии drag&drop. Графические компоненты могут быть объединены в сложные графические образы, символы. Символы, в свою очередь, могут быть объединены в более сложные структуры, в том числе в иерархические, или в графы. Canvas поддерживает полный набор функций манипулирования графическими компонентами и символами, в том числе масштабирование, вращение, привязку к координатной сетке. Кроме того, предоставляется возможность Undo / Redo. Objective Views включает в себя Symbol Designer, позволяющий пользователям создавать, редактировать и сохранять символы для последующего использования в приложениях Objective Views, а также создавать библиотеки символов для повторного их использования в различных приложениях. ![]() Рисунок 4. Пример окна приложения Objective Views Objective Edit 7.0Objective Edit представляет собой расширяемое и настраиваемое решение для редактирования текста с функцией динамического форматирования текста в зависимости от заданной синтаксической структуры. Objective Edit незаменим при разработке редакторов текста с предопределенной синтаксической структурой, в частности, при создании редакторов исходного кода на языках программирования. Objective Edit предоставляет простые и интуитивно понятные спосособы настройки систнаксического анализатора. Разработчик ПО имеет возможность непосредственно работать с ini-файлами определенного формата, в которых содержатся правила и определения, необходимые для синтаксического анализа. Поставка Objective Edit содержит синтаксические схемы для C, C++, Java, HTML, XML, Visual Basic и C#. Objective Edit поддерживает все стандартные для современных текстовых редакторов функции, в том числе поиск и замену, Undo и Redo, drag&drop, печать и предварительный просмотр. Objective Edit позволяет расставлять и отображать пометки в тексте, аналогичные меткам точек остановки в IDE Visual Studio. Кроме того, Objective Edit предоставляет возможность экпорта своего содержимого в формате HTML с сохранением разметки и форматирования. Интеграция с MFC и пример кода приложения Stingray Studio 2002 Поскольку продукты семейства Stingray Studio 2002 представляют собой совокупность классов, порожденных от классов MFC, создание приложений с использованием Stingray Studio 2002 не требует от разработчика применения каких-то специальных приемов программирования. Единственное требование - это изучить иерархию классов, входящих в Stingray Studio 2002. Иерархия классов меню Objective ToolkitВ качестве примера иерархии классов Stingray Studio 2002 рассмотрим классы, входящие в состав Objective Toolkit и используемые при работе с меню. Приведем иерархию классов панели управления для MFC и Objective Toolkit (рис. 5). ![]() Рисунок 5. Иерархия классов меню Objective Toolkit Благодаря такой схеме наследования, панели меню Objective Toolkit обладают функциональностью панелей управления, что позволяет организовывать прользовательский интерфейс, в котором меню, как и панели управления, можно свободно позиционировать в окне приложения, обеспечивать автоматическое позиционирование при приближении к границам окна и т.д. Применение классов меню Objective ToolkitПомимо рассмотренных выше классов, при построении приложения нам также потребуются классы окон приложения (рис. 6). ![]() Рисунок 6. Иерархия классов окон приложения Objective Toolkit Главное окно нашего приложения будет реализовано классом CMainFrame, который является дочерним классом SECFrameWnd (в случае однодокументного приложения). Встраивание панелей меню Objective Toolkit в приложениеИнстанциируем объект панели меню в конструкторе окна приложения (свойство m_pMenuBar является членом класса SECFrameWnd): CMainFrame::CMainFrame() { m_pMenuBar = new SECMDIMenuBar; } Также необходимо добавить код уничтожения объекта панели меню в код деструктора класса окна приложения: CMainFrame::~CMainFrame() { if(NULL != m_pMenuBar) { delete m_pMenuBar; m_pMenuBar = NULL; } } В обработчике события OnCreate() окна приложения необходимо добавить вызов метода SetMenuInfo() класса SECToolBarManager для определения ресурсов меню, которые будут использованы приложением. Эта функция-член принимает переменное количество параметров в зависимости от колическтва панелей управления (в число которых входят и панели меню). Синтаксис вызова выглядит так: SetMenuInfo(<count>,<menu id 1>,<menu id 2>,...,<menu id n>); Например, pMgr->SetMenuInfo(4,IDR_MAINFRAME,IDR_EDITVIEW, IDR_LISTVIEW, IDR_FILEVIEW); Для разрешения автоматического позиционирования панели меню по границам окна приложения (докинга) в обработчик события OnCreate() необходимо добавить следующий вызов: m_pMenuBar->EnableDocking(CBRS_ALIGN_ANY); Панель меню необходимо спозиционировать. Панель меню может быть освобождена после этого, но при инициализации окна явное позиционирование окна является обязательным требованием: DockControlBar(m_pMenuBar); По выполнении описанных действий получаем класс окна приложения с реализованной функциональностью позиционируемых панелей меню. Как видно, проделанная работа не выходит за рамки обычного алгоритма построения пользовательского интерфейса на базе MFC. ЗаключениеНадеюсь, мне удалось показать, насколько инструменты Rogue Wave Stingray Studio расширяют возможности разработки интерфейсов и клиентских приложений и помогают решать сложные и трудоемкие задачи. Уже сегодня Stingray Studio 2002 поддерживает как MS VC++ 6.0, так и MS VC++ 7.0, что делает ее крайне привлекательной для разработчиков .NET. Однако, на мой взгляд, круг потенциальных пользователей данного продукта не ограничивается приверженцами продуктов Microsoft: Stingray Studio могут использовать все, кто работает с компиляторами С++, поддерживающими MFC, в том числе Borland C++ Builder. Более подробно с линейкой инструментальных средств Rogue Wave Software, помимо Stingray Studio, содержащей целый ряд не менее полезных и удобных в использовании решений, можно познакомиться на http://www.roguewave.com/ или http://rw.aplana.ru/. |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Рейтинги
|