
- •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.5.11 TdbLookupListBox
Создает таблицу ссылок для заполнения полей информацией из другого набора данных.
Небольшая по объему таблица ссылок (lookup table) содержит коды разрешенных значений, которые может принимать некоторое поле. Например, в базе данных электронной записной книжки обязательно имеются записи почтовых адресов. Название города и улицы из конкретного адреса можно закодировать в таблицах ссылок "Города" и "Улицы". Компоненты будут эффективно обращаться с короткими кодами полей (например, "МК" вместо "Москва" или "ЛНП" вместо "Ленинградский проспект"), структура базы данных станет равномерной, а пользователь по-прежнему будет оперировать с полями полных названий.
Вы должны связать компоненту TDBLookupListBox с набором данных посредством компоненты источника TDataSource, который идентифицируется значением свойства DataSource. Свойство DataField указывает либо на поле в наборе данных, либо на поле в таблице ссылок, к которому вы хотите обратиться. В последнем случае вам не надо определять прочие свойства - компонента сделает это самостоятельно.
Не забудьте поместить на форму еще пару компонент TTable и TDataSource, чтобы получать информацию из таблицы ссылок. Свойство ListSource идентифицирует источник таблицы ссылок. Свойство ListField представляет поле в таблице ссылок, содержащее код ссылки как таковой. Свойство KeyField определяет индекс поля ссылки, которое вы хотите скопировать в DataField.
4.6.5.12 TDBLookupComboBox
Создает комбинацию области редактирования и выпадающей таблицы ссылок для заполнения полей информацией из другого набора. Смысловое содержание свойств компонент TDBLookupComboBox и TDBLookupListBox полностью совпадает.
4.6.6 Компоненты Win 3.1
К
омпоненты
вкладки
Win 3.1
палитры компонент
представляют 7 интерфейсных элементов Windows 3.1 для включения в вашу программу.
4.6.6.1 TDBLookupList
Эта компонента поддерживает совместимость с системой Windows 3.1; ее аналогом является компонента TDBLookupListBox из вкладки Data Controls.
4.6.6.2 TDBLookupCombo
Эта компонента поддерживает совместимость с системой Windows 3.1; ее аналогом является компонента TDBLookupComboBox из вкладки Data Controls.
4.6.6.3 [TTabSet
Отображает ряд горизонтальных вкладок, нажатие на которые инициирует некоторые действия в вашей программе. Эта компонента поддерживает совместимость с Windows 3.1; ее аналогом является компонента TTabControl из вкладки Win95.
Названиявкладок вводятся в список свойства Tabs кнопкой в графе значений этого свойства. TTabSet обычно используется совместно с компонентой TNotebook для представления ряда страниц блокнота в одном диалоговом окне. В этом случае обработчик события OnClick сначала соединяет все страницы блокнота с вкладками, а затем меняет текущую страницу блокнота при нажатии на новую вкладку:
TabSetl->Tabs = Notebookl->Pages;
Notebookl->PageIndex = TabSetl->TabIndex;
Номер выбранной вкладки содержится в свойстве Tablndex. Чтобы определить, какая вкладка является (или сделать вкладку) первой видимой в наборе, воспользуйтесь свойством Firstlndex.
Несколько свойств управляют видом компоненты. Значение alBottom свойства Align требует разместить вкладки внизу формы. Цветовое различие выбранной и невыбранных вкладок задают свойства SelectedColor и UnselectedColor. Свойства BackgroundColor и DitherBackground меняют цвет и яркость фона под набором вкладок. Расстояние вкладок от краев компоненты определяют свойства StartMargin и EndMargin. Чтобы появлялись кнопки прокрутки, когда не хватает места для отображения всех вкладок, установите значение true свойства AutoScroll. Выбор между надписями и графическими изображениями на вкладках осуществляет свойство Style.
4.6.6.4 TOutline
Представляет механизм построения многоуровневой древовидной структуры для определенной иерархии данных.
Отрезки линий обводки (ветви дерева) пронумерованы, начиная с 1, и содержатся в массиве свойства Items. Одна и та же, например, первая (верхняя) ветвь некоторого дерева Outlinel может адресоваться прямо, как Outlinel[l], или косвенно, как Outlinel. Items[l]. Дерево имеет смысл строить во время выполнения программы. Добавляйте новые родительские ветви к дереву с помощью методов Add и AddObject. Добавляйте новые ветви потомков с помощью методов AddChild и AddChildObject. Для замены существующей ветви используйте методы Insert и InserObject. Метод Delete вычеркивает указанную ветвь.
Для ускорения выполнения перечисленных действий заключите их между методами BeginUpdate и EndUpdate, что избавит от избыточной перенумерации ветвей в процессе создания дерева. Значение свойства Selectedltem отражает номер текущей выбранной ветви.
Узлы дерева могут сопровождаться идентифицирующими картинками. Свойство OutlineStyle определяет очертание дерева и тип узловых картинок, а их вид конкретизируют свойства PictureLeaf, PictureMinus, PicturePlus, PictureOpen и PictureClosed.
4.6.6.5 THeader
Отображает секционированный заголовок и позволяет менять размеры его секций, манипулируя кнопками мыши. Эта компонента поддерживает совместимость с Windows 3.1; ее аналогом является компонента THeaderControl из вкладки Win95.
Секции заголовка содержатся в свойстве Sections. Можно изменять размер выбранной секции и перетаскивать ее границы в новое положение, удерживая нажатой кнопку мыши: на стадии проектирования - правую кнопку, а во время выполнения программы - левую. Размеры других секций остаются без изменения.
Если свойство AllowResize разрешает изменение размера, то в начале изменения происходит событие OnSizing, а по окончании изменения - событие OnSized. Обработчики этих событий могут, например, выровнять текст под заголовком в соответствии с новой шириной секции.
4.6.6.6 TTabbedNotebook
Представляет ряд страниц блокнота, каждая из которых содержит собственный набор элементов управления. Нажимая на закладку, которая выступает из верхней части страницы, пользователь выбирает ее. Эта компонента поддерживает совместимость с Windows 3.1; ее аналогом является компонента TPageControl из вкладки Win95.
Доступные страницы блокнота с закладками представляют собой символьные последовательности, перечисленные как значения свойства Pages. Окно редактора блокнота (Рис. 4.20) открывается кнопкой в графе значений этого свойства. Вы можете активизировать конкретную страницу одним из следующих способов: выбрав ее из выпадающего списка свойства ActivePage, a также перелистывая закладки с помощью опций Next Page и Previous Page контекстного меню.
Рис. 4.20. Конструирование заготовки блокнота.
Если вы хотите переопределить значение указателя Pagelndex для конкретной страницы, обратитесь к методу GetIndexForPage. Свойство TabsPerRow определяет число закладок в одном ряду. Если в блокноте имеется больше страниц, чем закладок, умещающихся в ряду, автоматически достраивается следующий ряд закладок. Шрифт надписей на закладках задается свойством TabFont.
4.6.6.7 TNotebook
Представляет ряд страниц блокнота. Пользователь выбирает нужную страницу, щелкая по ней мышью. Эта компонента обычно используется совместно с компонентой TTabSet, чтобы нажатием на соответствующие вкладки выбирать страницы. Совместное использование компонент описано в п.4.6.6.3.
Доступные страницы блокнота представляют собой символьные последовательности, перечисленные как значения свойства Pages. Обратиться к конкретной странице блокнота можно посредством свойств Pagelndex или ActivePage.
4.6.7 Диалоговые компоненты
Компоненты вкладки Dialogs палитры компонент
осуществляют включение в вашу программу 8 диалоговых элементов Windows, являющихся прямыми производными от абстрактного класса TCommonDialog.