Продолжается подписка на наши издания! Вы не забыли подписаться?

ascContainer - краткая информация

Хотите ли Вы получить маленький Visual Basic, который можно встроить и использовать в любом Windows-приложении?

Вам нужно выдавать пользователю разный интерфейс для самых различных обстоятельств?

Вы хотели бы иметь возможность легко и быстро изменять внешний вид и функциональность приложения по желанию заказчика? Заказчик хочет изменять пользовательский интерфейс самостоятельно? Или автоматизировать рутинную работу по вводу данных с помощью собственных скриптов?

Для решения этих и некоторых других задачи и создавался ascContainer.

Краткое описание

ascContainer – это элемент управления ActiveX, являющийся дизайнером форм. Он позволяет встраивать в себя другие ActiveX’ы, связывать их между собой через обработчики событий, создавая таким образом «конфигурации», сохранять и загружать такие конфигурации. ascContainer реализует основную функциональность RAD-контейнера (такого как дизайнер форм VB или Delphi) и независим от среды разработки (предоставляет возможности визуальной настройки конфигураций во время исполнения программы). При этом ascContainer можно встраивать в любые приложения, поддерживающее вставку ActiveX-контролов (Internet Explorer, Visual Basic, Delphi, VC++, MS Visual FoxPro и т.п.).

Рис. 1. ascContainer (в красной рамке) встроенный в приложение написанное на VB.

ascContainer позволяет организовать взаимосвязанную работу встроенных элементов управления ActiveX - для этого создаются и используются обработчики событий. В качестве внутреннего языка программирования используется VBScript. Для редактирования обработчиков событий и написания внутренних функций используется редактор кода, снабженный подсветкой синтаксиса и CompleteWord’ом.

Рис. 2. Редактор кода с открытым списком CompliteWord.

Вместе с ascContainer поставляются примеры его использования, созданные в различных средствах просмотра и (или) быстрой разработки приложений. Эти примеры после установки будут находиться в каталоге Samples в соответствующих подкаталогах (VisualBasic, Delphi, InternetExplorer...), и содержат исходный код проектов, а также уже скомпилированные приложения. Мы не гарантируем, что эти приложения будут работать на вашем компьютере, поскольку они требуют наличия некоторых библиотек, которые могут у вас отсутствовать (например, runtime-библиотека VisualBasic'a) или быть слишком старыми (что особенно возможно при использовании Windows 95). Необходимые обновления можно взять нашего ftp-сервера. Как это сделать описано ниже. Оптимально было бы скомпилировать предлагаемые проекты прямо "на месте". Примеры на VisualBasic и Delphi идентичны по функциональности и различаются исключительно особенностями языка. Поскольку нас не в полной мере удовлетворяет реализация поддержки ActiveX в Delphi, мы переписали класс TOleControl на унаследованный от него TascOleControl (использование TascOleControl и другие подробности Вы можете найти в Samples\Delphi\readme.txt).

Для настройки свойств элементов управления ActiveX используется встроенный редактор свойств.

Рис. 3. Редактор свойств.

ascContainer позволяет синхронизировать значения свойств элементов управления ActiveX без программирования. Для этого используется механизм связывания свойств основанный на интерфейсе IPropertyNotifySink. Для создания связи между свойствами элементов управления ActiveX достаточно выбрать их по именам в «Редактор связей свойств» (см. рисунок 4).

Рис. 4. Редактор связей свойств.

Добавление обработчиков событий осуществляется с помощью редактора событий. С его помощью можно также переходить и к уже имеющимся обработчикам.

Рис. 5. Редактор событий.

Использование заранее созданных и сохраненных конфигураций (наборов элементов управления ActiveX) позволяет легко изменять внешний вид и функциональность приложения на ходу (в run-time) безо всякого программирования. Такие конфигурации могут храниться, например, в отдельных файлах. «Настройка» собирается простым накидыванием в ascContainer выбранных элементов управления ActiveX, после чего последние связываются между собой через обработчики событий. Если заранее сделать и сохранить конфигурации в файлах (есть и другие возможности), то в работающем приложении можно просто загружать их по имени – и пользовательский интерфейс будет меняться так, как вы этого захотите.

Рис. 6. Диалог добавления элемента управления ActiveX.

Если возникает ситуация, не соответствующая заранее созданной конфигурации, то пользователь сможет создать новую конфигурацию самостоятельно, переведя ascContainer в режим разработки. Хранение «настроек» во внешних файлах позволяет достичь очень большой гибкости при обновлении приложения – фактически это означает отчуждение пользовательского интерфейса от основной логики программы. Можно изменять пользовательский интерфейс и динамически, то есть в процессе работы приложения. Создавать конфигурации настолько просто, что этим может заняться сам конечный пользователь, подстраивая конфигурации под свои постоянно меняющиеся нужды.

К ascContainer’у прилагается небольшой набор элементов управления ActiveX (Label, Button, Edit, Tab, Frame).

Вообще говоря, любой элемент управления ActiveX может быть встроен в ascContainer и должен успешно работать в нем – исключения составляют лишь элементы управления ActiveX, написанные некорректно с точки зрения идеологии ActiveX и тесно связанные с конкретным контейнером (использующими недокументированные функции контейнера).

ascContainer обеспечивает возможность доступа к своему содержимому и к содержимому встроенных элементов управления ActiveX как из основной программы, так и из собственного внутреннего языка (VBScript’a).

Размеры и положение элементов управления можно задавать в различных единицах: HiMetric (десятые доли мм), мм, см, Twips, Pixel.

ascContainer может применяться для создания высокоуровневых приложений, нуждающихся в дизайнере форм. Высокая точность позиционирования элементов управления ActiveX в ascContainer’e позволяет на его основе создавать генераторы отчетов.

Нами уже начата работа над созданием генератора отчетов на базе ascContainer’а.

Итак, ascContainer может сильно упростить и ускорить сборку пользовательского интерфейса приложения, обеспечить основную функциональность Visual Basic в любом месте приложения (причем доступную в run-time!).


Copyright © 1994-2022 ООО "К-Пресс"