Иллюстрированный самоучитель по Kylix

       

Общий обзор языка


Общий обзор языка
Типы данных
Интерфейсы
Листинг 10 1 Объявление интерфейса
Листинг 10 2 Объявление класса содержащего интерфейс
Интерфейс IUnknown

Листинг 10 3 Описание базового интерфейса IUnknown
Класс TlnterfacedObject
Листинг 10 4 Определение класса TInterfacedObject
Использование оператора as
Использование ключевого слова implements
Листинг 10 5 Использование ключевого слова implements
Графический интерфейс пользователя
Создание SDI и MDIприложений
Рисунок 10 1 Диалоговое окно New Items
Рисунок 10 2 Вкладка Projects

Рисунок 10 3 Главная форма MDIприложения
Рисунок 10 4 Три расположенных рядом дочерних окна внутри главной формы
Листинг 10 6 Код автоматически создаваемой для MDIприложения
Консольные приложения
Рисунок 10 5 Пиктограмма Console Application
Листинг 10 7 Заготовка для консольного приложения
Алфавит и словарь языка
Структура программы
Комментарии
Операторы
Директивы компилятора

Работа с сокетами
Листинг 11 1 Список сетевых услуг содержащийся в файле services
Создание справочной
Системы
Листинги всех трех файлов приводятся в конце книги в Приложении 2
Работа с графикой
В Kylix
Обновление экрана
Рисунок 13 1 Форма приложения
Листинг 13 1 Код обработки события OnPaint
Листинг 13 2 Код обработки события OnClick
Рисунок 13 2 Информационное окно извещающее об обновлении формы
Типы графических объектов

Таблица 13 1 Типы графических объектов Kylix
Таблица 13 2 Свойства объекта Canvas
Таблица 13 3 Методы объекта Canvas
Таблица 13 3 (продолжение)
Таблица 13 3 (продолжение)
Таблица 13 3 (окончание)
Использование пера
Листинг 13 3 Установка значения цвета пера
Листинг 13 4 Установка ширины пера
Листинг 13 5 Смена стилей пера
Использование кисти
Листинг 13 6 Установка цвета кисти

Листинг 13 7 Установка стииля кисти
Листинг 13 8 Загрузка графического образа из файла
Использование методов объекта Canvas
Листинг 13 9 Пример рисования прямых линий procedure TForm1 FormPaint(Sender TObject); begin
Рисунок 13 3 Форма с диагональными линиями
Рисунок 13 4 Ломаная линия
Листинг 13 10 Построение ломанной линии
Листинг 13 11 Прямоугольник со вписанным эллипсом
Рисунок 13 5 Эллипс вписанный в прямоугольник
Листинг 13 12 Прямоугольник со скругленными углами procedure TForm1 FormPaint{Sender TObject); begin
Рисунок 13 6 Прямоугольник со скругленными углами
Создание приложения наподобие графического редактора
Листинг 13 13 Объявление типа и переменных

Листинг 13 14 Обработчики нажатия кнопок
Листинг 13 15 Обработчик события OnMouseup
Листинг 13 16 Обработчик события OnMouseMove
Другие методы работы с графикой в Куliх
Листинг 13 17 Создание объекта Bitmap
Листинг 13 18 Прямая работа с Bitmap
Загрузка и сохранение графических файлов
Листинг 13 29 Загрузка графики из файла
Листинг 13 20 Сохранение графики в файл
Работа с буфером обмена
Листинг 13 21 Копирование графики в буфер обмена
Листинг 13 22 Вырезание графики в буфер обмена

Листинг 13 23 Копирование графики
Работа с мышью
Таблица 13 4 События мыши
Таблица 13 4 (окончание)
Таблица 13 5 Параметры событий мыши
Рисунок 13 7 Обработка события OnMouseDown
Листинг 13 26 Установка позиции пера в координатах указаннных пользователем
Листинг 13 27 Пример рисования линии
Рисунок 13 8 Пример рисования линий
Листинг 13 28 Пример обработки
Рисунок 13 9 Обработка события OnMouseMove
Создание простой игровой программы
Рисунок 13 10 Формазаготовка для игровой программы

Листинг 13 29 Листинг игровой программы "Крестикинолики"
Рисунок 13 11 Поле для игры
Рисунок 13 12 Программа в процессе работы
Процессы и потоки
Общий обзор потоков
Листинг 14 1 Объект TThred
Рисунок 14 1 Добавление объекта потока в проект с помощью диалогового окна New Items
Листинг 14 2 Заготовка для ноиого объукта потока
Инициализация потоков
Таблица 14 1 Значения свойства Policy
Таблица 14 2 Значения свойства Priority для Windows
Листинг 14 3 Проверка прекращения работы потока

Рисунок 14 2 Форма приложения
Листинг 14 4 Модуль первого потока
Листинг 14 5 Модуль второго потока
Листинг 14 6 Главный модуль многопоточного приложения
Рисунок 14 3 Результат работы многопоточного приложения
Использование главного CLXпотока
Листинг 14 7 Использование синхронизации
Координация потоков
Листинг 14 8 Объявление локальных переменных в потоке класса TThread
Основы баз данных
Рисунок 15 1 Основные типы баз данных
Архитектура баз данных
Рисунок 15 2 Схема приложения базы данных
Таблицы баз данных

Рисунок 15 3 Структура таблицы базы данных
Таблица может содержать разнотипные
Средства для работы с базами данных
Листинг 15 1 Модуль Ffactlin
Рисунок 15 4 Форма приложения базы данных
Рисунок 15 5 Приложение в работе
Компоненты для работы с базами данных
Таблица 16 1 Свойства компонента TDataSource
Таблица 16 2 Свойства компонента TClientDataSet
Таблица 16 2 (окончание)
Таблица 16 3 Свойства компонента TDataSetProvider
Вкладка dbExpress
Таблица 16 4 Свойства компонента TSQLConnection
Таблица 16 4 (окончание)

Таблица 16 5 Свойства компонента TSQLDataSet
Таблица 16 6 Свойства компонента TSQLQuery
Таблица 16 7 Свойства компонента TSQLStoredProc
Таблица 16 7 (окончание)
Таблица 16 8 Свойства компонента TSQLTable
Таблица 16 9 Свойства компонента TSQLMonitor
Таблица 16 10 Свойства компонента TSQLClientDataSet
Таблица 16 10 (продолжение)
Таблица 16 10 (окончание)

Вкладка Data Controls
Основы языка SQL
Таблица 17 1 Основные операторы определения данных
Таблица 17 2 Основные операторы управления данными
Таблица 17 3 Основные операторы манипулирования данными
Функции языка SQL
Таблица 17 4 Основные статистические функции
Таблица 17 5 Основные строковые функции
Таблица 17 5 (окончание)

Иллюстрированный самоучитель по Kylix

Примеры создания приложений баз данных
Окно New Items
Пиктограмма Data Module окна New Items
Компонент Clients в окне модуля данных
Диалоговое окно добавления новых полей Добавим определения полей представленные в табл 18 1
Таблица 18 1 Определения полей

Установка свойств поля ID в окне Object Inspector
Установка свойств поля Name в окне Object Inspector
Поля ID и Name
Диалоговое окно сохранения файла таблицы
Поля компонента Clients
Модуль данных
Листинг 18 1 Содержание типичного файла базы данных
Таблица 18 2 Поля определяемые в свойстве ChlidDefs
Листинг 18 2 Содержимое файла базы данных
Введение в создание компонентов

Выбор предка компонента
Таблица 19 1 Базовые классы CLX
Таблица 19 1 (окончание)
Создание заготовки компонента
Окно эксперта компонентов
Заполненное окно эксперта компонентов
Листинг 19 1 Модуль заготовки нового класса
Статические методы
Виртуальные методы
Динамические методы

Замещенные методы
Абстрактные методы
Построение компонентов
Листинг 19 2 Пример создания свойств нового компонента
Листинг 19 3 Создание свойств перечиляемого типа
Перечисляемое свойство MyEnumProp в новом компоненте TMyButton
Листинг 19 4 Создание свойствамножества unit QMyButton;
Свойствомножество MyOptions в новом компоненте TMyButton
Листинг 19 5 Создание потомка TPersistenttype
Листинг 19 6 Добавление свойстваобъекта в компонент TMyButtontype

Листинг 19 7 Полный листинг для нового компонента
Свойствообъект MyObject в новом компоненте TMyButton
Листинг 19 8 Пример компонента TWeek
Результат работы компонента TWeek
Листинг 19 9 Определение базового
Листинг 19 10 показывает как создать
Листинг 19 10 Создание нового редактора свойств
Листинг 19 11 Процедура регистрации нового редактора свойствprocedure Register; begin
Создание событий компонента
Листинг 19 12 Метод диспетчеризации события TControl = class (TComponent) private

Листинг 19 13 Пример обработки события нажатия кнопки мыши
Наглядно демонстрирует результат работы вышеприведенной программы
Результат обработки события OnMouseDown
Листинг 19 14 Пример создания нового события unit halfmin; interface
Листинг 19 15 Обработчик нового события procedure TForm1 HalfMinutelHalfMinute(Sender TObject;
Создание методов компонента
Таблица 19 2 Размещение методов компонента в различных секциях
Регистрация компонента в среде Kylix
Результат регистрации компонента
Пакеты компонентов

Для чего используются пакеты
Таблица 20 1 Типы файлов пакетов
Использование пакетов в приложениях
Вкладка Packages диалогового окна Project Options
Окно добавления пакета в проект
Динамическая загрузка пакетов
Таблица 20 2 Основные runtime пакеты Kylix
Таблица 20 3 Основные designtime пакеты Kylix
Установка пакетов компонентов
Окно просмотра компонентов входящих в пакет

Создание и редактирование пакетов
Пиктограмма Package диалогового окна New Items
Редактор пакета
Вкладка Add Unit диалогового окна Add
Диалоговое окно Add
Диалоговое окно Project Options
Структура пакета
Компиляция пакета
Таблица 20 4 Директивы компилятора пакетов
Использование компилятора командной строки

Таблица 20 5 Ключи для компиляции пакета из командной строки
Простые типы данных
Таблица 2 1 Целочисленные типы данных
Таблица 2 2 Вещественные типы данных
Таблица 2 3 Отличия результатов операций над логическими типами
Таблица 2 3 (окончание)
Структурные типы данных
Таблица 2 4 Строковые типы данных
Таблица 2 5 Операции допустимые над множествами
Таблица 2 5 (окончание)

Одномерный массив на десять переменных
Двумерный массив А на двадцать элементов Задание статического двумерного массива
Листинг 2 1 Использование вариантной записи
Указатели процедурные и вариантные типы данных
Листинг 2 2 Пример использований указателей
Листинг 2 3 Описание процедурных указателей
Листинг 2 4 Использование данных вариантного типа
Проблемы переноса приложений
Перенос Windowsприложений в cреду Linux
Листинг 21 1 Использование директивы $IFDEF

CLX как версия VCL
Таблица 21 1 Части в которые сгруппированы компоненты CLX
Отличия CLX от VCL
Команды компоненты и другие элементы перенос которых невозможен
Таблица 21 2 Различие возможностей Delphi и Kytix
Совместимости модулей Kylix и Delphi
Таблица 21 3 Совместимые модули Delphi и Kylix
Таблица 21 3 (окончание)
Таблица 21 4 Модули VCL не поддерживаемые средой Kylix
Таблица 21 4 (окончание)

Непереносимые возможности
Совместное использование файлов ресурсов Linux и Windows
Различие сред Linux и Windows
Таблица 21 5 Отличия Linux и Windows
Таблица 21 5 (продолжение)
Таблица 21 5 (окончание)
Написание переносимого кода
Листинг 21 2 Код для среды Windows
Листинг 21 3 Платформонезависимый код
Использование специальных директив

Листинг 21 4 Неправильная работа директивы $IFDEF
Вывод сообщений
Перенос кода ассемблера в Linux
Сообщения и системные события
Таблица 21 6 Методы для подмены системных сообщений Windows
Переносимые приложения баз данных
Таблица 21 7 Соответствие компонентов доступа к данным
Листинг 21 5 Обработчик события
Кроссплатформенные Интернетприложения
Выражения и операторы

Арифметические выражения
Таблица 3 1 Арифметические операции над двумя операндами
Таблица 3 2 Арифметические операции над одним операндом
Листинг 3 1 Примеры использования арифметических операций
Таблица 3 3 Поразрядные арифметические операции
Таблица 3 4 Результаты выполнения поразрядных арифметических операций
Таблица 3 4 (окончание)
Листинг 3 2 Примеры использования побитовых операций
Таблица 3 5 Логические операции языка Object Pascal
Таблица 3 5 (окончание)

Таблица 3 6 Результаты выполнения логических операций
Простые операторы
Листинг 3 3 Пример работы с оператором with
Структурированные операторы
Листинг 3 4 Пример использования оператора case
Листинг 3 5 Пример использования оператора условия
Листинг 3 6 Примеры циклов с параметрами
Листинг 3 7 Пример цикла с предусловием
Листинг 3 8 Пример цикла с постусловием
Подпрограммы и модули

Функции
Листинг 4 1 Описание функции Mах
Процедуры
Листинг 4 2 Описание процедуры NumString

Иллюстрированный самоучитель по Kylix

Параметры и аргументы
Модули
Форма приложения
Модуль Unitl pas
Объекты и классы

Классы
Поля
Свойства
Листинг 5 1 Описание свойств объекта
События
Методы
Информация о типе во времени выполнения
Таблица 5 1 Методы для работы с RTTI
Интегрированная среда разработки Kylix
Таблица 6 1 Возможности Kylix

Таблица 6 1 (окончание)
Главное окно Kylix
Окно настройки
Вкладка Commands
Вкладка Options
Инспектор объектов
Свойства сгруппированные по категориям
Вкладка Events
Окно свойств редактора
Обозначения окна проводника

Окно Environment Options
Библиотека классов Kylix
Свойства события и методы компонентов
Области видимости объектов (компонентов)
Листинг 7 1 Область видимости объекта Form1
Иерархия классов CLX
Иерархия классов Kylix
Палитра компонентов Kylix
Вкладка Standart
Таблица 8 1 Компоненты вкладки Standard

Таблица 8 1 (продолжение)
Таблица 8 1 (окончание)
Вкладка Additional Эта вкладка содержит компоненты (слева направо) перечисленные в табл 8 2
Таблица 8 2 Компоненты вкладки Additional
Таблица 8 2 (окончание)
Таблица со строками
Таблица
Вкладка Common Controls
Таблица 8 3 Компоненты вкладки Common Controls
Таблица 8 3 (окончание)

Вкладка Dialogs
Таблица 8 4 Компоненты вкладки Dialogs
Таблица 8 4 (окончание)
Вкладка Data Access
Таблица 8 5 Компоненты вкладки Data Access
Таблица 8 5 (окончание)
Вкладка dbExpress
Таблица 8 6 Компоненты вкладки dbExpress
Таблица базы данных dbExpress
Таблица 8 6 (окончание)

Вкладка Data Controls
Таблица 8 7 Компоненты вкладки Data Controls
Таблица 8 7 (окончание)
Вкладка Internet
Таблица 8 8 Компоненты вкладки Internet
Таблица 8 8 (окончание)
Вкладка Indy Clients
Таблица 8 9 Компоненты вкладки Indy Clients
Таблица 8 9 (продолжение)
Таблица 8 9 (окончание)

Вкладка Indy Servers
Таблица 8 10 Компоненты вкладки Indy Servers
Таблица 8 10 (продолжение)
Таблица 8 10 (окончание)
Вкладка Indy MiscКомпоненты этой вкладки описываются в табл 8 11
Таблица 8 11 Компоненты вкладки Indy Misc
Таблица 8 11 (продолжение)
Таблица 8 11 (окончание)
Свойства события и методы основных компонентов Kylix
Таблица 8 12 Типы свойств компонентов Kylix

Таблица 8 12 (окончание)
Применение свойства Align
Таблица 8 13 Константы цвета в среде Kylix
Таблица 8 13 (продолжение)
Таблица 8 13 (продолжение)
Таблица 8 13 (окончание)
Таблица 8 14 Флаги значения свойства ControlState
Таблица 8 14 (окончание)
Таблица 8 15 Флаги значения свойства ControlStyle
Таблица 8 15 (окончание)

Таблица 8 16 Указатели мыши
Таблица 8 17 Флаги TScalingFlagФлаг
Координаты точек задаваемых при вызове метода Arc
Фигуры получаемые после вызова метода Chord
Листинг 8 1 Освобождение ресурсов графической подсистемы
Результат выполнения метода Pie
Схема обработки события
Пример применения событий OnDragDrop и OnDragOver
Листинг 8 2 Обработка события OnDragOver
Листинг 8 3 Код обработки OnDragOver

Листинг 8 4 Oбработчик события OnEndDrag
Окно выдаваемое при успешном перетаскивании строки из ListBox1 в ListBox2
Окно выдаваемое при неудачном перетаскивании строки из ListBox1 в ListBox2
Пример иллюстрирующий работу событий OnEnter и OnExit
Таблица 8 19 Коды клавиш
Таблица 8 19 (продолжение)
Таблица 8 19 (окончание)
Листинг 9 3 Обработка деления на ноль
Окно сообщения
Листинг 9 4 Использование временного имени объекта ислючения

Окно сообщения об исключении
Таблица 9 1 Коды ошибок ввода/вывода
Защита ресурсов
И регенерация исключений
Листинг 9 5 Регенерация исключения
Листинг 9 6 Вызов метода HandleException
Листинг 9 7 Конструкция try finally
Вложенные блоки в обработчике исключений (а) и в конструкции защиты кода (б)
Форма с пустым списком
Листинг 9 8 Генерация молчаливого исключения

Результат выполнения программы генерации молчаливого исключения
Результат многократного нажатия кнопки Button1
Генерация исключений
Листинг модуля справочных систем CLX и VCL
Листинги модулей для создания системы
Помощи
Листинг П2 1 Модуль WinHelpViewer pas
Листинг П2 2 Модуль ManViewer pas
Файловая система Linux
Таблица П1 Основные каталоги Linux

Таблица П1 (окончание)
Введение

Содержание раздела