- •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.4 Хранилище объектов
Хранилище объектов обеспечивает возможность разделения (sharing) или повторного использования (reuse) содержащихся в нем объектов. В качестве объектов хранения могут выступать либо подготовленные C++Builder, или созданные вами формы, проекты, модули данных и эксперты. Кроме самих объектов, вы можете адресовать в хранилище их шаблоны, в которых зафиксированы только неизменяемые в процессе разработки компоненты.
Хранилище в сущности является индексным текстовым файлом, содержащим ссылки на страницы, объединяющие указанные объекты.
4.4.1 Разделение объектов
При разделении объектов разработчик приложения может преследовать разные цели:
Разделение объектов между проектами.
Добавляя формы, диалоги и модули данных к хранилищу, вы делаете их доступными другим проектам.
Например, все ваши проекты могли бы использовать диалог часто используемой команды меню About, содержащий, наряду с фиксированными текстами и кнопками управления, пустые поля для записи фамилий авторов приложения, года выпуска и т.д. Из этого шаблонного диалога все ваши проекты произведут диалоги стандартизованного вида, заполняя переменные поля новым конкретным содержанием.
Разделение объектов внутри проекта.
Вы можете наследовать формы, уже включенные в проект. Открывая командой File | New диалог New Items, вы увидите вкладку с именем вашего проекта. Если щелчком мыши выбрать эту вкладку, откроются списки всех форм, диалогов и модулей данных этого проекта. Затем можно произвести новый объект - форму из существующей и приспособить ее по назначению.
Например, некоторому приложению СУБД может понадобиться несколько форм, отображающих одни и те же данные, но с разными кнопками управления. Вместо того, чтобы создавать ряд почти идентичных форм, добавьте к хранилищу единую форму с общими элементами отображения данных, а затем из этой шаблонной формы производите формы с разными кнопками. Тщательно планируя содержание форм вашего проекта, вы сэкономите массу времени и усилий, которые понадобились бы при повторной разработке сходных форм в одном проекте.
Разделение проектов.
Добавляя к хранилищу проект целиком, вы создаете шаблон для будущих проектов. Если вы планируете разработать ряд сходных приложений, все они могут базироваться на единой стандартизованной модели.
Использование экспертов.
Хранилище содержит ссылки на экспертов - небольшие программы, которые проводят пользователя через серию руководящих диалогов по созданию формы или проекта. C++Builder предусматривает ряд готовых экспертов, к которым вы можете добавлять свои собственные.
4.4.2 Включение объектов в проект
Существует три способа включения в проект объектов из хранилища с целью их разделения:
Копирование объектов хранилища.
Простейший вариант разделения заключается в копировании точного дубликата объекта в ваш проект. Будущие изменения этого объекта в хранилище никак не отразятся на вашей копии, и наоборот, модификации копии не коснутся оригинала объекта в хранилище.
Замечание. Копирование представляет единственную возможность использования проектных шаблонов.
Наследование объектов хранилища.
Наиболее гибкий и мощный вариант разделения заключается в построении нового производного класса от объекта хранилища и добавлении его в ваш проект. Когда вы перекомпилируете проект, любые изменения этого объекта в хранилище отразятся на производном классе, однако модификации вашей производной никак не отразятся на оригинале объекта в хранилище. Замечание. Наследование разрешено для форм, диалогов и модулей данных, но запрещено для проектных шаблонов и экспертов. Наследование представляет единственную возможность повторного использования объектов в одном и том же проекте.
Прямое использование объектов хранилища.
Наименее гибкий вариант разделения заключается в том, что при использовании объекта хранилища, он просто добавляется к вашему проекту, как если бы был создан вами как часть проекта. Поэтому изменения объекта на стадии проектирования проявятся во всех проектах, которые прямо используют или наследуют от него. Чтобы избежать изменений в других проектах, модифицируйте объект только во время выполнения программы.
Замечание. Разрешено прямое использование форм, диалогов, модулей данных и экспертов. Использование экспертов фактически не создает разделяемые процедуры, а представляет собой запуск некоторого процесса, который генерирует свой собственный код.
Разработка нового проекта может начинаться не с пустого проекта (с именем Project 1 по умолчанию), а с некоторого шаблона из хранилища объектов.
Чтобы открыть новый проект на базе шаблона:
1. Выполните команду File | New, которая откроет диалог New Items.
2. Выберите вкладку Projects.
3. Укажите нужный шаблон и нажмите кнопку ОК.
4. В открывшемся диалоге Select Directory укажите каталог, в котором хранятся
ваши проектные файлы. Если каталог не существует, он будет создан. Копия проекта на базе шаблона откроется в указанном каталоге. Вы можете работать с проектом, добавляя новые формы и другие элементы, или, оставив его без изменений, переключиться на редактирование кода обработчиков событий. В любом случае, сделанные вами модификации будут отражаться только на открытом проекте. Оригинал шаблона останется без изменений и может быть использован повторно.
4.4.3 Добавление объектов к хранилищу
Когда вы создали новую форму или проект (или их шаблоны) и удостоверились, что они работоспособны и послужат в будущем благородной цели стандартизации облика разрабатываемых в вашей организации приложений, сохраните такие объекты в хранилище.
Чтобы добавить новый объект к хранилищу:
1. Выполните команду Project | Add To Repository, которая откроет диалог, показанный на Рис. 4.3.
2. В область редактирования Title введите название объекта.
3. В область Description введите описание объекта.
4. Из выпадающего списка Page выберите имя страницы, в которой вы хотите завести новый объект.
5. В область Author введите фамилию автора.
6. Нажмите кнопку Browse, чтобы выбрать пиктограмму, которая будет представлять объект в хранилище.
7
.
Нажмите кнопку
ОК,
чтобы сохранить текущий объект.
Имя объекта
Кнопка выбора пиктограммы
Описание объекта
Автор объекта
Страница объектов указанного типа
Рис. 4.3. Добавление формы к хранилищу объектов.
Чтобы добавить к хранилищу проект или форму в виде шаблона:
1. Если необходимо, откройте проект или форму, шаблоны которых вы хотите добавить к хранилищу.
2. Выполните команду Tools | Repository.
3. На вкладке Project Templates (или Form Templates) выберите команду Add, которая отроет диалог Save Project Template (или Save Form Template).
4. В область редактирования Title введите название проекта или формы.
5. В область Description введите описание проекта или формы.
6. Из выпадающего списка Page выберите имя страницы Projects (или Forms), в которой вы хотите завести соответствующий шаблон.
7. В область Author введите фамилию автора.
8. Нажмите кнопку Browse, чтобы выбрать пиктограмму, которая будет представлять данный шаблон в хранилище.
9. Нажмите кнопку ОК, чтобы сохранить текущий проект или форму в виде шаблона.
Замечание. Если позже вы внесете изменения в шаблон, эти изменения автоматически отразятся в новых проектах или формах, произведенных от этого шаблона, но никак не скажутся на уже созданных производных.
Чтобы увидеть описание выбранного объекта:
1. Выполните команду File | New, которая откроет диалог New Items.
2. Выберите вкладку объектов нужного типа.
3. Щелкните правой кнопкой мыши по выбранному объекту.
4. Из появившегося контекстного меню выберите опцию View Details. Описание объекта появится в столбце Description.
4.4.4 Проект и формы, создаваемые по умолчанию
Проект по умолчанию для нового приложения открывается с помощью команды File | New Application. Если вы не меняли соответствующих установок хранилища объектов, C++Builder создаст пустой проект с пустой формой. Вы можете сменить шаблон проекта по умолчанию, а также назначить запуск некоторого эксперта проектов, который проведет вас через ряд диалогов, руководящих созданием нового проекта.
Чтобы сменить проект по умолчанию:
1. Выполните команду Tools | Repository, чтобы открыть диалог хранилища Object Repository.
2. Выберите страницу с именем Projects из списка Pages.
3. Укажите проект, который вы хотите создавать по умолчанию, в списке Objects.
4. Выберите опцию New Project.
5. Нажмите кнопку OK для регистрации новой установки по умолчанию.
Новая форма по умолчанию для существующего проекта открывается с помощью
команд File | New Form (кнопка быстрого вызова). Если вы не меняли соответствующих установок хранилища объектов, C++Builder создаст пустую форму. Вы можете сменить шаблон формы по умолчанию, а также назначить запуск некоторого эксперта форм, который проведет вас через ряд диалогов, руководящих добавлением новой формы к проекту.
Чтобы сменить форму по умолчанию для существующего проекта:
1. Выполните команду Tools | Repository, чтобы открыть диалог хранилища Object Repository.
2. Выберите страницу с именем Forms из списка Pages.
3. Укажите форму, которую вы хотите создавать по умолчанию, в списке Objects.
4. Выберите опцию New Form.
5. Нажмите кнопку OK для регистрации новой установки по умолчанию.
Основная форма (или эксперт форм) по умолчанию для нового проекта устанавливается в хранилище объектов точно так же, как и форма для существующего проекта.
Чтобы сменить основную форму по умолчанию для нового проекта:
1. Выполните команду Tools | Repository, чтобы открыть диалог хранилища Object Repository.
2. Выберите страницу с именем Forms из списка Pages.
3. Укажите форму, которую вы хотите создавать по умолчанию, в списке Objects.
4. Выберите опцию Main Form.
5. Нажмите кнопку OK для регистрации новой установки по умолчанию.
