Библия Delphi 2-е изд.

Аннотация

Книга посвящена программированию на языке Delphi от самых основ до примеров построения конкретных приложений. Подробно описывается логика выполнения каждого участка кода, чтобы читатель смог использовать эти знания при решении собственных задач. Книга содержит большое количество примеров практического программирования; некоторые из них вынесены в качестве дополнительной информации на прилагаемый компакт-диск. Во втором издании материал существенно переработан и дополнен с учетом новых возможностей. Компакт-диск содержит исходные коды программ, дополнительную справочную информацию, а также готовые изображения и компоненты.

Купить книгу онлайн

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

Введение

Данная книга посвящена одному из наиболее популярных в нашей стране и перспективному во всем мире языку программирования Delphi. Она предназначена для программистов всех уровней, от начинающего до опытного. Как показывает практика, большинство людей научились программированию по книгам. Однако далеко не все из этих книг объясняют принципиальные основы работы Windows и компьютера в целом. Отсутствие базовых знаний в этой области не позволяет писать эффективные программы.

Эта книга может научить многому. Однако без самостоятельного стремления совершенствоваться в данной области вы не сможете самостоятельно писать "хорошие" программы. В этой книге будут рассматриваться различные методы, некоторые шаблоны и приемы программирования на языке Delphi, однако описать абсолютно все, как вы понимаете, здесь просто невозможно. Программирование  это такая область, в которой требуется постоянное обучение. В связи с этим, нельзя останавливаться на достигнутом, прочитав только одну книгу. Нужно постоянно совершенствоваться и обучатся.

За что я люблю компьютеры, так это за то, что они являются безграничным источником знаний, которые нельзя изучить в полном объеме. Даже если вы сможете узнать все, пока вы будете обучаться, появятся новые технологии. Именно поэтому нет человека, который знал бы все. Я тоже не знаю, но люблю изучать что-то новое. Но если даже представить себе, что я смогу изучить все, то лично мне жить станет скучно.

Прежде чем приступить к изучению самой книги, необходимо сделать несколько замечаний. Первое из них касается терминологии. В тексте часто будет использоваться выражение "Язык программирования Delphi". Многие утверждают, что Delphi  это среда разработки, которая использует язык программирования Pascal (Паскаль). В принципе, здесь не утверждается, что это ошибка. И все же, в Delphi от старого Паскаля осталось очень мало, поэтому я считаю, что это не просто среда разработки, а самостоятельный язык программирования. Это лично мое мнение как автора и вы можете с ним соглашаться или нет. Но даже разработчик среды разработки Delphi уже тоже воспринимает Delphi, как самостоятельный язык.

Теперь о содержимом книги. В ней сделана попытка представить изучаемый материал таким образом, чтобы было понятно даже человеку, который только недавно познакомился с компьютером. Возможно, опытным программистам какие-то части читать будет скучно, но даже здесь будут описываться достаточно специфичные вещи, среди которых можно найти для себя довольно много полезного. Поверьте, это действительно так и связано с тем, что большинство книг по данной проблематике упускают из виду некоторые очень важные тонкости, которые желательно знать для понимания принципа работы программ. Без этого понимания тяжело двигаться дальше и любые новые технологии будут казаться тяжелыми и сложными.

Прежде чем приступить к чтению книги, учтите один совет. Книгу желательно читать полностью, от начала и до конца, потому что материал излагается постепенно, и некоторые вещи могут быть непонятны, если что-то пропустить вначале. Как только вы почувствуете, что набрали достаточно знаний и способны самостоятельно писать хотя бы простейшие программы, можете сделать единственный скачок на главу 25. В ней дается материал, касающийся отладки приложений, потому что при самостоятельном написании программ всегда появляются ошибки или опечатки. Мы люди и нам свойственно совершать ошибки. Эта глава объясняет, как находить такие ошибки. В ней вы также узнаете некоторые приемы по работе с редактором кода, которые могут пригодиться в будущем при программировании собственных приложений, да и при работе с примерами, которые представлены в этой книге. После прочтения этой главы можно вернуться к той, на которой вы остановились ранее, и продолжить чтение книги уже без каких-либо скачков. Иначе какой-то важный момент может быть упущен, и нагнать, потом будет очень тяжело, потому что вы можете не заметить, что что-то упустили.

И последнее, некоторые термины, встречающиеся в книге, могут отличаться от аналогичных, которые изложены в другой технической литературе, относящейся к данному вопросу. Это связано с особенностями перевода англоязычного текста на русский язык. В любом случае, терминология, которая приводится в книге, делает ее намного проще и понятней как начинающим, так и опытным программистам.

Замечания ко второму изданию

Если вы читали первый вариант книги, вам также будет полезно прочитать эту книгу, потому что данный вариант переработан полностью от начала и до самого конца. Помимо этого, на компакт–диске, прилагаемом к данной книге представлено много новой и полезной документации, которая поможет вам двигаться дальше после прочтения книги.

Некоторая информация была перенесена из книги на компакт-диск в виде электронных документов. Этим я сэкономил место, чтобы дать больше полезной информации на страницах книги. Если бы всю эту информацию превратить в печатные страницы, то книга стала бы как минимум в два раза больше. Пришлось бы выпускать два тома, но это оказалось бы очень дорого для многих читателей, а я хочу, чтобы книга оставалась доступной и давала максимум информации.

Когда я планировал написать эту книгу, то основная цель была не заработать как можно больше денег, а поделиться знаниями и дать как можно больше. Пусть книга будет дешевле, а я заработаю меньше, но вы уж точно не будете жалеть, что потратили свои деньги.

Над вторым изданием я работал в два раза дольше, несмотря на то, что это всего лишь обновление. Первое издание было создано на скорую руку и поэтому содержало много ошибок. На этот раз я старался не торопиться, чтобы совершать меньше ошибок. Я человек и могу совершать ошибки или опечатки, поэтому, если вы найдете их в данной книге, просьба сообщить мне об этом через мой сайт www.vr-online.ru или напрямую, по электронной почте info@vr-online.ru.

Для работы над вторым изданием я использовал Borland Delphi версии 2006. Некоторые до сих пор используют 7-ю версию, поскольку были разочарованы 8-й версией и Delphi 2005. Если вы тоже используете старую версию, то я советую вам попробовать Delphi 2006, потому что он намного лучше. Если же вы не хотите переходить на Delphi 2006 или уже перешли на более новую, то не отчаивайтесь. Описываемый в книге материал и примеры будут работать у вас без каких либо проблем.

В 2006-году среду разработки Delphi выпускал Borland, а в конце года эта задача была передана созданному самостоятельному подразделению CodeGear. Так что среда разработки этой компании тоже подойдет для изучения примеров из этой книги.


Содержимое

Оглавление Введение 11
Замечания ко второму изданию 13

Глава 1. Основные принципы работы компьютера

15
1.1. Двоичная система работы процессора 15
1.2. Машинный язык 21
1.3. История языков программирования 22
1.4. Исполнение машинных команд 27

Глава 2. Машинная математика

29
2.1. Основы машинной математики 29
2.2. Блок-схемы 32
2.3. Машинная логика и циклы 34
2.4. Программирование машинной логики 37

Глава 3. Начальные сведения о Delphi

39
3.1. Оболочка Delphi 39
3.2. Главное меню 42
3.3. Настройка 45

Глава 4. Визуальная модель Delphi

52
4.1. Процедурное программирование 53
4.2. Объектно-ориентированное программирование 57
4.3. Компонентная модель 62
4.4. Наследственность 63
4.5. Полиморфизм 65
4.6. Инкапсуляция 66

Глава 5. Основы языка программирования Delphi

68
5.1. "Hello World", или Из чего состоит проект 68
5.2. Язык программирования Delphi 79
5.3. Типы данных в Delphi 85
5.3.1. Целочисленные типы данных 86
5.3.2. Вещественные типы данных 87
5.3.3. Символьные типы данных 88
5.3.4. Булевы типы 93
5.3.5. Массивы 95
5.3.6. Странный PChar 96
5.3.7. Константы 98
5.3.8. Всемогущий Variant 99
5.4. Процедуры и функции в Delphi 100
5.5. Рекурсивный вызов процедур 109
5.6. Встроенные процедуры 111
5.7. Возврат значений через параметры 113
5.8. Перегрузка 114
5.8. Методы объектов 115
5.9. Наследование объектов 116

Глава 6. Работа с компонентами

119
6.1. Основная форма и ее свойства 119
6.2. Событийная модель Windows 130
6.3. События главной формы 132
6.4. Палитра компонентов 133

Глава 7. Палитра компонентов Standard

135
7.1. Кнопка (TButton) 135
7.2. Изменение свойств кнопки (логические операции) 139
7.3. Надписи (TLabel) 143
7.4. Строки ввода (TEdit) 144
7.5. Многострочное поле ввода (TMemo) 146
7.6. Класс TStrings 151
7.6.1. Свойства TStrings 151
7.6.2. Методы объекта TStrings 151
7.7. Компонент CheckBox 152
7.8. Панели (TPanel) 153
7.9. Кнопки выбора TRadioButton 156
7.10. Списки выбора (TListBox) 157
7.11. Ниспадающие списки (TComboBox) 159
7.12. Полосы прокрутки (TScrollBar) 161
7.13. Группировка объектов (TGroupBox) 162
7.14. Группа компонентов RadioButton (TRadioGroup) 163
7.15. Список действий TActionList 164

Глава 8. Учимся программировать

167
8.1. Циклы fo...to...do 167
8.2. Циклы while 171
8.3. Циклы Repeat 173
8.4. Управление циклами 174
8.5. Логические операторы 179
8.6. Работа со строками 182
8.6.1. Функция Length 182
8.6.2. Функция Copy 183
8.6.3. Функция Delete 184
8.6.4. Функция Pos 184
8.6.5. Функция Insert 185
8.7. Исключительные ситуации 185
8.8. Классы исключительных ситуаций 188

Глава 9. Создание рабочих приложений

193
9.1. Создание главного меню программы 193
9.2. Создание дочерних окон 198
9.3. Модальные и немодальные окна 202
9.4. Обмен данными между формами 203
9.5. Многодокументные MDI-окна 205
9.6. Инициализация окон 211
9.7. Фреймы 216

Глава 10. Основные приемы программирования

218
10.1. Работа с массивами 218
10.2. Многомерные массивы 224
10.3. Работа с файлами 226
10.4. Работа с текстовыми файлами 230
10.5. Приведение типов 234
10.5.1. Преобразование целых чисел в строку и обратно 235
10.5.2. Преобразование даты в строку и обратно 236
10.5.3. Преобразование вещественных чисел 238
10.6. Преобразование совместимых типов (преобразование строк) 240
10.6.1. Приведение классов 241
10.7. Указатели 243
10.8. Структуры, записи 246
10.9. Храним структуры в динамической памяти 251
10.10. Поиск файлов 253
10.11. Работа с системным реестром 258
10.12. Множества 266
10.13. Потоки 267
10.14. Концентрация на объекте 269

Глава 11. Обзор дополнительных компонентов Delphi

271
11.1. Дополнительные кнопки Delphi (TSpeedButton и TBitBtn) 271
11.2. Самостоятельная подготовка иконок 277
11.3. Маскированная строка ввода (TMaskEdit) 277
11.4. Сеточки (TStringGrid, TDrawGrid) 278
11.5. Компоненты TImage, TShape, TBevel 286
11.6. Панель с полосами прокрутки (TScrollBox) 290
11.7. Маркированный список (TCheckListBox) 291
11.8. Полоса разделения (TSplitter) 293
11.9. Многострочный текст (TStaticText) 294
11.10. Редактор параметров (TValueListEditor) 294
11.11. Набор вкладок (TTabControl ) 297
11.12. Набор страниц (TPageControl) 302
11.13. Набор картинок (TImageList) 306
11.14. Ползунки (TTrackBar) 306
11.15. Индикация процесса (TProgressBar) 308
11.16. Простейшая анимация (TAnimate) 311
11.17. Ниспадающий список выбора даты (TDateTimePicker) 313
11.18. Календарь (TMonthCalendar) 313
11.19. Дерево элементов (TTreeView) 314
11.20. Профессиональное использование компонента TreeView 320
11.21. Список элементов (TListView) 324
11.22. Простейший файловый менеджер 327
11.23. Улучшенный файловый менеджер (с возможностью запуска файлов) 339
11.24. Подсказки для чайников (TStatusBar) 340
11.25. Панель инструментов (TToolBar и TControlBar) 343
11.26. Перемещаемые панели и меню в стиле MS (Docking) 346
11.27. Меню и панели в стиле ХР 350
11.28. Всплывающее меню в стиле ХР 355
11.29. Практика использования Action 356
11.30. События приложения 361
11.31. Поле ввода с меткой 362
11.32. Коробка с цветом 362
11.33. Иконка в SystemTray 363

Глава 12. Графические возможности Delphi

365
12.1. Графическая система Windows 365
12.2. Первый пример работы с графикой 367
12.3. Свойства карандаша 369
12.4. Свойства кисти 373
12.5. Работа с текстом в графическом режиме 378
12.6. Вывод текста под углом 380
12.7. Работа с цветом 385
12.8. Методы объекта TCanvas 390
12.8.1. Pixels 390
12.8.2. TextWidth и TextHeight 391
12.8.3. Arс 391
12.8.4. CopyRect 391
12.8.5. Draw 393
12.8.6. Ellipse 393
12.8.7. FillRect 393
12.8.8. FloodFill 393
12.9. Компонент работы с графическими файлами (TImage) 394
12.10. Рисование на стандартных компонентах 398
12.11. Работа с экраном 403
12.12. Режимы рисования 405
12.13. Сканирование данных 411

Глава 13. Печать в Delphi

415
13.1. Объект TPrinter 416
13.2. Получение информации об установленном принтере 420
13.3. Текстовая печать 424
13.4. Печать содержимого формы 425
13.5. Вывод на печать изображения 431
13.6. Еще немного о печати 434
13.7. Это интересно 436

Глава 14. Delphi и базы данных

440
14.1. Теория реляционных баз данных 441
14.1.1. Локальные базы данных 443
14.1.2. Delphi и базы данных 445
14.2. Создание первой базы данных Access 446
14.3. Пример работы с базами данных 450
14.3.1. Свойства компонента TADOTable 455
14.3.2. Методы компонента TADOTable 457
14.4. Управление отображением данных 459
14.5. Поисковые поля 467
14.6. Улучшенный пример с поисковыми полями 474
14.7. Сортировка 477
14.8. Фильтрация данных 479
14.9. Язык запросов SQL 484
14.10. Связанные таблицы 491
14.11. Вычисляемые поля 497
14.12. Цветные сетки DBGrid 501
14.13. Подключение к базе данных во время выполнения программы 505
14.14. Расширения ADO 508
14.15. Обработка базы данных 514
14.16. Бинарные данные 517
14.17. События наборов данных 522
14.18. События DataSource 524
14.19. Позиционирование 526

Глава 15. Создание отчетности

528
15.1. Создание отчетности в Excel 529
15.2. Отчетность в Word 538
15.3. Отчетность в Quick Reports 540
15.4. Печать таблиц с помощью Quick Reports 547
15.5. Печать связанных таблиц 548
15.6. Дополнительные возможности 550

Глава 16. Работа с DBF, Paradox, XML и клиент-серверными базами данных

552
16.1. Создание таблицы Paradox 553
16.2. Русификация таблиц Paradox и DBF 559
16.3. Быстрый поиск 561
16.4. Создание псевдонимов 562
16.5. Работа с XML-таблицами 566
16.6. Теория клиент-серверных баз данных 567
16.7. Пример работы с SQL Server 569
16.8. Многоуровневые приложения для баз данных 575
16.8.1. Реализация сервера бизнес-логики 578
16.8.2. Клиент для бизнес-логики 581

Глава 17. Потоки

587
17.1. Теория потоков 588
17.2. Простейший поток 590
17.3. Дополнительные возможности потоков 594
17.4. Подробней о синхронизации 596
17.5. Объект события Event 597
17.6. Критические секции 602

Глава 18. Динамически компонуемые библиотеки

606
18.1. Что такое DLL 606
18.1.1. Решение № 1 606
18.1.2. Проблема № 1 607
18.1.3. Проблема № 2 607
18.1.4. Решение № 2 608
18.1.5. Из чего сделан Windows 610
18.2. Простой пример создания DLL 612
18.3. Замечания по использованию библиотек 616
18.4. Хранения формы в динамических библиотеках 617
18.5. Немодальные окна в динамических библиотеках 621
18.6. Явная загрузка библиотек 624
18.7. Точка входа 627
18.8. Вызов из библиотек процедур основной программы 629

Глава 19. Разработка собственных компонентов

632
19.1. Пакеты 633
19.2. Подготовка к созданию компонента 641
19.3. Создание первого компонента 644
19.4. Создание иконки компонента 655
19.5. События в компонентах 657
19.6. Когда создавать компоненты 659

Глава 20. Технология OLE

660
20.1. Теория OLE 660
20.2. OLE-контейнер 663
20.3. Создание собственного окна вставки OLE-объекта 668

Глава 21. Компоненты ActiveX

673
21.1. Использование Internet Explorer 673
21.2. Пример создания ActiveX-форм 680
21.3. Создание компонентов ActiveX 684

Глава 22. Технология COM

692
22.1. Модель COM 692
22.2. Информация о COM 693
22.3. Интерфейс и реализация 695

Глава 23. Буфер обмена

699
23.1. Буфер обмена и стандартные компоненты Delphi 699
23.2. Объект Clipboard 701
23.3. Картинки и буфер обмена 703
23.4. Создание собственного формата для работы с буфером 709

Глава 24. Дополнительная информация

717
24.1. Тестирование и отладка 717
24.2. Работа с редактором 726
24.2.1. Закладки 726
24.2.2. Копирование строк 727
24.2.3. Code Explorer 728
24.2.4. Редактор кода 729
24.3. Создание программ инсталляции 730
24.4. Как писать и распространять программы 743

Глава 25. Практика

747
25.1. Создание ScreenSaver 747
25.2. Компоненты в runtime 753
25.3. Тест на прочность 759
25.4. Сохранение и загрузка теста 773
25.5. Тестер 777
Приложение 1. Основные классы библиотеки VCL 785
П1.1. TObject 785
П1.2. TPersistent 785
П1.3. TComponent 786
П1.4. TControl 786
П1.5. TWinControl 790
П1.6. TApplication 792
Приложение 2. Описание компакт-диска 793
Список литературы 794
Предметный указатель 795
8 Оглавление 9 Оглавление

Отзывы

Дмитрий_КЛД

28 Октября 2021

Самая первая и самая любимая книга по прекрасному языку DELPHI. Спасибо Михаил!


Сергей

17 Февраля 2023

жаль что делфи загнулся


Игорь Олегович

29 Декабря 2023

Нет, Embarcadero развивает проект.


Алексей Иванков

28 Марта 2024

Зря вы так, Сергей. Между "загнулся" (мертв) и не популярный - две большие разницы. Современный Delphi фактически тот же C#, но в чем то даже лучше. Попробуйте сами.


Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне