Петр Дарахвелидзе Евгений Марков Санкт-Петербург «бхв-петербург» 2003



Pdf көрінісі
бет1/37
Дата16.10.2019
өлшемі13.29 Mb.
  1   2   3   4   5   6   7   8   9   ...   37

Петр Дарахвелидзе

Евгений Марков

Санкт-Петербург

«БХВ-Петербург»

2003


УДК 681.3.06

Б Б К 32.973.26-018.2

Д20

 П. Г., Марков Е. П.

Д20 Программирование в Delphi 7. — СПб.: БХВ-Петербург, 2003. —

784  с : ил.

ISBN 5-94157-116-Х

В книге обсуждаются вопросы профессиональной разработки приложе-

ний в среде Borland Delphi 7. Приводится детальное описание объектной

концепции, стандартных и программных технологий, используемых при ра-

боте программистов. Значительная часть материала посвящена разработке

приложений, базирующихся на широко используемых и перспективных

технологиях доступа к данным: ADO, dbExpress, InterBase Express. Достой-

ное место отведено распределенным многозвенным приложениям и техно-

логии DataSnap. Все рассматриваемые в этой книге темы сопровождаются

подробными примерами.

Для программистов

УДК 681.3.06

ББК 32.973.26-018.2

Группа подготовки издания:

Главный редактор Екатерина Кондукова

Зав. редакцией Анна Кузьмина

Редактор Эльвира Максунова

Компьютерная верстка Ольги Сергиенко

Корректор Зинаида Дмитриева

Оформление серии Via Design

Дизайн обложки Игоря Цырульникова

Зав. производством Николай Тверских

Лицензия ИД № 02429 от 24.07.00. Подписано в печать 31.10.02.

Формат

 Печать офсетная. Усл. печ. л. 63,21.



Тираж 6000 экз. Заказ № 559

"БХВ-Петербург", 198005, Санкт-Петербург, Измайловский пр., 29.

Гигиеническое заключение на продукцию, товар Na

от 13.03.2002 г. выдано Департаментом ГСЭН Минздрава России.

Отпечатано с готовых диапозитивов

в Академической типографии "Наука" РАН

199034, Санкт-Петербург, 9 линия, 12.

I S B N


 П. Г., Марков Е. П., 2003

© Оформление, издательство "БХВ-Петербург", 2003



Содержание

ЧАСТЬ I. ОБЪЕКТНАЯ КОНЦЕПЦИЯ DELPHI 7 15

Глава 1. Объектно-ориентированное программирование 16

Объект и класс 17

Поля, свойства и методы 20

События 23

Инкапсуляция 27

Наследование 27

Полиморфизм 28

Методы 30

Перегрузка методов 34

Области видимости 35

Объект изнутри 38

Резюме 42

Глава 2. Библиотека визуальных компонентов VCL и ее базовые классы 44

Иерархия базовых классов 44

Класс


 47

Класс


 49

Класс


 51

Базовые классы элементов управления 53

Класс TControl 54

Группа свойств Visual. Местоположение и размер элемента управления 54

Выравнивание элемента управления 56

Внешний вид элемента управления 57

Связь с родительским элементом управления 59

Класс


 60

Класс


 63

Класс


 63

Резюме 63



Содержание

Глава 3. Обработка исключительных ситуаций 64

Исключительная ситуация как класс 64

Защитные конструкции языка Object Pascal 69

Блок


 70

Блок


 72

Использование исключительных ситуаций 74

Протоколирование исключительных ситуаций 76

Коды ошибок в исключительных ситуациях 78

Исключительная ситуация EAbort 82

Функция Assert 82

Резюме 83

Глава 4. Кроссплатформенное программирование для Linux 84

Проект CLX 86

Объектная концепция кроссплатформенного программирования 87

Библиотека компонентов CLX 88

Сходства и различия визуальных компонентов CLX и VCL 90

Особенности программирования для Linux 92

Приложения баз данных для Linux 94

Internet-приложения для Linux 94

Резюме 95

ЧАСТЬ II. ИНТЕРФЕЙС И ЛОГИКА ПРИЛОЖЕНИЯ 97

Глава 5. Элементы управления Win32 98

Что такое библиотека ComCtl32 98

Многостраничный блокнот — компоненты

 и

 100



Компонент TToolBar 105

Компонент

 110

Компоненты



 и

 '.

Календарь 125

Компонент TMonthCalendar 126

Компонент TDate Time Picker 127

Панель состояния

 129


Расширенный комбинированный список

 130


Создание нового компонента на базе элементов управления из библиотеки

 131


Резюме 141

Глава 6. Элементы управления Windows

 142

Пользовательский интерфейс Windows

 142

Манифест Windows



 143

Компонент TXPManifest 145

Включение манифеста Windows

 в ресурсы приложения 145

Визуальные стили и темы оформления 146

Визуальные стили в Delphi 147

Theme API 149


Содержание 5

Компоненты настройки цветовой палитры 151

Резюме 152

Глава 7. Списки и коллекции 153

Список строк 154

Класс

 154


Класс TStringList 155

Список указателей

Класс TList 163

Пример использования списка указателей 166

Коллекции 170

Класс TCollection 171

Класс

 172


Резюме 173

Глава 8. Действия (Actions) и связанные с ними компоненты 174

Действия. Компонент TActionList 175

События, связанные с действиями 176

Свойства, распространяемые на клиентов действия 178

Прочие свойства 179

Стандартные действия 180

Категория

 183


Категория Search 183

Категория Help 183

Категория

 183


Категория Dialog 184

Категория Window 184

Категория Tab 184

Категория List 184

Категория Internet 185

Категория Format 187

Категория Dataset 187

Категория Tools 187

Компонент

 187


Изменение и настройка внешнего вида панелей 189

Ручное редактирование коллекций панелей и действий 191

Резюме 194

Глава 9. Файлы и устройства ввода/вывода 195

Использование файловых переменных. Типы файлов 195

Операции ввода/вывода 197

Ввод/вывод с использованием функций Windows API 204

Отложенный (асинхронный) ввод/вывод 208

Контроль ошибок ввода/вывода 210

Атрибуты файла. Поиск файла

Потоки 213

Базовые классы

 и

 213



Класс

 215


6 Содержание

Класс


 217

Класс


 218

Оповещение об изменениях в файловой системе 218

Использование отображаемых файлов 220

Резюме 223



Глава 10. Использование графики 224

Графические инструменты Delphi 224

Класс

 225


Класс

 226


Класс

 227


Класс TCanvas 227

Класс


 233

Класс TPicture 235

Класс

 237


Класс

 238


Класс

 238


Графический формат JPEG. Класс

 243


Компонент

 245


Использование диалогов для загрузки и сохранения графических файлов 247

Класс


 254

Класс TScreen 256

Вывод графики с использованием отображаемых файлов 259

Класс TAnimate 263

Резюме 264

ЧАСТЬ III. ПРИЛОЖЕНИЯ БАЗ ДАННЫХ 265

Глава 11. Архитектура приложений баз данных 266

Как работает приложение баз данных 268

Модуль данных 271

Подключение набора данных 272

Настройка компонента TDataSource 274

Отображение данных 276

Резюме 278



Глава 12. Набор данных 279

Абстрактный набор данных 281

Стандартные компоненты 286

Компонент таблицы 287

Компонент запроса 289

Компонент хранимой процедуры 292

Индексы в наборе данных 293

Механизм подключения индексов 294

Список описаний индексов 295

Описание индекса 295

Использование описаний индексов 297

Параметры запросов и хранимых процедур 298



Содержание 7

Класс TParams 301

Класс

 302


Состояния набора данных 304

Резюме 307



Глава 13. Поля и типы данных 308

Объекты полей 309

Статические: и динамические поля 311

Класс TField. 313

Виды полей 317

Поля синхронного просмотра 317

Вычисляемые поля 320

Внутренние вычисляемые поля 321

Агрегатные поля 321

Объектные поля 322

Типы данных 323

Ограничения 328

Резюме

Глава 14. Механизмы управления данными 333

Связанные таблицы 334

Отношение "один-ко-многим" 334

Отношение "многие-ко-многим" 336

Поиск данных 337

Поиск по индексам 337

Поиск в диапазоне 338

Поиск по произвольным полям 339

Фильтры 340

Быстрый переход к помеченным записям 342

Диапазоны 344

Резюме 346



Глава 15. Компоненты отображения данных 347

Классификация компонентов отображения данных 347

Табличное представление данных 349

Компонент

 349

Компонент



 359

Навигация по набору данных 361

Представление отдельных полей 364

Компонент TDBText 364

Компонент TDBEdit. 365

Компонент

 365

Компонент



 366

Компонент

 366

Компонент



 366

Компонент TDBMemo 367

Компонент

 367


Компонент TDBRichEdit 368

8 Содержание

Синхронный просмотр данных 368

Механизм синхронного просмотра 369

Компонент



 Box 372

Компонент

 372

Графическое представление данных 372



Резюме 375

ЧАСТЬ IV. ТЕХНОЛОГИИ ДОСТУПА К ДАННЫМ 377

Глава 16. Процессор баз данных Borland Database Engine 378

Архитектура и функции BDE 379

Псевдонимы баз данных и настройка BDE 383

Интерфейс прикладного программирования BDE 392

Соединение с источником данных 401

Компоненты доступа к данным 406

Класс TBDEDataSet 406

Класс


 412

Компонент TTable 413

Компонент

 419


Компонент TStoredProc 421

Резюме 423



Глава 17. Технология dbExpress 424

Драйверы доступа к данным 425

Соединение с сервером баз данных 426

Управление наборами данных 431

Транзакции 434

Использование компонентов наборов данных 435

Класс

 435


Компонент TSQLDataSet 438

Компонент TSQLTable 438

Компонент

 439


Компонент TSQLStoredProc 439

Компонент

 440

Способы редактирования данных 443



Интерфейсы dbExpress 447

Интерфейс

 447

Интерфейс lSQLConnection 448



Интерфейс

 449


Интерфейс ISQLCursor. 450

Отладка приложений с технологией dbExpress 451

Распространение приложений с технологией dbExpress 453

Резюме 454



Глава 18. Сервер баз данных InterBase и компоненты InterBase Express 455

Механизм доступа к данным InterBase Express 456

Компонент TIBDatabase 456

Компонент TIBTransaction 461



Содержание

Компоненты доступа к данным 465

Область дескрипторов

 467


Структура XSQLVAR 468

Компонент TIBTable 469

Компонент

 470


Компонент TIBStoredProc 471

Компонент TIBDataSet 472

Компонент

 474


Обработка событий 477

Информация о состоянии базы данных 479

Компонент

 479


Компонент TIBSQLMonitor. 481

Резюме 482



Глава 19. Использование ADO средствами Delphi 483

Основы ADO 483

Перечислители 486

Объекты соединения с источниками данных 487

Сессия 487

Транзакции 488

Наборы рядов

 488


Команды 489

Провайдеры ADO 490

Реализация ADO в Delphi 491

Компоненты ADO 491

Механизм соединения с хранилищем данных ADO 492

Компонент



 DO Connect ion 492

Настройка соединения 493

Управление соединением 498

Доступ к связанным наборам данных и командам ADO 501

Объект ошибок ADO 503

Транзакции 504

Наборы данных ADO 505

Класс


 506

Набор данных 506

Курсор набора данных 507

Локальный буфер 509

Состояние записи 510

Фильтрация

Поиск 512

Сортировка 513

Команда ADO 513

Групповые операции 515

Параметры 516

Класс TParameters 516

Класс TParameter 517

Компонент TADODataSet 519

Компонент TADOTable 520


 Содержание

Компонент TADOQuery 520

Компонент TADOStoredProc 521

Команды ADO 521

Объект ошибок ADO 523

Пример приложения ADO 524

Соединение с источником данных 527

Групповые операции .„ 528

Фильтрация 529

Сортировка 529

Резюме 529

ЧАСТЬ V. РАСПРЕДЕЛЕННЫЕ ПРИЛОЖЕНИЯ БАЗ ДАННЫХ 531

Глава 20. Технология DataSnap. Механизмы удаленного доступа 532

Структура многозвенного приложения в Delphi 533

Трехзвенное приложение в Delphi 535

Сервер приложений 536

Клиентское приложение 538

Механизм удаленного доступа к данным DataSnap 538

Компонент TDCOMConnection 539

Компонент

 540

Компонент



 543

Провайдеры данных 545

Вспомогательные компоненты — брокеры соединений 548

Компонент TSimpleObjectBroker. 548

Компонент TLocalConnection 550

Компонент TSharedConnection 551

Компонент TConnectionBroker. 551

Резюме 552



Глава 21. Сервер приложения 553

Структура сервера приложения 554

Интерфейс IAppServer 555

Интерфейс

 558

Удаленные модули данных 558



Удаленный модуль данных для сервера Автоматизации 559

Дочерние удаленные модули данных 563

Регистрация сервера приложения 564

Пример простого сервера приложения 565

Главный удаленный модуль данных 566

Дочерний удаленный модуль данных 567

Регистрация сервера приложения 568

Резюме 569



Глава 22. Клиент многозвенного распределенного приложения 570

Структура клиентского приложения 571

Клиентские наборы данных 572


Содержание 11

Компонент

 574

Получение данных от компонента-провайдера 575



Кэширование и редактирование данных 577

Управление запросом на сервере 579

Использование индексов 580

Сохранение набора данных в файлах 582

Работа с данными типа BLOB 582

Представление данных в формате XML 583

Агрегаты 583

Объекты-агрегаты 584

Агрегатные поля 586

Группировка и использование индексов 587

Вложенные наборы данных 587

Дополнительные свойства полей клиентского набора данных 588

Обработка ошибок 589

Пример "тонкого" клиента 592

Соединение клиента с сервером приложения 594

Наборы данных клиентского приложения 595

Резюме 596

ЧАСТЬ VI. ГЕНЕРАТОР ОТЧЕТОВ RAVE REPORTS 5.0 597

Глава 23. Компоненты Rave Reports и отчеты в приложении Delphi 598

Генератор отчетов Rave Reports 5.0 599

Компоненты Rave Reports и их назначение 600

Отчет в приложении Delphi 601

Компонент отчета TRvProject 602

Компонент управления отчетом TRvSystem 605

Резюме 610

Глава 24. Визуальная среда создания отчетов 611

Инструментарий визуальной среды создания отчетов 612

Проект отчета 614

Библиотека отчетов 615

Каталог глобальных страниц 616

Словарь просмотров данных 616

Стандартные элементы оформления и их свойства 617

Элементы для представления текста и изображений 618

Графические элементы управления 619

Штрихкоды 619

Обработка событий 620

Внешние источники данных в отчете 620

Соединение с источником данных и просмотры 621

Безопасность доступа к данным 622

Отображение данных в отчетах 623

Структурные элементы отчета 623

Элементы отображения данных 625

Резюме 626



12 Содержание

Глава 25. Разработка, просмотр и печать отчетов 627

Этапы создания отчета и включение его в приложение 628

Простой отчет в визуальной среде Rave Reports 628

Нумерация страниц отчета 629

Использование элемента FontMaster 630

Добавление страниц к отчету 630

Отчет в приложении 631

Просмотр и печать отчета 633

Сохранение отчета во внешнем файле 634

Компонент

 635

Преобразование форматов данных 637



Резюме 638

Глава 26. Отчеты для приложений баз данных 639

Соединения с источниками данных в Rave Reports 640

Соединения с источниками данных в визуальной среде Rave Reports 642

Соединение через драйвер Rave Reports 642

Соединение через компонент приложения Delphi 644

Соединения с источниками данных в приложении 645

Компонент

 645


Компоненты, использующие BDE 647

Компонент

 648

Аутентификация пользователя в отчете 651



Типы отчетов 652

Простой табличный отчет 652

Отчет

 653


Группирующий отчет 656

Использование вычисляемых значений 657

Вычисляемые значения по одному источнику 657

Вычисляемые значения по нескольким источникам 659

Управляющие вычислительные элементы 661

Резюме 662



ЧАСТЬ VII. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ 663

Глава 27. Стандартные технологии программирования 664

Интерфейс переноса Drag-and-Drop 664

Интерфейс присоединения Drag-and-Dock 669

Усовершенствованное масштабирование 674

Управление фокусом 674

Управление мышью 675

Ярлыки 680

Резюме 683



Глава 28. Динамические библиотеки 684

Проект DLL 685

Экспорт из DLL 687


Содержание 13

Соглашения о вызовах 689

Директива register 689

Директива pascal 690

Директива stdcall 690

Директива

 690

Директива safecall 690



Инициализация и завершение работы DLL 690

Вызов DLL 694

Неявный вызов 694

Явный вызов 696

Ресурсы в DLL 699

Использование модуля

 703

Резюме 703



Глава 29. Потоки и процессы 704

Обзор потоков 705

Потоки и процессы 706

Фоновые процедуры, или способ обойтись без потоков 707

Приоритеты потоков 707

Класс TThread

Пример создания многопоточного приложения в Delphi 715

Проблемы при синхронизации потоков 719

Тупики 719

Гонки 720

Средства синхронизации потоков 721

Событие 722

Взаимные исключения 724

Семафор 724

Критическая секция 724

Процесс. Порождение дочернего процесса 725

Поток 727

Консольный ввод 727

Оповещение об изменении в файловой системе 727

Локальные данные потока 729

Как избежать одновременного запуска двух копий одного приложения 729

Резюме 730

Глава 30. Многомерное представление данных 732

Понятие


 732

Взаимосвязь компонентов многомерного представления данных 733

Подготовка набора данных 735

Компонент



 Query 739

Компонент TDecisionCube 739

Компонент TDecisionSource 743

Отображение данных 744

Компонент TDecisionGrid 744

Компонент TDecisionGraph 747



 Содержание

Управление данными 747

Компонент TDecisionPivot 748

Пример многомерного представления данных 749

Резюме 751

Глава 31. Использование возможностей Shell API 752

Понятие пространства

 752


Размещение значка приложения на System

 753


Интерфейс

 758


Интерфейс IShellFolder 760

Добавление пунктов в системное контекстное меню 767

Резюме 771

Приложение. Описание дискеты 773

Предметный указатель 776


Объектная концепция

Delphi 7

Глава 1. Объектно-ориентированное программирование

Глава 2. Библиотека визуальных компонентов

и ее базовые классы



Глава 3. Обработка исключительных ситуаций

Глава 4. Кроссплатформенное программирование для Linux

ГЛАВА 1

Объектно-ориентированное

программирование

Несколько лет назад книгу

 Delphi 2 или 3 надо было начинать с азов

объектно-ориентированного программирования (ООП). Многие только пе-

реходили к Delphi из DOS, многие использовали Borland Pascal for Windows

и работали с Windows API напрямую. Объекты еще были в диковинку, и

полное разъяснение новых принципов было просто обязательно.

Но и сейчас писать об этом вполне актуально. Конечно, выросло поколение

программистов, которые "с молоком матери" впитали новые понятия. Но от

понимания объектов до их грамотного использования — дистанция огром-

ного размера. Для создания более или менее сложных приложений нужны

навыки объектно-ориентированного дизайна, а для приложений в свою

очередь — четкое знание возможностей вашей среды программирования.

Поэтому в данной главе мы постараемся акцентировать внимание читателя

на применение ООП в среде Delphi 7.

По сравнению с традиционными способами программирования ООП обла-

дает рядом преимуществ. Главное из них заключается в том, что эта кон-

цепция в наибольшей степени соответствует внутренней логике функцио-

нирования операционной системы (ОС) Windows. Программа, состоящая из

отдельных объектов, отлично приспособлена к реагированию на события,

происходящие в ОС. К другим преимуществам ООП можно отнести боль-

шую надежность кода и возможность повторного использования отработан-

ных объектов.

В этой главе рассматриваются способы реализации основных механизмов

ООП в Object Pascal и Delphi:

 понятия объекта, класса и компонента;

 основные механизмы ООП: инкапсуляция, наследование и полимор-

физм;


 особенности реализации объектов;

 взаимодействие

 и методов.


Глава 1. Объектно-ориентированное программирование 17

Материал главы рассчитан на читателя, имеющего представление о самом

языке Object Pascal, его операторах и основных возможностях.



Достарыңызбен бөлісу:
  1   2   3   4   5   6   7   8   9   ...   37




©engime.org 2020
әкімшілігінің қараңыз

    Басты бет