• Название:

    Д. Осипов Delphi. Профессиональное программиро...


  • Размер: 11.45 Мб
  • Формат: PDF
  • или
  • Сообщить о нарушении / Abuse

Установите безопасный браузер



    Предпросмотр документа

    По договору между издательством «Символ-Плюс» и Интернет-магазином «Books.Ru – Книги России» единственный легальный способ
    получения данного файла с книгой ISBN 5-93286-074-X, название
    «Delphi. Профессиональное программирование» – покупка в Интернет-магазине «Books.Ru – Книги России». Если Вы получили данный
    файл каким-либо другим образом, Вы нарушили международное законодательство и законодательство Российской Федерации об охране авторского права. Вам необходимо удалить данный файл, а также сообщить издательству «Символ-Плюс» (piracy@symbol.ru), где именно
    Вы получили данный файл.

    Delphi
    Профессиональное
    программирование

    Дмитрий Осипов

    Санкт-Петербург–Москва
    2006

    Серия «High tech»

    Дмитрий Осипов

    Delphi. Профессиональное программирование
    Главный редактор
    Зав. редакцией
    Редактор
    Художник
    Корректор
    Верстка

    А. Галунов
    Н. Макарова
    А. Петухов
    В. Гренда
    О. Макарова
    Н. Гриценко

    Осипов Д.
    Delphi. Профессиональное программирование. – СПб.: Символ-Плюс, 2006. –
    1056 с., ил.
    ISBN 5-93286-074-X
    Книга Д. Осипова «Delphi. Профессиональное программирование» принципиально отличается от стандартных изданий на эту тему. Это и не скороспелое
    «полное» руководство по очередной версии Borland® Delphi™, и не рядовой справочник, содержащий перевод файлов помощи к среде программирования. Идея
    книги в другом. Автор системно и последовательно излагает концепцию Delphi,
    предоставляя читателю не просто инструмент, а профессиональную методику,
    позволяющую разрабатывать эффективные приложения для Windows.
    Книга рассчитана на подготовленного пользователя ПК, желающего самостоятельно научиться программировать и разрабатывать приложения и базы данных в среде Delphi. Опытные программисты смогут использовать издание как
    справочник. В тексте подробно описаны более 80 компонентов VCL, функции
    Object Pascal и Win32 API. В первой части книги излагаются основы языка
    программирования Delphi, подробно рассматриваются библиотека визуальных
    компонентов и процесс разработки собственных компонентов, изучаются динамически подключаемые библиотеки, процессы, многопоточные приложения, особенности межпрограммного взаимодействия, программирование на
    Win32 API, особенности построения сетевого программного обеспечения, технологии COM и OLE-automation. Вторая часть книги посвящена проектированию и созданию реляционных баз данных. Рассматриваются реляционная модель данных и язык SQL, изучаются компоненты доступа к данным и отображения данных, базирующиеся на механизмах BDE, ADO и InterBase.
    ISBN 5-93286-074-X
    © Дмитрий Осипов, 2006
    © Издательство Символ-Плюс, 2006
    Все права на данное издание защищены Законодательством РФ, включая право на полное или частичное воспроизведение в любой форме. Все товарные знаки или зарегистрированные товарные знаки, упоминаемые в настоящем издании, являются собственностью соответствующих фирм.

    Издательство «Символ-Плюс». 199034, Санкт-Петербург, 16 линия, 7,
    тел. (812) 324-5353, edit@symbol.ru. Лицензия ЛП N 000054 от 25.12.98.
    Налоговая льгота – общероссийский классификатор продукции
    ОК 005-93, том 2; 953000 – книги и брошюры.
    Подписано в печать 30.03.2006. Формат 70х1001/16 . Печать офсетная.
    Объем 66 печ. л. Тираж 2000 экз. Заказ N
    Отпечатано с готовых диапозитивов в ГУП «Типография «Наука»
    199034, Санкт-Петербург, 9 линия, 12.

    Оглавление

    Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    Часть I. Программирование для Windows в среде Delphi
    1.

    Язык программирования Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Простейшая программа на Object Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Основные типы данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Операторы и выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    14
    15
    19
    35
    43

    2. Процедуры и функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
    Процедуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Особенности объявления и передачи параметров . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Перегрузка методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Структура программного модуля стандартного проекта Delphi. . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Приложение 1: файлы проекта Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Приложение 2: русификация консольных приложений . . . . . . . . . . . . . . . . . . . . .

    44
    45
    46
    49
    49
    51
    51
    52

    3. Базовые функции Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
    Математические функции и процедуры. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Функции проверки вхождения значения в диапазон . . . . . . . . . . . . . . . . . . . . . . . .
    Тригонометрические функции и процедуры. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Финансовые функции и процедуры. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Статистические функции и процедуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Процедуры и функции для работы со строками типа AnsiString . . . . . . . . . . . . .
    Процедуры и функции для работы со строками типа PChar . . . . . . . . . . . . . . . . . .
    Работа с памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Процедуры управления ходом выполнения программы . . . . . . . . . . . . . . . . . . . . .
    Разные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    55
    56
    57
    58
    59
    61
    65
    68
    69
    70
    71

    4. Основы работы с файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
    Классификация типов файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
    Низкоуровневые методы работы с файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
    Управление файлами, дисками и каталогами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    4

    Оглавление

    5. Введение в объектно-ориентированное программирование . . . . . . . . . . 102
    Объект и класс. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Инкапсуляция. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Наследование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Полиморфизм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Программирование, управляемое событиями . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    103
    107
    109
    111
    112
    112

    6. Невидимые классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
    Основа основ – класс TObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Класс TPersistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Поток – TStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Основа компонента – класс TComponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Элемент управления – класс TControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Оконный элемент управления – класс TWinControl. . . . . . . . . . . . . . . . . . . . . . . .
    Обработка событий в классах TControl и TWinControl. . . . . . . . . . . . . . . . . . . . . .
    Основа графических элементов управления – класс TGraphicControl . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    7.

    115
    119
    120
    121
    125
    132
    136
    147
    148

    Списки и коллекции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
    Набор строк – TStrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Список – TList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Список строк – TStringList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Список объектов – класс TObjectList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Список компонентов – класс TComponentList . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Коллекция – класс TCollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    150
    152
    154
    155
    157
    157
    161

    8. Стандартные компоненты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
    Компоненты для редактирования текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Кнопки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Элементы управления – списки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Сетки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    162
    172
    179
    187
    195
    207

    9. Форма, интерфейсы SDI и MDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
    Форма – TForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Интерфейсы SDI и MDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Приложение – класс TApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Особенности обработки событий в приложении
    и компонент TApplicationEvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Экран – класс TScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    208
    222
    227
    235
    235
    238

    10. Графическая подсистема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
    Представление цвета в Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Перо – класс TPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Кисть – класс TBrush. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Шрифт – класс TFont. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    240
    241
    243
    244

    Оглавление
    Холст – класс TCanvas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Класс TGraphic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Пиктограмма – класс TIcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Растровое изображение – класс TBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Метафайл – класс TMetafile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Класс TJPEGImage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Универсальное хранилище изображений – класс TPicture. . . . . . . . . . . . . . . . . .
    Графические компоненты VCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Работа с графикой методами Win32 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    5
    246
    254
    257
    258
    261
    263
    265
    266
    270
    280

    11. Компоненты Win32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
    Список закладок – TTabControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Блокнот – компонент TPageControl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Иерархическая структура – TTreeView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Графический список – TListView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Панель инструментов – TToolBar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Панель состояния – TStatusBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Линейка – TCoolBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Полоса управления – TControlBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Шкала – TTrackBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    281
    285
    287
    302
    313
    318
    321
    323
    326
    327

    12. Для тех, кто ценит секунды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
    Представление даты и времени в Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Процедуры и функции для работы с датой и временем . . . . . . . . . . . . . . . . . . . . .
    Функции конвертирования даты и времени в другие типы данных . . . . . . . . . .
    Форматирование даты и времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Операционная система и таймер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Таймер – компонент TTimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Компоненты-календари – базовый класс TCommonCalendar . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    328
    329
    331
    332
    334
    336
    337
    341

    13. Работа с файлами инициализации и реестром Windows . . . . . . . . . . . . . . . 342
    Файл инициализации – класс TIniFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Реестр Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Низкоуровневый доступ к реестру – класс TRegistry . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    342
    346
    349
    355

    14. Диалог с Microsoft® Windows® . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
    Диалоговые окна сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Диалог выбора каталога . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Диалоги доступа к базе данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Стандартные диалоговые окна Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Резюме. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    356
    362
    363
    363
    381

    15. Обработка исключительных ситуаций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
    Защищенные от ошибок секции . . . . . . . . . . . . . . . . . . . . . . . . . .