Математика | ||||
Архангельский А.Я. Программирование в Delphi 5 — 2-е изд., переработ, и дополн. — М.: ЗАО «Издательство БИНОМ», 2000 г. — 1072 с.: ил. Книга содержит методические и справочные материалы по новой версии широко известной системы визуального объектно-ориентированного программирования Delphi. Рассмотрены такие новые возможности Delphi, как интернационализация приложений, компоненты — серверы СОМ, технологии доступа к данным ADO и InterBase Express. Наряду с Delphi 5 рассматриваются предшествующие версии этой системы, включая и версию Delphi 1, не потерявшую значение при разработке прикладных программ для маломощных компьютеров. Рассмотрена методика построения прикладных программ, реализующих текстовые и графические редакторы, мультипликацию и мультимедиа, работу с базами данных, построение справочных систем, отчетов, интерфейсов к внешним программам. Справочная часть книги содержит материалы по языку Object Pascal, функциям Delphi и API Windows, компонентам и классам Delphi, их свойствам, методам и событиям. Книга рассчитана как на начинающих, владеющих только основами какого-нибудь языка программирования, так и на опытных разработчиков. | ||||
Содержание От автора............................ 27 Чем эта книга отличается от других книг о Delphi............ 27 Что вы найдете в этой книге...................... 29 Чего вы не найдете в этой книге................ „..... 31Рекомендации по работе с книгой.................... 31 Благодарности............................. 32 ЧАСТЬ I. Объектно-ориентированное визуальное программирование............ 33 Глава 1. Принципы объектно-ориентированного визуального программирования........... 35 1.1 Объектно-ориентированное программирование.......... 35 1.2 Объект, свойства, методы, события............... 36 1.3 Основы визуального программирования интерфейса....... 38 1.4 Предварительные сведения о классах и наследовании....... 39 1.5 Системы быстрой разработки приложений............ 40 1.6 Язык объектно-ориентированного проектирования Object Pascal. . 41 1.6.1 Введение............................. 41 1.6.2 Структура файла головной программы приложения Delphi...... 41 1.6.3 Структура модуля........................ . 43 1.6.4 Области видимости и доступ к объектам, переменным и функциям модуля...................'..... 45 1.6.4.1 Структура модуля, содержащего объекты и процедуры........ 45 1.6.4.2 Доступ к свойствам и методам объектов............... 47 1.6.4.3 Различие переменных, функций и процедур, включенных и не включенных в описание класса................ 47 1.6.4.4 Области видимости переменных и функций............. 48 1.6.4.6 Передача параметров в функции.................. 49 Глава 2. Система визуального объектно-ориентированного проектирования Delphi................ 51 2.1 Что может Delphi...........,........... 51 2.2 От Delphi 1 к Delphi .5..................... 52 2.3 Интегрированная Среда Разработки (ИСР) Delphi......... 53 2.3.1 Общий вид окна ИСР....................... 53 2.3.2 Полоса главного меню и всплывающие меню............ 55 2.3.3 Быстрые кнопки......................... 56 2.3.4 Палитра компонентов....................... 58 2.3.5 Окно формы........................... 59 2.3.6 Окно Редактора Кода....................... 60 2.3.7 Инспектор Объектов..................... .... 61 2.3.8 Перетаскивание и встраивание окон в ИСР Delphi 5......... 64 2.3.9 Управление конфигурациями окон ИСР.............. 65 2.4 Первые шаги — первые собственные приложения........662.4.1 Очень простое приложение..................... 66 2.4.2 Немного более сложное приложение................ 69 2.5 Проекты Delphi....................... . 71 2.5.1 Организация проекта в Delphi, основные файлы проектов...... 71 2.5.2 Создание и сохранение нового проекта............... 74 2.5.2.1 Организация каталогов проекта ................... 74 2.5.2.2 Создание нового проекта...................... .75 2.5.2.3 Сохранение проекта, его повторное открывание, включение проекта в Депозитарий................. 79 2.5.3 Менеджер проекта........................ 81 2.5.3.1 Менеджер проекта в Delphi 1 — 3.................. 812.5.3.2 Менеджер проектов в Delphi 5 и 4 — управление группами проектов . 812.5.4 Планирование работ — список To-Do List.............. 842.5.5 Завершение проекта, задание учетной информации......... 87 2.6 Включение в проект форм...................89 2.6.1 Зачем надо включать в проект новые формы............ 89 2.6.2 Включение в проект новой формы................. 89 2.6.3 Совместное владение формой несколькими приложениями...... 90 2.6.4 Создание отдельной копии формы................. 91 2.6.5 Заимствование форм из Депозитария................ 91 2.6.6 Просмотр форм и модулей без включения их в проект........ 92 2.7 Размещение компонентов на форме............... 92 2.7.1 Перенос компонентов со страниц библиотеки на форму.......92 2.7.2 Родители и владельцы компонентов — Parent и Owner.......-942.7.3 «Многослойное» размещение компонентов на форме.........952.7.4 Поиск «пропавших» компонентов.................962.7.5 Работа с группой компонентов, выравнивание компонентов по размеру и положению...............96 2.7.6 Фиксация компонентов......................99 2.8 Инструментальные средства поддержки разработки кода.....100 2.8.1 Применение Code Insight — Знатока Кода.............1002.8.2 Исследователь Кода Code Explorer.................101 2.8.3 Просмотр иерархии классов, модулей и глобальных символов — Object Browser....................1022.8.4 Получение информации о классах, свойствах,методах из окна Редактора Кода.................104 2.8.5 Навигация в коде, закладки и дополнительные окна редактирования ...... -...................104 2.8.6 Справочная система Delphi и программа ее конфигурирования OpenHelp..................105 2.9 Отладка приложений.....................' 107 2.9.1 Варианты компиляции и сообщения компилятора......... 107 2.9.2 Что делать, если произошла ошибка выполнения.......... 110 2.9.3 Окно наблюдения Watches.................... 112 2.9.4 Окно оценки и модификации Evaluate/Modify...........114 2.9.5 Выполнение приложения по шагам................ 116 2.9.6 Точки прерывания........................ 118 2.9.7 Использование окна Инспектора Отладки Debug Inspector..... 122 2.9.8 Протокол событий, функция OutputDebugString.......... 124 2.9.9 Некоторые приемы программирования, встраивающие отладку в код..........................125 2.10 Настройка Интегрированной Среды Проектирования Delphi и ее компонентов...........128 2.10.1 Настройка инструментальных панелей.........;.-.'... 128 2.10.2 Настройка палитры компонентов..............> . . 130 2.10.3 Настройка Редактора Кода.................... 130 2.10.4 Настройка Code Insight — Знатока Кода............. 1322.10.5 Настройка Исследователя Кода Code Explorer и Object Browser. . . 133 2.10.7 Общие настройки среды..................... 134 2.10.8 Настройка отладчика...................... 135 Глава 3. Обзор компонентов библиотеки Delphi........ 139 3.1 Страницы палитры компонентов................ 139 • 3.2 Компоненты ввода и отображения текстовой информации . . . . 1413.2.1 Перечень компонентов ввода и отображения текстовой информации . 141 3.2.2 Отображение текста в надписях компонентов Label, StaticText и Panel..................... 143 3.2.3 Окна редактирования Edit и MaskEdit............... 145 3.2.4 Многострочные окна редактирования Memo и Richedit....... 149 3.2.5 Компоненты выбора из списков — ListBox, CheckListBoxи ComboBox......... •.................. 1533.2.6 Таблица строк — компонент StringGrid.............. 1553.3 Ввод и отображение чисел, дат и времени............ 157 3.3.1 Перечень компонентов ввода и отображений чисел, дат и времени. . 157 3.3.2 Ввод и отображение целых чисел — компонентыUpDown и SpinEdit........................ 158 3.3.3 Ввод и отображение дат и времени —компоненты DateTimePicker, MonthCalendar, Calendar....... 159 3.3.4 Страницы Excel — компонент FIBook............... 1603.4 Обеспечение синтаксически правильного ввода текстовых и цифровых данных.............. 162 3.5 Компоненты отображения заголовков и иерархических данных................... 163 3.5.1 Перечень компонентов...................... 163 3.5.2 Секционированное отображение текстов —компоненты HeaderControl и Header............... . 164 3.5.3 Компоненты отображения иерархических данных —TreeView, Outline, ListView................... 165 3.6 Отображение графической и мультимедиа информации..... 1733.6.1 Перечень компонентов отображения графической информации ... 173 3.6.2 Таблицы изображений — компоненты DrawGrid и StringGrid .... 1743.6.3 Компонент Shape......................... 175 3.6.4 Компонент Chart......................... 175 3.6.5 Компоненты страницы ActiveX — FIBook, Chartfx, Graph..... 1803.6.6 Отображение мультимедиа и иной информации —компоненты Animate, MediaPlayer, ProgressBar, Gauge....... 183 3.7 Кнопки, индикаторы, управляющие элементы......... 185 3.7.1 Общая характеристикая..................... 185 3.7.2 Управляющие кнопки Button-и BitBtn............... 187 3.7.3 Кнопка с фиксацией SpeedButton................. 190 3.7.4 Группы радиокнопок — компоненты RadioGroup,RadioButton и GroupBox..................... 190 3.7.5 Индикаторы CheckBox и CheckListBox............... 192 3.7.6 Ползунки и полосы прокрутки — компоненты TrackBar и ScrollBar . . 1933.7.7 Таймер — компонент Timer.................... 1953.8 Компоненты — меню..................... 1963.8.1 Главное меню — компонент MainMenu............. . 1963.8.2 Контекстное всплывающее меню — компонент PopupMenu ..... 2003.8.3 Горячие клавиши — компонент HotKey.............. 2013.9 Панели и компоненты внешнего оформления.......... 204 3.9.1 Общая характеристика . ..................... 204 3.9.2 Панели общего назначения — компоненты Panel,GroupBox, Bevel, ScrollBox, Splitter................ 206 3.9.3 Многостраничные панели — компоненты TabControl,PageControl, TabSet, TabbedNoteBook, NoteBook.......... 207 3.9.4 Инструментальные панели — компоненты ToolBar и PageScroller . . 2103.9.5 Перестраиваемые панели — компоненты CoolBar и ControlBar . . . 2133.9.6 Полоса состояния StatusBar.................... 215 3.9.7 Фреймы............................. 216 3.10 Системные диалоги..................... 222 3.10.1 Общая характеристика компонентов — диалогов......... 2223.10.2 Диалоги открытия и сохранения файлов — компоненты OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog . . . 2243.10.3 Фрагменты диалогов — компоненты DriveComboBox, DirectoryListBox, FilterComboBox, FileListBox и DirectoryOutline . . 2293.10.4 Диалог выбора шрифта — компонент FontDialog......... 2313.10.5 Диалог выбора цвета — компонент ColorDialog.......... 2333.10.6 Диалоги печати и установки принтера —компоненты PrintDialog и PrinterSetupDialog........... 234 3.10.7 Диалоги поиска и замены текста — компонентыFindDialog и ReplaceDialog.................... 236 3.11 Компоненты организации управления приложением...... 240 3.11.1 Общая характеристика..................... 240 3.11.2 Диспетчеризация событий — компоненты,связанные с ActionList.................... 241 3.11.3 Список изображений — компонент ImageList........... 2443.11.4 Приложение — компонент ApplicationEventsи объект Application...................... 245 ЧАСТЬ II. Разработка приложений для Windows........253 Глава 4. Проектирование графического интерфейса пользователя.....................255 4.1 Требования к интерфейсу пользователя приложений для Windows .......................... 255 4.1.1 Общие рекомендации по разработке графического интерфейса. . . . 265 4.1.2 Многооконные приложения.................... 256 4.1.3 Стиль окон приложения..................... 256 4.1.4 Цветовое решение приложения .................. 262 4.1.5 Шрифты текстов......................... 263 4.1.6 Меню.............................. 264 4.1.6.1 Требования к меню........................ 264 4.1.6.2 Методика проектирования меню и инструментальной панели .... 268 4.1.7 Компоновка форм........................270 4.1.8 Последовательность фокусировки элементов............271 4.1.9 Подсказки и контекстно-зависимые справки............273 4.2 Проектирование окон с изменяемыми размерами ........279 4.2.1 Выравнивание компонентов — свойство Align...... ... . .2794.2.2 Изменение местоположения и размеров компонентов....... . 281 4.2.3 Панели с перестраиваемыми границами.............. 283 4.2.4 Ограничение пределов изменения размеров окон и компонентов. . . 284 4.2.5 Масштабирование компонентов.................. 286 4.3 Обработка событий клавиатуры и мыши............ 288 4.3.1 События мыши ......................... 288 4.3.1.1 Последовательность событий..................... 288 4.3.1.2 Распознавание источника события, нажатых кнопок и клавиш, координат курсора........................ 291 4.3.2 События клавиатуры....................... 293 4.3.2.1 Последовательность событий.................... 293 4.3.2.2 Распознавание нажатых клавиш.................. 295 4.4 Перетаскивание объектов................... 298 4.4.1 Перетаскивание информации об объектах —технология Drag&Drop...................... 298 4.4.2 Перетаскивание и встраивание объектов — Drag&Doc.Плавающие окна......................... 301 4.4.3 Буксировка компонентов в окне приложения........., . 308 4.5 Формы............................ 313 4.5.1 Управление формами....................- • • 3134.5.2 Модальные формы........................ 3174.5.3 Пример приложения с модальными формами заставки и запроса пароля......................... 318 4.5.4 Управление формами в приложениях с интерфейсом множества документов (приложениях MDI) ............ 321 4.5.5 Пример приложения с интерфейсом множества документов — простой многооконный редактор ......... . 3234.5.6 Объект Screen и приложения, работающие с нескольким мониторами . 326 4.6 Печать и разработка отчетов.................. 329 1 4.6.1 Печать с помощью различных функций.............. 329 4.6.1.1 Печать с помощью функций файлового ввода/вывода........ 329 4.6.1.2 Печать форм методом Print.................... 329 4.6.1.3 Методы компонентов, обеспечивающие печать........... 330 4.6.1.4 Печать файлов средствами стандартных приложений Windows с помощью функции SheliExecute и обращения к серверам СОМ . . . 330 4.6.2 Печать с помощью объекта Printer................ 331 4.6.3 Подготовка и печать отчетов с помощью QuickReport........ 332 4.7 Развертывание приложений.................. 340 4.7.1 Интернационализация приложений................ 340 4.7.2 Установка и настройка приложения: работа с системным реестром . 346 4.7.3 Установка и настройка приложения: работа с файлами .INI..... 350 Глава 5. Графика и мультимедиа...............355 5.1 Построение графических изображений............. 355 i 5.1.1 Использование готовых графических файлов............355 5.1.1.1.Компонент Image и некоторые его свойства............. 355 5.1.1.2 Простое приложение для просмотра графических файлов ....... 357 5.1.1.3 Форматы графических файлов...................358 5.1.1.4 Классы для хранения графических объектов TPicture, TBitMap, TIcon и TMetafile.........................358 5.1.2 Редактор Изображений Image Editor................ 360 5.1.2.1 Создание файла изображения...................360 5.1.2.2 Создание пиктограммы для шаблона компонента в библиотеке. . . . 362 5.1.2.3 Создание пиктограммы для кнопки................363 5.1.2.4 Работа с файлами ресурсов...................... 364 5.1.3 Канва — холст для рисования..................3665.1.3.1 Канва и пиксели.........................366 5.1.3.2 Рисование по пикселям......................366 5.1.3.3 Рисование с помощью пера Реп . . ;...............368 5.1.3.4 Brush — кисть . . . .......................3715.1.4 Пример построения собственного простого графического редактора . . ...................373 5.1.5 Режимы рисования........................376 5.1.5.1 Режимы пера...........................376 5.1.5.2 Режимы копирования и рисования канвы.............377 5.1.6 Продолжение создания собственного графического редактора .... 379 5.1.7 События OnPaint.........................385 5.2 Мультимедиа и анимация...................387 5.2.1 Звук...............................387 5.2.1.1 Типы звуковых и мультимедиа файлов...............387 5.2.1.2 Процедуры воспроизведения звуков Веер, MessageBeep и PlaySound . . 388 5.2.2 Начала анимации — создание собственной мультипликации .... 3905.2.3 Воспроизведение немых видео клипов — компонент Animate .... 3975.2.4 Универсальный проигрыватель MediaPlayer............400 Глава 6. Взаимодействие приложения с внешними программами....................405 6.1 Запуск из приложения внешних программ...........405 6.1.1 Запуск внешней программы функцией WinExec..........405 ' 6.1.2 Запуск внешней программы и открытие документа функцией ShellExecute......................407 6.2 Управление окнами внешних программ.............409 6.2.1 Определение дескриптора окна приложения............409 6.2.2 Некоторые функции API Windows для управления окнами.....411 6.3 Сообщения Windows и их обработка..............412 6.3.1 Обработка сообщений в приложениях Delphi............412 6.3.2 Посылка сообщений.......................414 6.3.2.1 Функция SendMessage......................414 6.3.2.2 Функция PostMessage......................414 6.3.2.3 Пример посылки сообщений ....................414 6.3.3 Обработка сообщений.......................416 6.3.4 Определение собственных сообщений...............419 6.4 Внедрение и связывание объектов — OLE............4206.4.1 Общие сведения.........................4206.4.2 Внедрение и связывание.....................421 6.4.3 Автоматизация OLE.......................425 6.4.4 Компоненты — серверы СОМ в Delphi 5..............4276.4.4.1 Компоненты — серверы в Delphi 5........ . . •.......4276.4.4.2 Свойства и методы сервера Word..................4306.4.4.3 Тестовый пример работы с сервером Word.............436 6.5 Динамический обмен данными — DDE.............4406.5.1 Общие сведения.........................4406.5.2 Установление контакта с сервером................440 6.5.3 Обмен данными между клиентом и сервером............443 6.5.3.1 Построение приложения-сервера..................443 6.5.3.2 Построение приложения-клиента.................445 6.5.3.3 Запрос данных сервера......................445 6.5.3.4 Постоянное отслеживание информации на сервере......... 447 6.5.3.5 Передача информации от клиента к серверу............ 447 Глава 7. Повторное использование разработанных кодов . . . 451 7.1 Способы сохранения и повторного использования кодов.....451 7.2 Создание и хранение шаблонов компонентов ,.........451 7.3 Создание новых компонентов и включение их в библиотеку . . . 454 7.3.1 Начало создания и установка компонента.............454 7.3.2 Анализ класса нового компонента.................458 7.3.2.1 Структура класса компонента...................458 7.3.2.2 Свойства.............................459 7.3.2.3 Методы.............................462 7.3.2.4 События.............................463 7.4 Депозитарий — хранилище форм и проектов..........4677.5 Динамически присоединяемые библиотеки DLL.........472 7.6 Пакеты............................475 7.6.1 Общее описание концепции пакетов................475 7.6.2 Поддержка пакетов.......................476 7.6.3 Разработка собственных пакетов.................479 Глава 8. Разработка справочной системы (создание файлов .hip)...............483 8.1 Проектирование справочной системы............. . 483 8.2 Создание файла тем справок ..................484 8.2.1 Написание текстов тем.......................484 8.2.2 Сноски.............................486 8.2.2.1 Сноска #.............................486 8.2.2.2 Сноска К.............................486 8.2.2.3 Сноска $.............................487 8.2.2.4 Сноска А.............................488 8.2.2.5 Сноска +..............................488 8.2.2.6 Сноска !.............................488 8.2.2.7 Сноска *.............................488 8.2.2.8 Сноска >.............................488 8.2.3 Переходы............................489 8.2.3.1 Непосредственные переходы....................489 8.2.3.2 Переходы по ключевым словам..................490 8.2.4 Макросы.............................492 8.3 Компиляция и'отладка....................494 8.3.1 Создание файла Проекта справки.................494 8.3.1.1 Кнопка Files...........................495 8.3.1.2 Кнопка Windows...........................496 8.3.1.3 Кнопка Bitmaps..........................497 8.3.1.4 Кнопка Map.............................497 8.3.1.5 Кнопка Alias.............................. 498 8.3.1.6 Кнопка Config..................'..........499 8.3.1.7 Кнопка Data Files...........................499 8.3.1.8 Кнопка Options............................499 8.3.1.9 Создание простого файла Проекта.................501 8.3.2 Компиляция и отладка справки...................501 8.3.3 Файл содержания — .cnt.....................5048.4 Особенности создания справки, работающейна любых версиях Windows..................505 8.4.1 Ограничения возможностей справки................505 8.4.2 Синтаксис файла Проекта....................506 8.4.3 Применение Help Workshop DLL для подготовки файла Проекта в Delphi 1........................509 ЧАСТЬ III. Создание приложений для работы с базами данных..................511 Глава 9. Приложения для работы с локальными базами данных...................513 9.1 Базы данных........................ . 513 9.1.1 Принципы построения баз данных................ 513 9.1.2 Типы баз данных.........................616 9.1.2.1 Автономные базы данных..................... 517 9.1.2.2 Файл-серверные базы данных................... 517 9.1.2.3 Базы данных клиент/сервер.................... 518 9.1.2.4 Многоярусные базы данных.................... 518 9.1.3 Технологии СОМ и CORBA.................... 518 9.1.4 Организация связи с базами данных в Delphi........... 520 9.2 Создание баз данных с помощью Database Desktop........ 521 9.2.1 Создание новой таблицы.....................521 9.2.2 Задание полей...........;..............523 9.2.3 Задание свойств таблицы.....................525 9.2.3.1 Validity Checks — проверка правильности значений . '....... 5259.2.3.2 Table Lookup — таблица просмотра................. 5259.2.3.3 Secondary Indexes — вторичные индексы.............. 5269.2.3.4 Referential Integrity — целостность на уровне ссылок........ 527• 9.2.3.5 Password Security — пароли доступа................ 5289.2.3.6 Table Language — язык таблицы.................5299.2.3.7 Dependent Tables — зависимые таблицы..............5309.2.4 Завершение создания таблицы..................530 9.2.5 Изменение структуры и заполнение таблицы с помощью Database Desktop...................530 9.3 Создание и редактирование псевдонимов баз данных и каталогов....................531 9.3.1 Автоматически создаваемые псевдонимы рабочего и частного каталогов.......................531 9.3.2 Создание и просмотр псевдонимов баз данных в Database Desktop........................532 9.3.3 Создание и просмотр псевдонимов драйверов и баз данных в BDE Administrator................534 9.3.4 Создание и просмотр псевдонимов в Database Explorer.......536 9.4 Обзор компонентов, используемых для связи с базами данных . . 538 9.5 Основные свойства компонента Table и простейшие приложения на его основе............538 9.5.1 Установка связей между компонентами и базой данных, навигация по таблице ...................... 538 9.5.2 Свойства полей.......................... 542 9.5.3 Перенос полей на форму из Редактора Полей........... 543 9.5.4 Ограничения вводимых значений........ . ........ 546 9.5.5 Вычисляемые поля........................ 547 9.5.6 Фильтрация данных....................... 548 9.6 Использование словарей атрибутов полей......... • • • 5529.7 Некоторые компоненты визуализации и управления данными . . 5559.8 Компонент Session...................... 559 9.9 Компонент BatchMove..................... 560 9.10 Приложения с несколькими связанными таблицами ...... 563 9.10.1 Связь головной и вспомогательной таблиц........... . 568 9.10.2 Поля просмотра (lookup fields). . ................ 565 9.11 Программирование работы с базами данных.......... 566 9.11.1 Состояние набора данных.................... 566 9.11.2 Пересылка записи в базу данных................. 567 9.11.3 Кэширование изменений.................... . 568 9.11.4 Доступ к полям......................... 570 9.11.5 Методы навигации....................... 572 9.11.6 Поиск записей......................... 572 9.11.7 Методы установки диапазона допустимых значений........ 574 9.11.8 Методы модификации таблиц.................. 576 9.11.9 Модули данных......................... 577 9.12 Пример программирования работы с базой данных...... . 582 Глава 10. Создание приложений для работы с базами данных в сети..............587 10.1 Основы языка SQL и его использование в приложениях........................ 587 10.1.1 Общие сведения......................... 587 10.1.2 Оператор выбора Select................... . . 588 10.1.2.1 Отбор записей из таблицы.................... 588 10.1.2.2 Совокупные характеристики................... 592 10.1.2.3 Вложенные запросы....................... 693 10.1.2.4 Объединения таблиц....................... 594 10.1.3 Операции с записями...................... 596 10.1.4 Операции с таблицами..................... 597 10.1.5 Операции с индексами...................... 600 10.1.6 Компонент Query........................ 601 10.1.6.1 Table или Query — что лучше ?...'.•.............. 60110.1.6.2 Ручная настройка Query...................... 60210.1.6.3 Визуальный построитель запросов SQL Builder.......... . 603 10.1.6.4 Динамические запросы и параметры Query ... I........ 604 10.1.6.5 Основные свойства Query, связывание таблиц........... 606 10.1.6.6 Основные методы компонента Query............... 607 10.1.6.7 Кэширование изменений, совместное применение Query nUpdateSQL........................... 608 10.1.7 Примеры приложений с использованием Query.......... 611 10.1.7.1 Пример замены Table на Query..................611 10.1.7.2 Пример формирования произвольных запросов SQL ........ 616 10.2 Работа с базами данных в сети................ 619 10.2.1 Транзакции и проблемы многопользовательского режима работы.........................619 10.2.2 Управление транзакциями, компонент Database..........620 10.2.3 Работа с SQL Monitor.......................623 10.2.4 Управление доступом .'....'................. 624 10.3 InterBase — работа на платформе клиент/сервер . . . . . . . . 62510.3.1 Общие сведения......................... 625 10.3.2 Программа Server Manager................... 625 10.3.3 Windows ISQL......................... 627 10.3.4 Просмотры — Views....................... 63110.3.5 Хранимые на сервере процедуры................. 63210.3.5.1 Создание выполняемых процедур................. 632 10.3.5.2 Вызов выполняемых хранимых процедур из приложения......634 10.3.5.3 Хранимые процедуры выбора................... 636 10.4 Доступ к базам данных через Microsoft ActiveX Data Objects (ADO).............636 10.4.1 Соотношение между компонентами BDE и ADO..........636 10.4.2 Задание соединения компонентов ADO с базой данных......638 10.4.3 Соединение с помощью компонента ADOConnection, управление транзакциями....................645 10.4.4 Компоненты наборов данных ADOTable, ADOQuery, ADOStoredProc, ADODataSet...................648 10.4.5 Выполнение команд компонентами TADOCommand и ADOConnection........................653 10.5 Доступ к InterBase через InterBase Express (IBX)........654 10.5.1 Технология InterBase Express (IBX)...............654 10.5.2 Компоненты IBDatabase и IBTransaction.............656 10.5.3 Компоненты наборов данных IBTable, IBQuery, IBStoredProc. . . . 659 Глава 11. Обработка и документирование данных.......661 11.1 Многомерный анализ данных компоненты Decision Cube .... 661 11.1.1 Настройка компонентов приложения............... 661 11.1.2 Управление выполняющимся приложением............ 665 11.1.3 Компонент DecisionPivot..................... 667 11.1.4 Компонент DecisionGraph.................... 668 11.2 Создание отчетов....................... 669 11.3 Использование серверов СОМ для документирования данных . .674 11.4 Работа с базами данных и приложениями Delphi из Microsoft Word................... 681 11.4.1 Создание макроса для вызова приложения Delphi......г ' ' ^* 11.4.2 Непосредственная работа в Word с базами данных........685 ЧАСТЬ IV. Справочные сведения...............687 Глава 12. Справочные данные по языку Object Pascal.....689 12.1 Синтаксис языка.......................689 12.2 Компилятор.........................690 12.2.1 Общее описание, директивы компилятора............ 690 12.2.2 Настройка компилятора..................... 691 12.2.3 Директивы условной компиляции................ 693 12.2.4 Некоторые ключевые директивы................. 695 {$С+} и {$С-}, {$ASSERTIONS ON} и {$ASSERTIONS OFF} —директивы проверки утверждений....................695 {$!+} и {$!-}, {$IOCHECKS ON} и {$IOCHECKS OFF} —директивы контроля ввода-вывода....................696 {$Q+} и {$Q-}, {$OVERFLOWCHECKS ON} и ($OVERFLOWCHECKS OFF} —директивы проверки переполнения при целочисленных операциях.....697 {$R+} и {$R-}, {$RANGECHECKS ON} и {$RANGECHECKS OFF} —директивы проверки диапазона.....................697 {$М+} и {$М-}, {$TYPEINFO ON} и {$ TYPEINFO OFF} —директивы информации времени выполнения о типах...........698 12.2.5 Некоторые директивы параметров................698 {$М}, {$MINSTACKSIZE}, {$MAXSTACKSIZE}, {$S} —директивы, определяющие размер стека.................698 {$R}, {$RESOURCE} — директива связывания ресурсов..........69912.2.6 Процедура Assert........................700 12.3 Файлы проекта Delphi................... . 701 12.3.1 Основные файлы проекта.................... 701 12.3.2 Структура головного файла программы.............. 702 12.3.3 Структура модуля........................ 704 12.3.4 Предложение uses — подключение модулей............ 70612.3.5 Файлы ресурсов.......................... 707 12.4 Области видимости и время жизни.............. 709 12.5 Константы, переменные, типизированные константы...... 710 12.5.1 Константы и константные выражения.............. 710 12.5.2 Переменные.......................... 711 12.5.3 Типизированные константы................... 713 12.6 Процедуры и функции.................... 713 12.6.1 Объявление и описание функций и процедур.....,..... 713 12.6.2 Различные варианты передачи параметров в функции и процедуры.......................... 715 12.6.3 Параметры со значениями по умолчанию............. 717 12.6.4 Перегрузка функций...................... 718 12.7 Операции.......................... 719 12.7.1 Общее описание......................... 719 12.7.2 Арифметические операции.................... 719 12.7.3 Операции отношения...................... 720 12.7.4 Булевы операции........................ 721 12.7.5 Логические поразрядные операции............... . 721 12.7.6 Операции со строками...................... 722 12.7.7 Операции с указателями..................... 722. 12.7.8 Операции с множествами.................... 723 12.7.9 Операции с классами...................... 723 12.7.10 Операция @.......................... 724 12.7.11 Приоритет и ассоциативность операций............. 724 12.8 Операторы.......................... 725 12.8.1 Оператор присваивания и его соотношение с методом Assign . . . . 725 12.8.2 Оператор передачи управления goto............... 726 12.8.3 Оператор with.......................... 727 12.8.4 Условные операторы выбора if.................. 727 12.8.5 Условный оператор множественного выбора case......... 728 12.8.6 Оператор цикла for....................... 729 12.8.7 Оператор цикла repeat...................... 731 12.8.8 Оператор цикла while...................... 732 12.8.9 Прерывание цикла: оператор break, процедуры Continue, Exit и Abort..................... 733 12.9 Динамическое распределение памяти............. 733 12.10 Исключения........................ 735 12.10.1 Исключения и их стандартная обработка............ 735 12.10.2 Иерархия классов исключений в Delphi............. 736 12.10.3 Базовый класс исключений Exception.............. 741 12.10.3.1 Свойства исключений...................... 741 12.10.3.2 Конструкторы исключений................... 742 12.10.4 Защита кода зачистки в блоках try ... finally.......... 744 12.10.5 Защита кода зачистки на уровне модуля —раздел finalization....................... 744 12.10.6 Обработка исключений в блоках try ... except.......... 745 12.10.6.1 Синтаксис блоков try ... except и операторов on...do........ 745 12.10.6.2 Последовательность обработки исключений............ 747 12.10.7 Преднамеренная генерация исключений............. 748 12.10.7.1 Оператор raise.........................748 12.10.7.2 Исключение EAbort и функция Abort..............749 12.10.8 Создание своего типа исключения................750 12.11 Сообщения Windows и их обработка.............752 Глава 13. Типы данных в языке Object Pascal.........755 13.1 Классификация типов данных, объявление типов.......755 13.2 Приведение типов......................756 13.3 Порядковые типы данных.................. 757 13.4 Целые типы данных.....................758 13.5 Действительные типы данных................759 13.6 Булевы типы данных.....................759 13.7 Символьные типы данных..................760 13.8 Типы строк..................х...... . 761 13.9 Перечислимые типы.....................764 13.10 Ограниченные типы.....................765 13.11 Множества.........................766 13.12 Тип variant.........................767 13.13 Указатели.........................769 13.14 Файлы...........................770 13.14.1 Способы организации файлового ввода/вывода.......... 770 13.14.2 Типы файлов.........................772 13.14.2.1 Текстовые файлы.......................772 13.14.2.2 Файловый ввод/вывод с помощью компонентов..........772 13.14.2.3 Типизированные файлы....................773 13.14.2.4 Нетипизированные файлы...................774 13.14.3 Использование дескрипторов файлов..............774 13.15 Массивы..........................775 13.15.1 Статические массивы......................775 13.15.1.1 Одномерные массивы................. •.....77513.15.1.2 Многомерные массивы..................... 77713.15.2 Операции с массивами, передача массивов как параметров .... 778 13.15.3 Параметры в виде открытых массивов..............779 13.15.4 Параметры в виде открытых массивов констант.........780 13.15.5 Динамические массивы.....................781 13.15.5.1 Одномерные динамические массивы...............781 13.15.5.2 Многомерные динамические массивы..............783 13.16 Записи...........................784 13.16.1 Объявление и использование записей.............. 784 13.16.2 Самоадресуемые записи....................785 13.17 Классы...........................786 13.17.1 Объявление класса.......,....'............. 786 13.17.2 Свойства................. . . ........ 787 13.17.3 Методы и их наследование, полиморфизм............ 789 13.17.4 Конструкторы и деструкторы.................. 790 13.17.5 События............................ 791 Глава 14. Справочные данные по интегрированной среде разработки Delphi...............793 14.1 Структура меню Delphi....................793 14.1.1 Меню файлов File....................... . 793 14.1.2 Меню редактирования EDIT...................798 14.1.3 Меню поиска Search.......................800 14.1.4 Меню просмотра View......................801 14.1.5 Меню проекта Project......................804 14.1.6 Меню компиляции Compile в Delphi 1............: . 806 14.1.7 Меню выполнения Run..................... 806 14.1.8 Меню компонентов Component..................808 14.1.9 Меню баз данных Database....................808 14.1.10 Меню опций Options в Delphi 1.................809 14.1.11 Меню инструментария Tools..................810 14.1.12 Меню рабочих групп Workgroups................813 14.1.13 Меню справки Help......................813 14.2 Некоторые настройки Интегрированной Среды Разработки Delphi................... 814 14.2.1 Настройка Редактора Кода....................814 14.2.2 Общие настройки среды.....................819 14.3 Палитра компонентов в Delphi 1...........'. . . . 822 14.3.1 Общее описание.........................822 14.3.2 Страница Standard.......................822 14.3.3 Страница Additional.......................824 14.3.4 Страница Data Access ..................... . 825 14.3.5 Страница Data Controls.....................826 14.3.6 Страница Dialogs........................827 14.3.7 Страница System........................827 14.3.8 Страница Samples........................829 14.4 Палитра компонентов в Delphi 5...............829 14.4.1 Общее описание.........................829 14.4.2 Страница Standard.......................831 14.4.3 Страница Additional.......................833 14.4.4 Страница Win32........................834 14.4.5 Страница System........................ 836 14.4.6 Страница Data Access......................837 14.4.7 Страница Data Controls.....................838 14.4.8 Страница ADO.........................839 14.4.9 Страница InterBase.......................840 14.4.10 Страница Decision Cube.....................841 14.4.11 Страница QReport.......................842 14.4.12 Страница Dialogs........................844 14.4.13 Страница WinS.l........................845 14.4.14 Страница Samples.......................846 14.4.15 Страница ActiveX.......................846 14.4.16 Страница Servers.......................847 Глава 15. Процедуры и функции Object Pascal, Delphi и API Windows...................849 15.1 Справочные данные общего характера.............849 15.1.1 Коды клавиш................'..........849 15.1.2 Коды ошибок файлового ввода-вывода..............852 15.1.3 Строка описания формата и функция Format...........852 15.2 Математические функции..................855 15.3 Тригонометрические и гиперболические функции.......857 15.4 Процедуры и функции преобразования дат и времени.....858 15.5 Функции обработки строк с нулевым символом в конце .... 860 15.6 Процедуры и функции обработки строк в стиле Pascal (без нулевого символа в конце)..........862 15.7 Процедуры и функций файлового ввода/вывода........865 15.8 Процедуры и функции управления файлами..........867 15.9 Процедуры динамического распределения памяти.......870 15.10 Прочие процедуры и функции Object Pascal.........871 15.11 Процедуры и функции вызова диалоговых окон........873 15.11.1 Процедуры ShowMessage и ShowMessageFmt. . .........873 15.11.2 Функции MessageDlg, MessageDlgPos и CreateMessageDialog...................873 15.11.3 Функция TApplication.MessageBox...............876 15.11.4 Функции InputBox и InputQuery................879 15.11.5 Функция SelectDirectory....................880 15.12 Процедуры и функции воспроизведения звуков........883 15.12.1 Веер — процедура Object Pascal.................88315.12.2 Веер — функция API Windows.................88315.12.3 MessageBeep — функция API Windows.............88415.12.4 PlaySound — функция API Windows..............88515.13 Функции API Windows для запуска из приложения внешних программ..............887 15.13.1 Сообщения об ошибках при запуске внешних программ.....887 15.13.2 Функция ShellExecute.....................888 15.13.3 Функция FindExecutable....................891 15.13.4 Функция WinExec.......................891 15.14 Сообщения Windows....................892 15.14.1 Некоторые функции, константы и типы API Windows, используемые при работе с сообщениями............893 15.14.1.1 PostMessage — функция....................89315.14.1.2 SendMessage — функция....................89315.14.1.3 RegisterWindowMessage — функция...............89415.14.1.4 WM_USER — константа....................89415.14.1.5TMessage —тип........................89515.14.2 Некоторые сообщения Windows.................896 15.14.2.1 WM_ ACTIVATE........................896 15.14.2.2 WM_ACTIVATEAPP......................896 15.14.2.3 WM_CANCELMODE.......................897 15.14.2.4 WM_CLOSE..........................897 15.14.2.5 WM_GETMINMAXINFO.....................897 15.14.2.6 WM_GETTEXT.........................898 15.14.2.7 WM_SETTEXT.........................899 15.15 Некоторые вспомогательные функции API Windows и Delphi . . 900 15.15.1 CloseWindow.......................... 900 15.15.2 EnableWindow......................... 900 15.15.3 FindWindow.......................... 900 15.15.4 GetLastErrore......................... 901 15.15.5 GetLongHint..........................902 15.15.6 GetNextWindow........................ 902 15.15.7GetShortHint......................... 903 15.15.8 GetSystemDirectory......................903 15.15.9 Get Window..........................904 15.15.10 GetWindowsDirectory.....................904 15.15.11 GetWindowText........................905 15.15.12 Point.............................. 906 15.15.13 Rect............................ . 906 15.15.14 Shortcut........................... 907 15.15.15 ShortCutToText........................ 907 15.15.16 TextToShortCut........................ 908 Глава 16. Свойства, методы, события, типы, классы ...... 909 16.1 Свойства.......................... 909 Action................................'. 909 Active................................. 909 Align................................. 910 Anchors................................ 911 AutoCalcFields............................. 912 AutoMerge............................... 912 AutoSelect..................-............. 913 AutoSize................................ 913 Bitmap...........................:..... 913 BlockReadSize............................. 914 BoundsRect............................... 915 Break................................. 916 Brush................................. 917 CanModify . . . . 4.......................... 917 Canvas.................................. 918 Capacity................................ 918 Caption................................. 919 Charset................................. 920 ClientHeight.............................. 921 ClientOrigin.............................. 921 ClientRect............................... 922 ClientWidth.............................. 922 ClipRect................................ 923 Color.................................. 923 ComponentCount............................ 925 Componentlndex............................ 92-5 Components............................... 925 Connected............................... 926 ConnectKind.............................. 926 Constraints............................... 926 ControlCount.............................. 927 Controls................................ 927 ControlState.............................. 928 ControlStyle.............................. 929 CopyMode............................... 931 Count................................. 932 Ctl3D ................................. 933 Cursor.................................. 933 Database................................ 934 DatabaseName............................. 935 DesktopFont........................-...... 935 DragCursor............................... 936 DragKind................................ 936 DragMode............................... 936 DrawingStyle.............................. 936 Enabled ................................ 937 Exists................i................ 937 FieldDefs................................ 937 Font.................................. 938 Grouplndex............................... 939 Handle................................. 940 Height — свойство компонента..................... 941Height — свойство шрифта....................... 941HelpContext.............................. 941 Hint.................................. 942 Imagelndex............................... 944 IndexDefs............................... 944 Items................................. 945 Left.................................. 946 List.................................. 946 Mode — свойство TBatchMove...................... 946Mode — свойство TPen......................... 947Name................................. 948 Parent................................. 949 ParentFont............................... 949 ParentColor............................... 949 ParentCtlSD.............................. 950 ParentShowHint............................. 950 Pen.................................. 950 PenPos................................. 951 Pitch.................................. 951 Pixels................................. 952 PopupMenu............................... 952 Shortcut................................ 952 ShowHint................................ 953 Showing................................ 953 Size.................................. 953 State.................................. 954 Style — свойство TPen......................... 955Style — свойство TBrush........................ 956Style — свойство TFont......................... 956TableName............................... 957 TabOrder................................ 958 TabStop................................ 958 Tag.................................. 959 Text.................................. 959 TextFlags................................ 959 Top.................................. 960 TransparentColor............................ 960 TransparentMode............................ 961 Visible................................. 961 Width................................. 962 WindowText............................. . 962 16.2 Методы........................... 963 Add.................................. 963 Assign — метод графических объектов.................. 964Assign — метод копирования объектов.................. 965AssignTo................................ 966 BeginDrag............................... 966 BringToFront.............................. 966 BrushCopy............................... 968 CanFocus................................ 968 Cancel................................. 969 ChangeScale............................... 969 Chord................................. 969 ClassName............................... 970 Clear.................................. 971 ClientToScreen.............................. 971 Close.................................. 971 ContainsControl............................. 972 ControlAtPos.............................. 972 CopyRect................................ 972 CrenteTable................................ 973 DblClick................................. 974 Delete................................. 974 Destroy................................ 975 DisableAlign.............................. 975 Dormant............................... . 975 Draw.................................. 976 DrawFocusRect............................. 977 Ellipse................................. 978 EnableAlign.......'....................... 978 Exchange........,........................ 979 Expand................................. 979 FillRect................................ 980 FindNextControl............................ 980 FloodFill................................ 981 Focused................................ 982 FrameRect............................... 982 Free.................................. 983 GetTabOrderList................../.......... 983 HandleAllocated.............................. 984 HandleNeeded.............................. 984 Hide.................................. 984 IndexOf................................ 984 Insert................................. 985 Invalidate............................... 985 LineTo................................. 986 LoadFromClipboardFormat........................ 986 LoadFromFile.............................. 987 LoadFromResourcelD.......................... 987 LoadFromResourceName......................... 987 LoadFromStream............................ 988 Lock.................................. 988 Move.................................. 988 MoveTo................................ 989 MouseCapture.............................. 989 Open.................................. 989 Pie................................... 989 Polygon................................ 990 Polyline................................ 991 Post.................................. 992 Realign................................. 992 Rectangle................................ 992 Refresh................................ 993 Remove................................ 993 Repaint................................ 993 RoundRect............................... 993 SaveToClipboardFormat......................... 994 SaveToFile . . . . :.......................... 995 SaveToStream.............................. 995 ScaleBy................................ 996 ScaleControls.............................. 997 ScreenToClient............................. 997 ScrollBy..............................' ... 997 SelectFirst............................... 998 SelectNext............................... 998 SendCancelMode............................. 999 SendToBack............................... 999 SetBounds...............................1000 SetChildOrder.............................1000 SetFocus...............................1001 SetZOrder........................:...... 1001 Show................................. 1001 StretchDraw ............................. 1002 TextExtent.............................. 1002 TextHeight.............................. 1003 TextOut................................ 1003 TextRect............................... 1004 TextWidth.............................. 1005 TryLock................................ 1005 Unlock................................ 10Q6 Update................................ 1006 16.3 События.......................... 1006 AfterCancel и BeforeCancel....................... 1006 After-Close и BeforeClose........................ 1007 AfterDelete и BeforeDelete....................... 1007 AfterEdit и BeforeEdit......................... 1008 Afterlnsert и Beforelnsert....................... 1008 AfterOpen и BeforeOpen........................ 1008 AfterPost и BeforePost......................... 1009 AfterRefresh и BeforeRefresh...................... 1009 AfterScroll и BeforeScroll........................ 1010 BeforeCancel.............................. 1010 BeforeClose.............................. 1010 BeforeDelete.............................. 1010 BeforeEdit............................... 1010 Beforelnsert.............................. 1010 BeforeOpen.............................. 1010 BeforePost.............................. 1011 BeforeRefresh............................. 1011 BeforeScroll.............................. 1011 OnCalcFields.............................. 1011 OnChange — событие класса TCanvas.................. 1011OnChange — событие класса TGraphicsObject.............. 1012OnChanging.............................. 1012 OnClick................................ 1012 OnCreate............................... 1013 OnDblClick.............................. 1013 OnDeleteError............................. 1014 OnDragDrop.............................. 1014 OnDrngOver.............................. 1016 OnEditError............................'. . 1017 OnEndDrag.............................. 1018 OnEnter................................ 1018 OnExit................................ 1019 OnFilterRecord............................. 1019 OnKeyDown.............................. 1020 OnKeyPress..........................."... 1021 OnKeyUp............................... 1021 OnMouseDown и OnMouseUp...................... 1022 OnMouseMove............................. 1024 OnMouseUp.............................. 1024 OnNewRecord............................. 1024 OnPaint................................ 1024 OnPostError.............................. 1025 OnProgress.............................. 1026 OnStartDrag.............................. 1026 OnUpdnteError............................ 1027 OnUpdateRecord............................ 1028 16.4 Некоторые типы и классы.................. 1029 TBitmap — класс . . ......................... 1029TBrush — тип.............................. 1031TCanvas — класс........................... 1032TColor — тип............................. 1035TComponent — базовый класс компонентов............... 1035TControl — базовый класс визуальных компонентов........... 1037TControlState — тип.......................... 1042TControlStyle — тип.......................... 1042TCursor — тип.....*....................... 1043TCustomEdit — базовый класс окон редактирования........... 1043TDragMode — тип........................... 1045TFont — тип............................. 1045TFontName — тип........................... 1046TGraphic — базовый класс графических объектов............ 1046TIcon — класс............................. 1048TImageList — компонент и класс , . .................. 1049TList — класс............................. 1050TMetafile — класс........................... 1052TObject — базовый класс всех объектов................. 1054TOleServer — базовый класс серверов OLE................ 1055ТРеп — тип.............................. 1057TPicture — класс........................... 1058TPoint — тип............................. 1060 .TRect — тип............................. 1060TStringList — класс.......................... 1060TStrings — класс........................... 1062TWinControl — базовый класс оконных компонентов.......... 106416.5 Предметный указатель разделов книги, содержащих описания компонентов............. 1067 Цена: 600руб. |
||||