
- •1. Общие характеристики
- •1.1 Основные характеристики
- •1.1.1 Скорость визуальной разработки
- •1.1.2 Продуктивность компонент
- •1.1.4 Масштабируемые соединения с базами данных
- •1.2 Другие программные продукты Borland
- •1.3 Проблемы совместимости
- •1.3.2.1 Какую систему выбрать?
- •1.3.2.2 Какая система является более мошной?
- •2.1 Первое знакомство
- •2.1.1 Визуальное проектирование
- •2.1 Первое знакомство
- •2.1.2 Свойства, методы и события
- •2.1.3 Технология двунаправленной разработки
- •2.1.4 Использование проектных шаблонов
- •2.2 Палитра компонент - краткий обзор
- •2.3 Приложения управления базами данных
- •2.3.1 Пример из существующего проекта
- •2.4 Итоги
- •3.1 Инкапсуляция
- •3.2 Классы, компоненты и объекты
- •3.3 Наследование
- •3.5 Полиморфизм
- •3.5.2 Дружественные функции
- •3.6.1.1 Объявления компонентных классов
- •3.6.1.2 Объявления свойств
- •3.6.1.3 Объявления обработчиков событий '
- •3.6.1.4 Объявления автоматизированных свойств и методов
- •3.6.1.5 Быстрый вызов функций
- •3.6.1.6 Расширенные типы данных Delphi
- •3.6.2.1 Шаблоны
- •3.6.2.2 Пространства имен
- •3.6.2.3 Явные объявления
- •3.6.2.4 Непостоянные объявления
- •3.6.2.5 Идентификация типов rtti
- •3.6.2.6 Исключения
- •4. Инструменты визуальной разработки приложений
- •4.1 Администратор проекта
- •4.2 Редактор форм
- •4.3 Инспектор объектов
- •4.4 Хранилище объектов
- •4.4.1 Разделение объектов
- •4.5 Редактор кода
- •4.6 Палитра компонент
- •4.6.1.2 TPopUpMenu
- •4.6.1.4 TEdit
- •4.6.1.6 TButton
- •4.6.1.7 TCheckBox
- •4.6.1.8 Ей tRadioButton
- •4.6.1.9 TListBox
- •4.6.1.10 TComboBox
- •4.6.1.12 TGroupВох
- •4.6.2.1 TTabControl
- •4.6.2.2 TPageControl
- •4.6.2.5 TImageList
- •4.6.2.6 THeaderControl
- •4.6.2.7 TRichEdit
- •4.6.2.9 TTrackBar
- •4.6.2.10 TProgressBar
- •4.6.2.11 TUpDown
- •4.6.2.12 И tHotKey
- •4.6.3.5 TDrawGrid
- •4.6.4.1 TDataSource
- •4.6.4.2 ТТаble
- •4.6.4.3 TQuery
- •4.6.4.4 TStoredProc
- •4.6.4.6 TSession
- •4.6.4.8 TUpdateSql
- •4.6.5.1 TdbGrid
- •4.6.5.2 TdbNavigator
- •4.6.5.3 TdbText
- •4.6.5.4 TdbEdit
- •4.6.5.6 TdbImage
- •4.6.5.7 TdbListBox
- •4.6.5.8 TdbComboBox
- •4.6.5.9 TdbCheckBox
- •4.6.5.11 TdbLookupListBox
- •4.6.7.1 TOpenDialog
- •4.6.7.2 TSaveDialog
- •4.6.7.3 TFontDialog
- •4.6.7.4 TColorDialog
- •4.6.7.5 TPrintDialog
- •4.6.7.6 TPrinterSetupDialog
- •4.6.7.8 TReplaceDialog
- •4.6.7.9 Использование диалоговых компонент текстовым редактором. Приемы отладки
- •4.6.8.1 TTimer
- •4.6.8.2 TPaintBox
- •4.6.8.3 TFileListBox
- •4.6.8.6 TFilterComboBox
- •4.6.8.7 TMediaPlayer
- •4.6.8.8 TOleContainer
- •4.6.8.9 TDdeClientConv
- •4.6.8.10 TDdeClientltem
- •4.6.8.11 TDdeServerConv
- •4.6.8.12 TDdeServerltem
- •4.6.9.1 TQuickReport
- •4.6.9.2 TqrBand
- •4.7 Дизайнер меню
- •4.8 Итоги
- •5. Визуальная разработка приложений баз данных
- •5.1 Организация доступа к базам данных
- •5.1.2.1 Страница Drivers
- •5.1.2.2 Страница Aliases
- •5.1.2.3 Страница System
- •5.1.2.4 Страница Date
- •5 .1.2.5 Страница Time
- •5.1.2.6 Страница Number
- •5*2 Использование визуальных компонент
- •5.2.1.1 Источники данных
- •6. Использование и создание визуальных компонент
- •6.1 Назначение и устройство vcl
- •6.2 Типы компонент
- •6.2.5.1 Право владения
- •6.2.5.2 Родительское право
- •6.2.5.3 Поточность
- •6.3 Свойства компонент
- •6.3.1 Зачем нужны свойства?
- •6.3.2.1 Доступ к внутренним данным свойств
- •6.3.2.2 Свойства обеспечивают доступ к членам данных
- •6.3.2.3 Методы записи и чтения свойств
- •6.3.3 Переопределение свойств
- •6.3.4.1 Свойства типа множество
- •6.3.4.2 Свойства типа массив
- •6.4 События
- •6.4.1 Зачем нужны события?
- •6.4.2 Определение событий
- •6.4.2.3 Стандартные события
- •6.4.2.4 Собственные события
- •6.4.2.5 События и сообщения Windows
- •6.4.3 Обработка событий
- •6.5 Методы
- •6.5.1 Вызовы статических методов
- •6.6.1 TObject
- •6.6.2 TPersistent
- •6.6.3 TComponent
- •6.6.4 TControl
- •6.6.5 TWinControl
- •6.6.6 TGraphicControl
- •6.7 Схема разработки компонент
- •6.7.1 Создание модуля компоненты
- •6.7.2 Наследование компоненты
- •6.7.2.1 Модификация существующих компонент
- •6.7.2.2 Создание оригинальных оконных компонент
- •6.7.2.3 Создание графических компонент
- •6.7.2.4 Создание невидимых компонент
- •6.7.3 Добавление свойств, событий и методов.
- •6.7.4 Регистрация компоненты
- •6.7.5 Отладка неинсталлированной компоненты
- •6.7.6 Инсталляция компоненты на Палитру
- •6.7.7 Сохранение файлов новой компоненты
- •6.8 Разработка простой компоненты
- •6.8.1 Форма тестового приложения
- •6.8.2 Модуль тестового приложения
- •6.8.3 Члены данных, свойства и методы
- •6.8.4 Испытание компоненты
- •6.8.5 Инсталляция компоненты
- •6.9 Итоги
- •7. Графические компоненты
- •7*2 Использование канвы
- •7.3 Работа с рисунками
- •7.3.1 Рисунок, графика или канва9
- •7.3.2 Графические файлы
- •7.3.3 Обслуживание палитр
- •7.4 Внеэкранные битовые образы
- •7.4.1 Копирование битовых образов.
- •7.4.2 Создание и обслуживание
- •7.4.3 Реакция на изменения
- •7.5 Разработка графического приложения
- •7.5.1 Проектирование формы
- •7.5.2 Программный модуль
4.6.2.9 TTrackBar
Создает шкалу с метками и регулятором текущего положения (вариант линейки прокрутки).
Свойства Min и Мах устанавливают интервал значений шкалы, причем свойство Position отражает текущую позицию регулятора внутри заданного интервала. Число изображаемых меток специфицирует свойство Frequency. На сколько меток должен продвинуться регулятор, когда пользователь щелкает мышью на самой шкале (по обеим сторонам от регулятора) или нажимает клавиши PageUp и PageDown, определяет значение свойства PageSize. На сколько меток должен продвинуться регулятор, когда пользователь нажимает клавиши позиционирования курсора, определяет значение свойства LineSize.
Чтобы изменить вид шкалы, используйте свойства TickStyle и TickMarks. Значения свойств SelStart и SelEnd устанавливают границы разрешенных перемещений регулятора.
4.6.2.10 TProgressBar
С
оздает
индикатор, который отслеживает процесс
выполнения некоторой процедуры в вашей
программе. По мере выполнения процедуры,
прямоугольный индикатор постепенно
окрашивается слева направо заданным
цветом.
Свойства Min и Мах устанавливают интервал значений индикатора. Свойство Step задает шаг изменения значения свойства Position всякий раз, когда позиция индикатора меняется.
C++Builder поставляется вместе с шуточным примером, который демонстрирует работу прогресс-индикатора в тесте для измерения "скорострельности" работы машинисток
=> По команде главного меню File | Open Project
откройте диалог выбора проектов. => Войдите в каталог \...\CBuilder\Examples\Apps\Wpm. => Выберите проектный файл Wpm и нажмите кнопку Open.
=> Командой главного меню Run | Run запустите процесс компиляции и сборки приложения.
Код программного модуля WPMMAIN.CPP чрезвычайно лаконичен и не нуждается в дополнительных комментариях. Вы легко сможете адаптировать поведение приложения в соответствии со своим вкусом, в частности, переведя его на родной язык. Результат самотестирования автора книги (Рис. 4.15) показывает его совершенную непригодность к машинописи.
Рис. 4.15. Работа приложения для тестирования машинисток.
4.6.2.11 TUpDown
Создает спаренные кнопки со стрелками л. (вверх) и •”• (вниз). Нажатие этих кнопок вызывает, соответственно, увеличение или уменьшение численного значения свойства Position.
Эта компонента обычно используется вместе с сопровождающим элементом управления, задаваемым свойством Associate. Когда сопровождающим элементом служит область редактируемого ввода, значение свойства Position определяет форматирование вводимого текста. Если свойство Associate не специфицировано, значение свойства Position содержит числовую величину.
4.6.2.12 И tHotKey
Используется для установки клавиш быстрого вызова (shortcut) во время выполнения программы. Пользователь может ввести комбинацию "горячих" клавиш, обычно состоящую из модификатора (Ctrl, Alt или Shift) и любого символа, включая функциональные клавиши F1,..F12.
Введенную комбинацию, записанную в свойстве HotKey, можно присвоить свойству Shortcut другой компоненты. Чтобы выбрать горячие клавиши на стадии проектирования, используйте свойства HotKey и Modifiers, а чтобы отменить их - свойство InvalidKeys. Чтобы изменить комбинацию во время выполнения программы, удерживайте нажатой клавишу модификатора и одновременно введите новый символ.
4.6.3 Дополнительные компоненты
Компоненты вкладки Additional палитры компонент
осуществляют включение в вашу программу 9 элементов управления, разработанных корпорацией Borland специально для среды C++Builder.
4.6.3.1 TBitBtn
Создает кнопку с изображением битового образа. Такие кнопки чаще всего используются в специальных диалоговых окнах.
Графические кнопки имеют свойства для спецификации битовых образов, их вида и размещения на кнопке. Вы можете пользоваться готовыми стилями графических кнопок из отдельного каталога изображений, входящего в поставку C++Buider или собственными картинками, созданными одной из систем редактирования изображений. Различным состояниям кнопки (например, "нажата", "отпущена", "запрещена" и т.п.) могут соответствовать разные битовые образы.
О
кно
редактора файлов изображений с расширением
bmp (Рис. 4.16) открывается кнопкой
значений свойства Glyph. Свойство Kind поможет вам создать стандартизованные кнопки, снабженные надписями и соответствующей графикой: ОК, Cancel. Helo и другие.
Рис. 4.16. Редактор изображений файлов битовых образов с расширением bmp.
4.6.3.2 TSpeed Button
Создает графическую кнопку, обычно располагаемую на панели (TPanel) быстрого вызова определенных команд меню или установки режимов.
Р
азличным
состояниям быстрой кнопки (например,
"нажата", "отпущена", "запрещена"
и т.п.) могут соответствовать разные
графические образы. Имеются свойства
для выбора заменяющих друг друга
изображений и текста надписи. Окно
редактора файлов изображений с расширением
(Рис. 4.16) открывается кнопкой графе
значений свойства Glyph. Другие свойства
быстрых кнопок организуют их работу в
некоторой группе.
Создает контролируемую прямоугольную область редактируемого ввода данных специфического формата. Корректность вводимого текста проверяется посредством маски, кодирующей разрешенные форматы, в которых текст может быть введен и представлен пользователю (дата, время, телефонный номер и т.п.). Свойство EditMask хранит код текущей маски. Окно редактора масок (Рис. 4.17)
открывается кнопкой в графе значений этого свойства.
Рис. 4.17. Создание маски для ввода телефонных номеров.
TMaskEdit является прямой производной класса TCustomMaskEdit.
Создает регулярную сетку для отображения символьных последовательностей по строкам или столбцам.
Названия и назначение всех свойств этой компоненты, которыми вы можете манипулировать в период проектирования, полностью идентичны свойствам компоненты TDrawGrid, описываемой в следующем параграфе.
Все объекты, связанные с символьными последовательностями, заключены в свойстве Objects, которое позволяет обращаться к нужному объекту. Во время выполнения программы символьные последовательности и связанные с ними объекты некоторого столбца сетки адресуются свойством Cols. Свойство Rows позволяет подобным образом оперировать со строками сетки. Все символьные последовательности сетки содержатся в свойстве Cells, которое адресует нужную ячейку сетки.