Оглавление Введение 1
Часть I. Основы языка Delphi
3
Глава 1. Знакомство
5
Структура консольного приложения 6
Комментарии 7
Перевод листинга программы в машинные коды 8
Первая программа 10
Глава 2. Типы данных Delphi
11
Переменные 11
Константы 13
Строки-ресурсы 13
Правила объявления идентификаторов 14
Типы данных 14
Простые типы 16
Целые числа 16
Символьный тип 16
Логический тип 17
Перечисления 18
Диапазоны 19
Обслуживание данных порядкового типа 19
Действительные типы 20
Строковый тип 21
Указатели 22
Вариантный тип 24
Глава 3. Структурные типы
25
Множества 26
Записи 27
Вариантные поля 29
Усовершенствованная запись 30
Массивы 31
Объявление массива 32
Обращение к ячейкам массива 32
Динамический массив 33
Вариантные массивы 34
Глава 4. Операторы и выражения
36
Оператор присваивания 36
Арифметические операторы 36
Оператор конкатенации строк 37
Логические операторы 38
Операторы поразрядного сдвига 39
Операторы отношения 40
Операторы множеств 40
Составной оператор begin..end 41
Условный оператор if..then..else 42
Оператор-селектор case 43
Оператор перехода goto 45
Оператор with..do 45
Организация циклов 46
Цикл с параметром for..do 46
Инструкция in в цикле for..do 48
Цикл с предусловием while..do 48
Цикл с постусловием repeat..until 49
Вложенные циклы 49
Операторы break и continue 50
Глава 5. Процедуры и функции
52
Процедуры 53
Функции 55
Особенности передачи параметров 58
Директивы для процедур и функций 62
Перегрузка функций: директива overload 62
Опережающее объявление: директива forward 63
Внешнее объявление: директива external 65
Встроенная функция: директива inline 65
Рекурсивная функция 65
Процедурный тип данных 66
Анонимные функции 66
Глава 6. Файлы и каталоги
68
Типизированные файлы 68
Пример работы с типизированным файлом 72
Особенности удаления записей из больших файлов 76
Текстовые файлы 77
Двоичные файлы 79
Управление дисками, каталогами и файлами 80
Работа с дисками компьютера 81
Организация поиска каталогов и файлов 83
Проверка существования файла и каталога 85
Расположение системных каталогов 85
Создание, удаление, копирование и перемещение 86
Размер файла 87
Дата и время создания файла и каталога 88
Атрибуты файла и каталога 89
Глава 7. Концепция ООП
90
Основные понятия ООП 90
Абстрагирование 91
Инкапсуляция 92
Модульность 92
Наследование 93
Класс Delphi 93
Проектирование класса 94
Управление жизненным циклом объекта 96
Опережающее объявление класса 97
Ограничение видимости членов класса 99
Свойства объекта 100
Особенности объявления методов 101
Поля класса и методы класса 101
Иерархия наследования 102
Полиморфизм 103
Операторы класса 105
Аннотация класса 106
Создание и подключение атрибутов с аннотацией 106
Извлечение аннотации 107
Глава 8. Шаблоны
109
Обобщенный тип данных в полях записей 109
Обобщения в процедурах и функциях 111
Обобщенные типы данных в шаблонах классов 112
Наследование шаблона класса 113
Перегрузка методов с параметром обобщенного типа 114
Шаблон массива, класс TArray 115
Часть II. Платформа VCL
117
Глава 9. Опорные классы VCL
119
Класс TObject 119
Управление жизненным циклом объекта 121
Информирование о классе 123
Класс TPersistent 125
Основа компонента, класс TComponent 126
Владение компонентом 127
Глава 10. Массивы указателей, наборы строк и коллекции
129
Массив указателей, класс TList 130
Контейнер объектов, класс TObjectList 133
Контейнер компонентов, класс TComponentList 133
Наборы строк, класс TStrings 134
Редактирование списка и управление данными 135
Загрузка и сохранение строк 137
Объединение строк 138
Поиск строки и объекта 139
Обслуживание данных "параметр — значение" 139
Оптимизация производительности 139
Особенности класса TStringList 140
Коллекции 141
Элемент коллекции, класс TCollectionItem 142
Создание и уничтожение коллекции 143
Доступ к элементу коллекции 143
Манипуляции элементами коллекции 143
Поиск элемента коллекции 144
Сравнение коллекций 144
Глава 11. Классы потоков данных
145
Прототип потоков данных, класс TStream 145
Потоки с дескриптором, класс THandleStream 147
Файловый поток данных, класс TFileStream 147
Пример работы с файловым потоком данных 149
Потоки данных в памяти 151
Поток данных в памяти TMemoryStream 152
Поток байтов TBytesStream 152
Поток строк TStringStream 153
Поток с возможностью сжатия данных 154
Сжатие данных TZCompressionStream 154
Восстановление данных TZDecompressionStream 155
Глава 12. Визуальные элементы управления и класс TControl
157
Принадлежность к родительскому контейнеру 157
Размещение и размеры элемента управления 158
События, связанные с изменением размеров 160
Пересчет клиентских и экранных координат 160
Выравнивание элемента управления в контейнере 161
Видимость и активность элемента управления 162
Внешний вид 163
Вывод текста 163
Оперативная подсказка 163
Контекстное меню 164
Командный объект 164
Поддержка естественного ввода 165
Обработка событий мыши 165
Щелчки кнопками мыши 165
Перехват щелчков мыши 169
Перемещение указателя мыши 170
Вращение колесика мыши 172
Операция перетаскивания drag and drop 173
Пример реализации операции drag and drop 175
Глава 13. Оконные элементы управления и класс TWinControl
178
Дескриптор окна 178
Управление подчиненными элементами 180
Выравнивание подчиненных элементов 181
Фокус ввода 182
Обработка событий клавиатуры 183
Операция буксировки drag and dock 185
Буксировка программным способом 189
Глава 14. Приложение VCL
191
Приложение VCL, класс TApplication 193
Оконная процедура 193
Общие возможности Application 195
Доступ к основным объектам приложения 197
Обработка поступающих сообщений 197
Управление процессом создания приложения 199
Завершение работы приложения 201
Сворачивание и восстановление размеров окна приложения 202
Диалоговое окно приложения 202
Осуществление оперативной подсказки 203
Подключение к справочной системе 204
События приложения, класс TApplicationEvents 205
Значок в области уведомлений 206
Пример работы с компонентом TTrayIcon 208
Стили оформления приложения 209
Менеджер стилей TStyleManager 211
Утилита создания стилей оформления 213
Глава 15. Форма, фрейм и модуль данных
215
Форма проекта VCL, класс TForm 215
Описание формы в dfm-файле 216
Стиль, поведение и оформление формы 218
Состояние формы 219
Создание, отображение и уничтожение форм 220
Вывод формы в модальном режиме 221
Закрытие формы 222
Уничтожение формы 223
Подключение меню 223
Фокус ввода 223
Полосы прокрутки 224
Особенности графического вывода формы 225
Выбор монитора для вывода формы 225
Масштабирование шрифта 226
Эффект прозрачности 226
Дескрипторы окна 228
Прикрепление формы к границам экрана 228
Обработка событий формы 228
Жизненный цикл формы 229
Нажатие быстрых клавиш 231
Пользовательские интерфейсы SDI и MDI 232
Особенности проекта MDI 233
Фрейм TFrame 237
Создание простого фрейма 237
Диалоги-помощники на основе фреймов 239
Модуль данных TDataModule 242
Глава 16. Исключительные ситуации
244
Защищенные от ошибок секции 244
Конструкция try..except 245
Конструкция try..finally 245
Вложенные конструкции try 246
Объектная модель исключительных ситуаций 247
Базовый класс Exception исключительной ситуации 249
Тихая исключительная ситуация EAbort 251
Исключительная ситуация отладки EAssertionFailed 252
Определение новых классов ИС 253
Расширенные возможности try..except 254
Централизованная обработка ошибок в приложении 255
Настройка поведения Delphi при обработке исключительных ситуаций 256
Глава 17. Компоненты отображения и редактирования текста
257
Компоненты отображения текста 257
Метка TLabel 257
Статический текст TStaticText 260
Метка-ссылка TLinkLabel 260
Компоненты редактирования текста 261
Основа текстовых редакторов, класс TCustomEdit 262
Ограничения на ввод 263
Выделение части текста 264
Взаимодействие с буфером обмена 265
Отмена изменений 265
Строка ввода TEdit 266
Строка ввода с кнопками TButtonedEdit 266
Строка ввода с меткой TLabeledEdit 266
Строка ввода с маской TMaskEdit 267
Многострочный текстовый редактор TMemo 268
Редактор расширенного текстового формата TRichEdit 269
Форматирование абзаца — класс TParaAttributes 270
Атрибуты текста — класс TTextAttributes 271
Особенности обработки событий 271
Глава 18. Кнопки и компоненты выбора значений
274
Кнопка TButton 274
Кнопка с рисунком TBitBtn 277
Кнопка-флажок TCheckBox 278
Кнопки изменения значения TUpDown 279
Кнопка выбора TRadioButton 280
Группа переключателей TRadioGroup 280
Группа кнопок TButtonGroup 281
Категории кнопок TCategoryButtons 284
Глава 19. Меню приложения
290
Опорный класс меню TMenu 291
Главное меню TMainMenu 292
Контекстное меню TPopupMenu 293
Элемент меню TMenuItem 294
Элемент меню в виде флажка 295
Элементы меню в виде группы выбора 296
Родительские и дочерние элементы меню 297
Присвоение элементам меню значков 298
Динамическое создание элементов меню 298
Удаление элементов меню 300
Элементы-разделители 300
Особенности прорисовки пункта меню 301
Глава 20. Управление приложением с помощью команд
303
Команда TAction 304
Связь с элементом управления 307
Выполнение команды 307
Установка в актуальное состояние 308
Связь команды с контейнером 308
Менеджеры команд 308
Общие черты менеджеров команд 309
Список команд TActionList 310
Менеджер команд TActionManager 310
Командные панели 311
Класс TActionClientItem 312
Опорный класс командных панелей TCustomActionBar 314
Панель главного меню TActionMainMenuBar 315
Инструментальная панель TActionToolBar 316
Контекстное командное меню TPopupActionBar 316
Настройка интерфейса во время выполнения приложения, диалог TCustomizeDlg 317
Редактор "горячих" клавиш THotKey 319
Глава 21. Списки
321
Опорный класс списков TCustomListControl 323
Общие черты списков, список TListBox 324
Замедление перебора элементов списка 327
Особенности обработки событий 327
Список с флажками выбора TCheckListBox 330
Список выбора цвета TColorListBox 331
Комбинированные списки, TComboBox 333
Улучшенный комбинированный список TComboBoxEx 335
Список просмотра TListView 337
Стиль представления данных 338
Особенности работы списка со стилем vsReport 339
Колонка TListColumn 340
Коллекция элементов списка TListItems 340
Элемент списка TListItem 342
Редактирование заголовка элемента 343
Выбор элементов списка 343
Упорядочивание элементов 345
Поиск элементов 345
Группировка элементов 346
Операции перерисовки 346
Пример работы с TListView 348
Глава 22. Сетки
353
Общие черты сеток, сетка TDrawGrid 354
Адресация ячейки 356
Обработка событий 356
Расширенные возможности по оформлению сетки 358
Сетка строк TStringGrid 359
Редактор списка значений TValueListEditor 363
Глава 23. Иерархические данные и компонент TTreeView
367
Сохранение и загрузка дерева 369
Выбор узла в дереве 369
Одновременный выбор нескольких узлов 370
Узел дерева TTreeNode 371
Положение узла в дереве 372
Родительские узлы 372
Дочерние узлы 373
Методы перехода между узлами дерева 373
Перемещение узла 374
Удаление узла 375
Значок узла 375
Свертывание и развертывание узла 376
Хранилище узлов класс TTreeNodes 377
Добавление узлов 378
Сортировка узлов 381
Удаление узлов из коллекции 382
Редактирование текста узла 383
Оформление дерева 383
Глава 24. Панели-контейнеры
387
Простые панели 387
Простая панель TPanel 388
Панель TFlowPanel 390
Панель-сетка TGridPanel 390
Область группировки TGroupBox 392
Контейнеры с возможностью скроллинга 393
Область с полосами прокрутки TScrollBox 393
Страница с кнопками прокрутки TPageScroller 394
Разделитель панелей, компонент TSplitter 395
Глава 25. Инструментальные планки
397
Инструментальная планка TToolBar 398
Кнопка TToolButton 398
Управление кнопками 402
Пользовательские настройки 403
Оформление 403
Планка TCoolBar 404
Дочерняя полоса TCoolBar 405
Планка управления TControlBar 406
Панель состояния TStatusBar 408
Глава 26. Наборы закладок и блокноты
412
Набор закладок, TTabControl 413
Закладки TTabSet и TDockTabSet 416
Блокнот TPageControl 416
Страница блокнота TTabSheet 418
Глава 27. Работа с датой и временем
420
Отсчет времени, таймер TTimer 421
Компоненты-календари, базовый класс TCommonCalendar 422
Календарь TMonthCalendar 424
Выбор даты/времени, компонент TDateTimePicker 425
Глава 28. Диалоговые окна
427
Окна вывода сообщений 427
Окна выбора действия 428
Создание многоразового окна выбора действия 431
Окна ввода данных 431
Окна выбора файлов и папок 432
Компоненты-диалоги 433
Диалоги открытия и сохранения файлов 435
Универсальные диалоги TOpenDialog и TSaveDialog 435
Особенности графических диалогов TOpenPictureDialog и TSavePictureDialog 441
Особенности текстовых диалогов TOpenTextFileDialog и TSaveTextFileDialog 441
Диалоги поиска и замены текста 441
Выбор шрифта TFontDialog 445
Выбор цвета TColorDialog 446
Параметры страницы TPageSetupDialog 447
Настройка печати TPrinterSetupDialog 449
Отправка задания на печать TPrintDialog 450
Диалог управления задачей TTaskDialog 451
Глава 29. Технология естественного ввода
454
Описание жеста 454
Реакция элементов управления на жест 456
Пример обработки стандартных жестов 458
Компоненты поддержки естественного ввода 459
Менеджер жестов TGestureManager 459
Доступ к жестам и их сохранение 460
Просмотр жестов, TGestureListView и TGesturePreview 462
Область ввода жеста TGestureRecorder 462
Виртуальная клавиатура TTouchKeyboard 463
Глава 30. Управление графическим выводом
465
Получение сведений об устройствах видеовывода 465
Изменение настроек дисплея 468
Исследование текущего состояния устройства 470
Взаимодействие с экраном, класс TScreen 471
Информация о рабочем столе 472
Управление видом указателя мыши 472
Информация о шрифтах системы 472
Информация о формах проекта 473
Информация об устройствах видеовывода 474
Реакция на события 474
Взаимодействие с дисплеем, класс TMonitor 474
Глава 31. Холст TCanvas
476
Представление цвета 477
Кисть TBrush 479
Перо TPen 481
Шрифт TFont 484
Холст TCanvas в VCL 487
Закраска области 487
Градиентная заливка 488
Графические примитивы 489
Линии 490
Простейшие геометрические фигуры 491
Дуги 492
Сплайн Безье 492
Копирование части холста 494
Глава 32. Растровая и векторная графика
496
Абстрактный базовый класс TGraphic 497
Значок TIcon 499
Формат BMP, класс TBitmap 500
Формат JPEG, класс TJPEGImage 504
Формат GIF, класс TGifImage 506
Управление фреймами рисунка GIF 508
Оптимизация рисунка GIF 509
Обработка событий 511
Формат PNG, класс TPngImage 511
Векторная графика, метафайл TMetaFile 514
Холст метафайла TMetafileCanvas 515
Универсальный контейнер TPicture 516
Универсальный контейнер TWICImage 517
Коллекция изображений TImageList 518
Загрузка образов в контейнер 519
Особенности отображения значков 521
Прозрачность 522
Экспорт значков из контейнера 523
Глава 33. Сложные графические задачи
524
Растровые операции 524
Управление прозрачностью 527
Системы координат и режимы отображения 530
Перенос начала координат 531
Управление страничными координатами 532
Мировые координаты и аффинные преобразования 534
Глава 34. Управление печатью
539
Описание принтера в Delphi, класс TPrinter 540
Выбор принтера 540
Управление страницей документа 541
Формирование и отправка задания на печать 541
Отмена задания 542
Печать многострочного текста 543
Особенности печати изображений 544
Пример печати изображений 544
Окно предварительного просмотра 545
Отправка задания на печать 550
Часть III. VCL и Windows API
551
Глава 35. Реестр Windows
553
Класс TRegistryIniFile 554
Чтение из реестра 555
Запись в реестр 556
Удаление подраздела 557
Пример 557
Класс TRegistry 559
Создание и уничтожение экземпляра реестра 559
Работа с удаленным реестром 559
Доступ к разделам реестра 559
Чтение и запись значений в параметры 561
Получение информации о разделе 562
Получение сведений о параметре 563
Экспорт и импорт разделов реестра 563
Глава 36. Управление процессами
565
Создание процесса 566
Доступ к процессу 568
Приоритет процесса 569
Время выполнения процесса 570
Завершение процесса 571
Сбор информации о процессах Windows 572
Получение сведений о версии ОС 575
Глава 37. Многопоточные приложения
576
Поток TThread 576
Метод ожидания 580
Управление приоритетом потока 581
Время выполнения потока 582
Синхронный и асинхронный вызовы внешнего метода 582
Пример многопоточного приложения 582
Синхронизация потоков 586
Синхронизация событием TEvent 587
Критическая секция TCriticalSection 590
Мьютекс TMutex 590
Семафор TSemaphore 592
Глава 38. Взаимодействие процессов
594
Обмен данными через буфер обмена 594
Регистрация пользовательского формата буфера обмена 597
Обмен сообщениями 601
Поиск окна 602
Регистрация пользовательских сообщений 604
Пример обмена сообщениями между процессами 605
Файловое отображение 608
Глава 39. Сетевое взаимодействие
613
Почтовые слоты 613
Определение имени почтового слота 614
Управление почтовым слотом 615
Получение и отправка корреспонденции 615
Пример почтового приложения 616
Именованные каналы 619
Определение имени именованного канала 619
Создание именованного канала 620
Управление соединением с клиентом 622
Состояние канала 623
Подключение к каналу клиентского приложения 624
Разработка класса сервера именованного канала 625
Разработка класса клиента именованного канала 628
Сокеты 629
Классы сокетов в VCL 629
Общие черты сокетов, опорный класс TIPSocket 630
Отправка и получение данных 633
Сервер, компонент TTCPServer 634
Клиенты, компоненты TTCPClient и TUDPSocket 636
Пример приложения 636
Сокет-клиент 637
Сокет-сервер 638
Глава 40. Сервисы Windows
641
Менеджер управления сервисами 642
Управление сервисом 644
Состояние службы 646
Конфигурирование службы 647
Удаление службы 647
Сервис в VCL, класс TService 647
Идентификация 647
Тип сервиса 648
Определение прав на управление сервисом 648
Загрузка и запуск службы 648
Статус службы 649
Сбои при старте сервиса 650
Остановка и возобновление службы 650
Инсталляция и деинсталляция сервиса 651
Выполнение службы, поток TServiceThread 652
Ведение протокола службы 653
Приложение-сервис TServiceApplication 654
Пример 654
Регистрация сервиса в ручном режиме 657
Апплеты Панели управления 658
Апплет Панели управления, класс TAppletModule 659
Приложение Панели управления TAppletApplication 660
Пример апплета управления сервисом Windows 661
Приложение управления сервисом 661
Апплет Панели управления 662
Глава 41. Динамически подключаемые библиотеки
665
Создание проекта DLL 666
Объявление и экспорт функций в DLL 667
Соглашение о вызовах 667
Пример экспорта функций 668
Пример хранения форм в библиотеке 669
Вызов библиотеки из приложения 670
Неявное подключение DLL 671
Явное подключение DLL 673
Глава 42. Многокомпонентная модель COM
675
COM-объект 676
Понятие интерфейса 676
Базовый интерфейс IUnknown 678
Реализация интерфейса 679
Порядок вызова сервера COM 680
Интерфейс IClassFactory и библиотека COM 681
Реализация фабрики класса, класс TComObjectFactory 683
Реализация COM-объекта в Delphi 685
Класс TComObject 686
Класс TTypedComObject 686
Класс TComServer 687
Пример COM-проекта 688
COM-сервер 688
Помощник настройки COM-объекта 689
Шаблон кода с описанием класса 690
Библиотека типов 691
Главная форма сервера 696
Регистрация сервера 697
COM-клиент 698
Импорт библиотеки типов 698
Обращение к COM-объекту 700
Глава 43. Автоматизация
701
Интерфейс IDispatch 702
Диспинтерфейсы и дуальные интерфейсы 703
Контроллер автоматизации без применения библиотеки типов 703
Контроллер автоматизации с поддержкой библиотеки типов 705
Сервер автоматизации, базовый класс TAutoObject 708
Регистрация сервера автоматизации в таблице ROT 710
События автоматизации 711
Фабрика класса объекта автоматизации 714
Пример проекта автоматизации с поддержкой событий 714
Сервер автоматизации 715
Клиент автоматизации 722
Глава 44. Интерфейс IShellFolder
728
Идентификация объекта Shell 729
Диалоговое окно получения PIDL 729
Получение пути к системным папкам 731
Интерфейс IShellFolder 732
Получение PIDL из файлового пути 733
Получение интерфейса дочерней папки 733
Получение названия объекта по PIDL 734
Изменение названия объекта 735
Сбор дочерних объектов папки, интерфейс IEnumIDList 735
Атрибуты объекта 737
Сравнение объектов папки 738
Глава 45. DataSnap
739
Архитектура проекта DataSnap 740
Компоненты сервера 742
Сервер TDSServer 742
Обработка событий 742
Класс сервера TDSServerClass 745
Транспортные компоненты TDSTCPServerTransport и TDSHTTPService 746
Менеджер аутентификации TDSAuthenticationManager 748
Компоненты клиента 749
Соединение TSQLConnection 750
Проект DataSnap с использованием мастера 752
Подготовка клиентского приложения 756
Создание нового метода на сервере DataSnap 758
Доступ к новому методу из клиентского приложения 759
Проект DataSnap на основе пользовательского класса 760
Сервер 760
Клиент 762
Механизм обратного вызова 764
Глава 46. LiveBindings
767
Вводный пример LiveBindings 767
Класс TBindExpression 770
Выражение LiveBindings 772
Программная связь, класс TBindings 773
Часть IV. FireMonkey
777
Глава 47. Платформа FireMonkey
779
Опорный класс TFmxObject 779
Создание и уничтожение экземпляра класса 781
Сохранение объекта в памяти 781
Управление дочерними объектами 781
Сопоставление дополнительных данных 782
Элемент управления FMX — класс TControl 782
Размещение и выравнивание элемента управления 783
Выравнивание объекта 784
Масштабирование и вращение объекта 785
Видимость и прозрачность элемента управления 786
Обработка событий 786
Простейшие события — щелчок 786
Клавиатурные события 787
События мыши 787
События получения и утраты фокуса ввода 788
Событие изменения размера 788
События перетаскивания drag and drop 788
Особенности прорисовки элемента управления 790
Глава 48. Приложение FireMonkey
791
Выбор целевой платформы для проекта 791
Приложение FMX.Forms.TApplication 793
Общие черты форм HD и 3D 794
Форма HD FMX.Forms.TForm 795
Стили оформления формы, компонент TStyleBook 795
Трехмерная форма FMX.Forms.TForm3D 796
Пример 3D-проекта 798
Глава 49. Обзор компонентов для проектов HD
801
Панель-выноска TCalloutPanel 801
Разворачивающаяся панель TExpander 802
Компонент TArcDial 803
Компонент TNumberBox 803
Компонент TComboTrackBar 803
Компонент TPopupBox 804
Сетки TGrid и TStringGrid 805
Глава 50. Анимация
808
Анимация 808
Простой пример анимации 809
Общие черты компонентов-аниматоров, класс TAnimation 810
Индивидуальные особенности компонентов-аниматоров 812
Цветовая анимация, компонент TColorAnimation 813
Градиентная анимация, компонент TGradientAnimation 813
Анимированная картинка, компонент TBitmapAnimation 813
Анимированный ряд, компонент TBitmapListAnimation 813
Анимация числовых свойств, компонент TFloatAnimation 814
Анимация прямоугольной области, компонент TRectAnimation 814
Анимация траектории, компонент TPathAnimation 814
Управление графической производительностью 815
Приложения 817
Приложение 1. Математика, статистика и тригонометрия 819
Приложение 2. Работа со строками и символами 825
Системные настройки форматирования и класс TFormatSettings 829
Приложение 3. Работа с датой и временем 831
Представление даты и времени в текстовом формате 840
Приложение 4. Работа с памятью 843
Приложение 5. Управление ходом выполнения программы 845
Приложение 6. Работа с именами папок и файлов 846
Приложение 7. Модуль IOUtils 848
Приложение 8. Константы CSIDL 855
Приложение 9. Холст FMX.Types.TCanvas 859
Управление холстом 860
Кисть FMX.Types.TBrush 861
Внешний вид линий 862
Шрифт FMX.Types.TFont 863
Заливка замкнутых областей 863
Вывод простейших фигур 865
Вывод текста 865
Отображение рисунков 866
Отсечение 867
Сохранение и восстановление состояния холста 867
Приложение 10. Описание электронного архива 868
Предметный указатель 869