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

 

 

 

 

 

 

Delphi.

х,·

 
Проrраммирование дnя

Windows, 05  iOS   и  Android

 

 

 

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

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


УДК ББК


004.4'2

32.973.26-018.1

0-74

 

ОсиповД.Л.

О-74          Delphi. Программирование для Windows, OS Х, IOS и Android. - СПб.: БХВ-Петербург, 2014. -464 с.: ил. -(Профессиональное программирование)

ISBN 978-5-9775-3289-1

Книга посвящена одному из самых совершенных языков программирования Delphi ХЕ5/ХЕ6. В ней подробно рассматривается новейшая кроссплатформенная библиотека FM, позволяющая создавать полнофункциональное программное обес­ печение для операционных систем Windows и OS Х, а также для смартфонов и планшетных компьютеров, работающих под управлением Android и IOS. Проекты примеров из книги размещены на сайте издательства.

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

 

УДКОО4.4'2 ББК 32.973.26-018.1

 

 

 

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


 


Главный редактор

Зам. главного редактора Зав.редакцией

Редактор Компьютерная верстка Корректор

Дизайн серии Оформление обложки


Екатерина Кондукова Игорь Шишигин Екатерина Капалыгина Анна Кузьмина

Ольги Сергиенко Зинаида Дмитриева Инны Тачиной Марины Дамбиевой


 

 

 

 

 

 


Подписано в печать 31.01.14.

Формат 70х1001/16. Печать офсетная. Усл. печ. л. 37,41.

Тираж 1000 экз. Заказ 65

"БХВ-Петербург", 191036, Санкт-Петербург, Гончарная ул., 20.

Первая Академическая типография "Наука" 199034, Санкт-Петербург, 9 линия, 12/28

 

 

 

 

 

ISBN 978-5-9775-3289-1                                                              © Осипов Д. Л., 2014

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

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 


Оглавление

 

Введение.................................................................................................................. 13

Глава 1. Подготовка к работе................................................................................ 15

Выбор типа приложения.............................................................................................................................. 17

Выбор целевой платформы для проекта.................................................................................................. 18

Выпуск приложения для OS Х..................................,............................................................................... 19

Выпуск приложения для iOS MoЬile........................................................................................................ 22

Выпуск приложения для Android............................................................................................................... 23

Что делать, когда код зависит от платформы?....................................................................................... 27

Глава 2. Забываем VCL?........................................................................................ 30

Опорный класс VCL -  TObject................................................................................................................. 30

Управление жизненным циклом объекта....................................................................................... 32

Механизм учета ссылок в мобильных проектах........................................................................... 34

Информирование о классе.................................................................................................................. 35

Класс TPersistent............................................................................................................................................. 37

Основа компонента TComponent................................................................................................................ 38

Владение объектами............................................................................................................................. 39

Глава 3. Классы-шаблоны...._................................................................................ 41

Обобщенный тип данных в полях записей............................................................................................. 41

Обобщения в процедурах и функциях...................................................................................................... 43

Обобщенные типы данных в шаблонах классов................................................................................... 44

Наследование шаблона класса.......................................................................................................... 46

Перегрузка методов с параметром обобщенного типа............................................................... 47

Шаблон массива, класс ТArray<>............................................................................................................. 47

Шаблон списка объектов, класс TObjectList<>...................................................................................... 49

Шаблон словаря TDictionary<>.................................................................................................................. 53

Глава 4. Базовые классы FireMonkey.................................................................... 56

Опорный класс TFmxObject......................................................................................................................... 56

Управление дочерними объектами................................................................................................... 57

Сопоставление дополнительных данных........................................................................................ 60

Поддержка LiveBindings..............................................._...................................................................... 61


Поддержка анимации........................................................................................................................... 61

Поддержка сенсорного ввода............................................................................................................ 61

Взаимодействие с командами............................................................................................................ 61

2D-элементы управления, класс TControl............................................................................................... 62

Размещение 2D-элемента управления............................................................................................. 63

Выравнивание объекта.............................................................................................................. 64

Группировка объектов и компонент TLayout...................................................................... 65

Масштабирование и вращение объекта.......................................................................................... 66

Видимость и прозрачность элемента управления........................................................................ 68

Грани, фаски и визуальные эффекты............................................................................................... 68

Состояние элемента управления...........................................,.......................................................... 70

Обработка событий.............................................................................................................................. 70

Простейшие события -  щелчок............................................................................................ 70

Клавиатурные события.............................................................................................................. 73

События мыши............................................................................................................................ 74

События получения·и потери фокуса ввода........................................................................ 77

Событие изменения размера.................................................................................................... 77

События перетаскивания drag and drop..........,..................................................................... 79

Особенности прорисовки элемента управления........................................................................... 82

Стилевое оформление, класс TSty/edControl........................................................................................... 83

3D-элементы управления, класс TControlЗD ....................................•.................................................. 83

Размеры объекта.................................................................................................................................... 84

Повороты объекта................................................................................................................................. 84

3D-события мыши................................................................................................................................ 85

Глава 5. Приложение FireMonkey.......................................................................... 88

Приложение ТApp/ication .....................................................................................,................................... 88

Значок приложения............................................................................................................................... 89

Название приложения........................................................................................................................... 89

Расположение исполняемого файла приложения......................................................................... 91

События приложения........................................................................................................................... 91

Контроль активности пользователя.................................................................................................. 93

Характеристики дисплея, класс TFormFactor................................................................................ 94

Формы HD и 3D.."......................................................................................................................................... 95

Описание формы в fi:nх-файле.......................................................................................................... 96

Общие черты форм ................................:··················................................................................... 98

Создание, отображение и уничтожение форм.................................................................... 98

Состояние формы..................................................................................................................... 102

Жизненный цикл формы........................................................................................................ 103

Доступ к элементу управления по его координатам.................................................................. 106

Совмещение форм для разных мобильных устройств в одном приложении..................... 106

Качество графического вывода...................................................................................................... 107

Форма HD FМX.Forms. TForm......................................................................................................... 108

Трехмерная форма FМX.FormsЗD.TFormЗD................................................................................ 108

Пример 3D-проекта.................................................................................................................. 110

Совместное применение 2D- и 3D-компонентов.............................................................. 113

Стили оформления формы, компонент TStyleBook............................................................................ 114

Подключение ресурсов и изображений................................................................................................. 115


Глава 6. Меню приложения.................................................................................. 118

Элемент меню TMenultem.......................................................................................................................... 120

Элемент меню в виде флажка.......................................................................................................... 121

Группировка элементов меню......................................................................................................... 122

Доступ к дочерним элементам меню............................................................................................. 124

Главное меню TMainMenu......................................................................................................................... 124

Планка меню TMenuBar............................................................................................................................. 124

Контекстное меню ТРорирМепи............................................................................................................... 124

Глава 7. Командный интерфейс........................................................................... 126

Команда TAction.......................................................................................................................................... 127

Связь с элементом управления........................................................................................................ 129

Выполнение команды........................................................................................................................ 130

Установка команды в актуальное состояние............................................................................... 130

Связь команды с контейнером......................................................................................................... 131

Предопределенные команды............................................................................................................ 131

Список команд TActionList........................................................................................................................ 133

Глава 8. Управление папками и файлами.......................................................... 135

Работа с дисками......................................................................................................................................... 135

Сбор сведений о каталогах и файлах...................................................................................................... 136

Проверка существования файла и, каталога.......................................................................................... 137

Расположение системных каталогов....................................................................................................... 137

Создание, удаление, копирование и,перемещение.............................................................................. 138

Запись в файл и чтение из файла............................................................................................................. 139

Атрибуты файла и каталога....................................................................................................................... 140

Дата и время создания файла и каталога............................................................................................... 141

Глава 9. Компоненты для работь1 с текстом....................................................... 142

Класс ПextControl........................................................................................................................................ 143

Метка TLabel ................................................................................,............................................................ 144

Интерфейс IVirtua/KeyboardControl......................................................................................................... 146

Основа строк ввода, класс TCustomEdit................................................................................................. 146

Ограничения на ввод.......................................................................................................................... 148

Выделение части текста.................................................................................................................... 148

Взаимодействие с буфером обмена................................................................................................ 150

Управляющие символы..................................................................................................................... 150

Особенности оформления................................................................................................................. 151

Строки ввода TEdit и TClearingEdit........................................................................................................ 152

Многострочный редактор ТМето........................................................................................................... 153

Позиция каретки································································································· 154

Редактирование текста ,.................................................................................................................... 154

Быстрое перемещение по тексту.................................................................................................... 155

Ввод чисел TNumberBox, TSpinBox и TComboTrackBar..................................................................... 156

Глава 10. Компоненты-списки............................................................................. 158

Базовый элемент списка TListBoxltem..................................................................................................... 159

Список выбора TListBox............................................................................................................................. 161

Редактирование элементов............................................................................................................... 162

Доступ к выделенному элементу списка...................................................................................... 164


Дос1УП к произвольному элементу списка.................................................................................. 165

Выбор нескольких элементов.......................................................................................................... 165

Представление элементов в виде кнопки выбора....................................................................... 166

Перестановка элементов................................................................................................................... 166

Сортировка элементов....................................................................................................................... 166

Текстовый поиск, элемент TSearchBox.......................................................................................... 167

Особенности оформления списка................................................................................................... 168

Основные события списка................................................................................................................ 169

Нередактируемый комбинированный список ТСотЬоВох............................................................... 169

Редактируемый комбинированный список TComboEdit.................................................................... 172

Компонент выбора значения ТРорирВох.............................................................................................. 174

Глава 11. Иерархическая структура.................................................................... 175

Узел дерева ТТreeView/tem......................................................................................................................... 176

Управление дочерними узлами....................................................................................................... 176

Положение узла в дереве.................................................................................................................. 178

Состояние узла.................................................................................................................................... 179

Дерево ТТrееView......................................................................................................................................... 179

Выделение узла................................................................................................................................... 179

Доступ к узлу....................................................................................................................................... 180

Управление составом узлов............................................................................................................. 180

Узел в роли флажка............................................................................................................................ 183

Свертывание и развертывание узлов............................................................................................. 183

Упорядочивание узлов дерева........................................................................................................ 184

Глава 12. Сетки..................................................................................................... 185

Колонки сетки.............................................................................................................................................. 185

Сетка TGrid................................................................................................................................................... 187

Сетка TStringGrid......................................................................................................................................... 188

Пример обслуживания текстовых данных............................................................................................ 188

Глава 13. Окна сообщений и диалоrи.................................................................. 192

Окна сообщений........................................................................................................................................... 192

Окна выбора действия................................................................................................................................ 194

Окна ввода данных...................................................................................................................................... 196

Компоненты-диалоги................................................................................................................................... 197

Открытие и сохранение файлов TOpenDialog и TSaveDialog................................................. 197

Параметры страницы TPageSetupDialog....................................................................................... 202

Настройка печати TPrinterSetupDialog........................................................................................... 203

Отправка задания на печать TPrintDia/og.................................................................................... 203

Глава 14. Дата и время......................................................................................... 206

Дата и время TDateTime............................................................................................................................. 206

Интервал времени ТТiтеSрап.................................................................................................................. 207

Отсчет времени, таймер ТТiтеr............................................................................................................... 208

Календари TCalendar и TCalendarEdit................................................................................................... 209

Глава 15. Управление цветом.............................................................................. 212

Представление цвета ARGB..................................................................................................................... 212

Стандартные цветовые комбинации....................................................................................................... 214


Компоненты цветовой модели ARGB.................................................................................................... 215

Компоненты цветовой модели HSL....................................................................................................... 216

Компоненты TColorPicker и TColorQuad...................................................................................... 216

Цветовые полосы THueTrackВar, TAlphaTrackВar и TBWТrackBar............................................... 217

Градиентная заливка TGradientEdit......................................................................................................... 219

Глава 16. Двухмерная rрафика............................................................................ 222

Управление холстом................................................................................................................................... 223

Кисть TBrush................................................................................................................................................. 224

Внешний вид линий.................................................................................................................................... 226

Шрифт TFont................................................................................................................................................ 227

Заливка замкнутых областей.................................................................................................................... 228

Вывод простейших фигур......................................................................................................................... 229

Траектория TPathData....................................................................................................................... 230

Вывод текста................................................................................................................................................. 232

Отображение рисунков.............................................................................................................................. 233

Отсечение....................................................................................................................................................... 234

Сохранение и восстановление состояния холста................................................................................ 234

Работа с растровой графикой, класс TВitmap...................................................................................... 235

Загрузка и сохранение изображения.............................................................................................. 235

Кодирование и декодирование графических форматов............................................................ 236

Получение миниатюры изображения............................................................................................. 236

Свойства изображения....................................................................................................................... 237

Простые манипуляции графическим образом............................................................................. 237

Редактирование битового образа.................................................................................................... 238

Управление графической производительностью................................................................................. 239

Глава 17. Графические эффекты......................................................................... 240

Применение эффекта к файлам изображений...................................................................................... 242

Применение нескольких эффектов к файлам изображений............................................................. 243

Простейшие корректирующие эффекты................................................................................................ 246

Заливка цветом TFillEjfect и TFillRGBE.ffect............................................................................... 246

Яркость и контрастность TContrastEjfect..................................................................................... 246

Регулировка опенка цвета THueAdjustE.ffect.............................................................................. 247

ЯснаяТВlоотЕjfесt и пасмурная TGloomEjfect погода............................................................. 247

Прозрачность TColorKeyAlphaEjfect............................................................................................... 247

Эффекты размытия и искажения·........................................................................................................... 248

Размытие................................................................................................................................................ 248

Искажения............................................................................................................................................. 249

Вертикальные полосы TBandsE.ffect.................................................................................... 249

Водоворот TSwirlEjfect и TBandedSwirlEjfect..................................................................... 250

Увеличительное стекло TMagnifyE.ffect и TSmoothMagnifyEjfect.................................. 251

Стягивание области TPinchEjfect.......................................................................................... 252

Рябь на воде TRippleEjfect....................................................................................................... 253

Волны TWaveEjfect................................................................................................................... 254

Горизонтальная деформация краев текстуры TWrapE.ffect........................................... 254

Аддитивные эффекты................................................................................................................................. 254

Отражение TReflectionEjfect.............................................................................................................. 254

Эффекты свечения TGlowE.ffect и