Полезные компоненты для пользователей Delphi и С++Builder: Delphi VCL Extensions (RX) Lib v 2.50

Наталия Елманова

Страница RX Controls

Страница RX Tools

Страница RX DBAware

Некоторые полезные функции и классы

Некоторые полезные примеры

 

Библиотека компонентов Delphi VCL Extensions (RX) Library, разработанная Федором Кожевниковым, Сергеем Королевым и Игорем Павлюком, представляет собой бесплатный свободно распространяемый (freeware) продукт, уже в течение трех лет пользующийся заслуженной популярностью как в нашей стране, так и за рубежом. По мнению наиболее квалифицированных разработчиков, анализировавших исходные тексты RX Library, компоненты и классы этой библиотеки практически не содержат ошибок.

Версия 2.50 этой библиотеки содержит более 60 визуальных и невизуальных компонентов, а также набор полезных классов и функций, включая исходные тексты всех модулей. В настоящее время она доступна по адресу http://www.torry.ru/vcl/packs/rxlib.zip. Там же можно найти дополнения к этой версии (http://www.torry.ru/vcl/packs/rxfix.zip).

Данная версия этой библиотеки может быть использована со всеми имеющимися на сегодняшний день версиями Delphi (начиная с версии 1.0 и заканчивая версией 4.0) и С++Builder (версии 1.0 и 3.0). Библиотека содержит также файлы ресурсов для 15 языков (помимо русского и английского). Файл справки доступен на русском языке (по мнению зарубежных разработчиков, отсутствие англоязычной справки — самый серьезный недостаток данной библиотеки, но российские разработчики, я надеюсь, не очень пострадают от ее отсутствия).

После установки библиотеки в соответствии с прилагаемыми к ней инструкциями в палитре компонентов появятся три дополнительные страницы: RX Controls (управляющие элементы, рис. 1a), RX Tools (разнообразные полезные компоненты, в основном невизуальные, рис.1b) и RX DBAware (компоненты доступа к данным и отображения данных, рис. 1c). Рассмотрим эти компоненты более подробно. 

Страница RX Controls

На странице RX Controls содержатся разнообразные управляющие элементы, по большой части представляющие собой расширения стандартных интерфейсных элементов, способные украсить приложение и улучшить его пользовательский интерфейс. В частности, она содержит несколько любопытных расширений обычного поля редактирования, например компонент для ввода даты TDateEdit; поле редактирования, в которое можно поместить результат расчета на всплывающем калькуляторе TСalcEdit; компоненты для ввода имен файлов и каталогов, позволяющие как непосредственно ввести их, так и выбрать с помощью стандартного диалога Windows; специальный компонент для ввода денежных величин и некоторые другие полезные компоненты, представляющие вариации на тему однострочного редактора текста. Следует заметить, что применение большинства из них может быть весьма полезным, например, в финансовых и бухгалтерских приложениях (рис. 2). 

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

Помимо перечисленных компонентов, на странице RX Controls содержатся компоненты, которые наверное пригодятся разработчикам игр: компонент TAnimatedImage для отображения последовательно меняющихся графических изображений, будильник с меняющимся стилем и даже игральная кость (рис. 4).

В начало

В начало

Страница RX Tools

Страница компонентов RX Tools содержит различные полезные компоненты, способные упростить создание пользовательских интерфейсов. Среди них следует особо отметить невизуальный компонент TPageManager, позволяющий создавать серии сменяющих друг друга форм, наподобие используемых серий форм в некоторых экспертах Delphi и C++Builder (рис. 5).

Еще один полезный компонент страницы RX Tools — TSpeedBar — настраиваемая инструментальная панель, позволяющая пользователю с помощью операции drag-and-drop перетаскивать кнопки из предусмотренного разработчиком набора, отображаемого в интуитивно понятном диалоге, на инструментальную панель (рис. 6). 

Весьма интересен также компонент TClipboardViewer, предназначенный для просмотра содержимого буфера обмена, независимо от типа содержащихся в нем данных. Отметим, что весьма полезная утилита просмотра содержимого буфера, существовавшая в Windows 3.1 и куда-то исчезнувшая в Windows 95/98/NT, может быть создана с использованием этого компонента буквально за минуту (рис. 7). 

Весьма интересен также компонент TDualListDialog — двойной список с перемещаемыми элементами (подобные диалоговые панели нередко используются в средах разработки Delphi и C++Builder, рис. 8). 

Из других компонентов отметим также TFormPlacement и TFormStorage — невизуальные компоненты, которые позволяют хранить сведения о состоянии и размере содержащей их формы, а также сведения о текущих значениях свойств компонентов, находящихся на ней, во внешнем ini-файле; TPicClip — массив битовых изображений; TSecretPanel — панель, позволяющую разместить, помимо обычных визуальных элементов, скрытое изображение или текст, причем последний может циклически прокручиваться (рис. 9). 

Отметим также невизуальный компонент TMRUManager, предназначенный для работы со списками последних использованных элементов, таких как последние открытые (закрытые) файлы, таблицы баз данных и т.д. Этот компонент позволяет автоматически создавать подменю со списком таких элементов или добавлять их к существующему меню.

Еще один невизуальный компонент — TAppEvents — предназначен для создания в режиме дизайна формы обработчиков событий TApplication и задания значения некоторых свойств TApplication.

Весьма интересны также TRxMainMenu и TRxPopupMenu — аналоги обычных компонентов для отображения меню, используемых в Delphi и C++Builder, и позволяющих добавлять к пунктам меню графические изображения. Пользователям Delphi 4 они могут показаться не представляющими интереса, однако напомним, что и эти, и другие компоненты работоспособны во всех версиях Delphi и C++Builder, начиная с первой версии Delphi, а рынок приложений, нетребовательных к ресурсам рабочих станций, в том числе 16-разрядных, в нашей стране пока еще достаточно велик.

В начало

В начало

Страница RX DBAware

Эта страница содержит компоненты доступа к данным и отображения данных, расширяющие возможности, предоставляемые обычными компонентами Data Access и Data Controls.

Из невизуальных компонентов следует отметить компонент TRxQuery, являющийся наследником TQuery и обладающий дополнительным свойством Macros, которое позволяет изменять текст запроса во время выполнения, — например, заменить предложение WHERE или ORDER BY, что практически невозможно сделать, используя стандартные параметризованные запросы, генерируемые компонентом TQuery (рис. 10).

Компонент TSQLScript предназначен для выполнения наборов из нескольких SQL-предложений. Если база данных, в которой эти предложения выполняются, позволяет использовать транзакции, этот компонент позволяет определить, за одну или за несколько транзакций выполняются эти предложения.

Компонент TMemoryTable предназначен для создания небольших таблиц в оперативной памяти. Использование таких таблиц бывает необходимо в том случае, когда требуется высокая скорость доступа к содержащимся в них данным.

Компонент TQBEQuery позволяет работать с запросами формата QBE, используемого в Database Desktop и Corel Paradox.

Компонент TRxDBFilter реализует возможность наложения фильтров на курсор (набор данных, передаваемый на рабочую станцию) без применения дополнительных запросов. Преимущество фильтров заключается в их быстродействии и отсутствии доплнительных обращений к серверу баз данных, что может оказаться необходимым в тех случаях, когда требуется многократно динамически изменять условия отбора записей. Фильтр может накладываться на любой набор данных — как TTable, так и TQuery или TQBEQuery; при этом наличие индексов для полей, на которые накладываются условия, не требуется (рис. 11). 

Компонент TDBSecurity предоставляет два диалога, которые являются общепринятыми в приложениях, работающих с базами данных: диалог регистрации пользователя и диалог смены пароля пользователя. Он также может заблокировать приложение, минимизировав его, и потребовать от пользователя пароль для его разблокировки.

Еще три компонента позволяют осуществить доступ к объектам доступных баз данных. Компонент TBDEItems предоставляет доступ к спискам всех доступных баз данных (включая псевдонимы), драйверов баз данных или языковых драйверов (в зависимости от значения свойства ItemType), доступ к которому осуществляется как к обычной таблице. Компонент TDatabaseItems предоставляет доступ к спискам объектов (таблиц, файлов или хранимых процедур) базы данных в виде набора данных, доступ к которому осуществляется как к обычной таблице. Компонент TTableItems предоставляет доступ к списку элементов (полей, индексов, правил ссылочной целостности и т.д.) в виде набора данных, доступ к которому также осуществляется как к обычной таблице.

Компонент TDBProgress иcпользует Callback-функции IDAPI для сообщения о ходе выполнения длительных операций с базами данных.

Из визуальных компонентов следует отметить компонент TRxDBGrid — наследник TDBGrid, позволяющий отображать BLOB-поля базы данных в виде пиктограмм, изменять цвет шрифта и фона любой ячейки таблицы (либо любой ее строки или столбца) в зависимости от значения поля или имени поля набора данных, сохранять и восстанавливать порядок и ширину столбцов в INI-файле или в реестре, а также выбирать несколько записей. Заголовки колонок этого компонента могут быть использованы как кнопки, например, для изменения порядка сортировки отображаемых данных. Можно также зафиксировать в компоненте TRxDBGrid несколько первых колонок (рис. 12). 

Компонент TDBStatusLabel, изображенный на этом же рисунке, позволяет отобразить состояние набора данных, а также число записей и номер текущей записи.

Еще один полезный визуальный компонент — TDBIndexCombo, выводящий комбинированный список индексов таблицы, позволяя пользователю менять порядок сортировки записей в наборе данных, полученном на основе таблицы.

Компонент TRxDBLookupCombo почти полностью аналогичен компоненту TDBLookupCombo, но позволяет использовать в качестве свойства LookupSource любой источник данных — как TTable, так и Tquery; при этом свойство LookupField не обязательно должно быть индексированным полем. Кроме того, компонент позволяет производить поиск нужной записи при наборе первых нескольких символов, а также задавать изображения для рисования в левой части каждой строки списка, в зависимости от содержимого полей базы данных (рис. 13). 

Помимо рассмотренных визуальных компонентов для отображения данных библиотека содержит также разнообразные поля редактирования, в некоторых случаях аналогичные компонентам со страницы RX Controls (TRxDBCalcEdit, TDBDateEdit и др.).

В начало

В начало

Некоторые полезные функции и классы

Класс TOleController реализует контроллер автоматизации, иногда удобный тем, что позволяет вызывать методы сервера автоматизации, имена которых заканчиваются символом “$”.

Класс TGIFFrame предназначен для доступа к графическим изображениям из файла формата GIF. GIF-файл может содержать более одного изображения, то еть быть анимированным. Предоставляет доступ к характеристикам изображения, таким как частота смены кадров, цвет, считающийся прозрачным, и др.

TGIFImage позволяет читать и записывать графические данные в формате GIF. Свойства класса TGIFImage предоставляют доступ к характеристикам изображения. Класс TGIFImage поддерживает изображения, содержащие до 256 цветов, форматов GIF 87a и GIF 89a, включая графические расширения, такие как анимированное изображение, прозрачность и т.д. Имеется возможность рисовать изображения и отдельные кадры из анимированных изображений.

Для иллюстрации работы этих двух классов в комплекте поставки библиотеки имеется пример RX GIF Animator, позволяющий создавать анимированные изображения и напоминающий по функциональности Microsoft GIF Animator (рис. 14). 

Функция GetFormulaValue вычисляет результат математического выражения, заданного параметром Formula. Для вычислений используется объект класса TRxMathParser. Класс TRxMathParser, в свою очередь, представляет анализатор арифметических выражений, предоставляемых в виде строки.

Большое количество полезных функций имеется в модуле AppUtils, BDEUtils, FileUtil, MaxMin, VCLUtils. Перечислять их здесь не имеет смысла, так как все они подробно описаны в файле справки, поставляемой с библиотекой.

В начало

В начало

Некоторые полезные примеры

С библиотекой RX Library поставляется несколько примеров, иллюстрирующих применение компонентов и классов, входящих в ее состав.

Пример RX Library Demo Program иллюстрирует работу большинства компонентов (рисунки 2-11 данной статьи сделаны с использованием этого примера). Эта демонстрационная программа существует также в версии для C++Builder.

Пример RX GIF Animator позволяет создавать анимированные изображения в формате GIF и предназначен для иллюстрации классов, предназначенных для работы с этим форматом.

Особый интерес представляет утилита Database Explorer (имеющаяся в 16- и 32-разрядном вариантах, а также в варианте для C++Builder). Некоторые ее функциональные возможности имеются в SQL Explorer, но по сравнению с ним имеются и другие полезные возможности, например, трассировка SQL-предложений, экспорт и импорт данных и др. (рис. 15). 

Таким образом, библиотека RX Library предоставляет разработчикам набор весьма полезных компонентов, классов и функций, способных улучшить функциональность и пользовательский интерфейс приложений самого разнообразного назначения — от игр до сложных корпоративных приложений, созданных с помощью всех версий Delphi и C++Builder.

 

Координаты автора: Центр информационных технологий, http://www.citmgu.ru, http://www.citforum.ru.

Тел.: (095)932-92-12, 932-92-13. E-Mail: elmanova@citmgu.ru, elmanova@usa.net

КомпьютерПресс 12'1999


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует