Pascal 7 & Objects

       

Pascal 7 & Objects

Введение
Что такое ObjectWindows?

Для чего предназначена ObjectWindows?
Что нужно знать
Как работать с данным руководством
О чем рассказывается в данном руководстве
Глава 1. Знакомство с Windows
Шаг 1: Создание базового приложения
Требования к приложению



Определение типа приложения
Инициализация основного окна
Объект основного окна
Что такое объект окна?
Описатели
Порождающие и дочерние окна
Создание нового типа окна
Реакция на сообщения
Завершение прикладной программы

Переопределение CanClose
Дальнейшее изменение закрытия
Глава 2. Заполнение окна
Шаг 2: Отображение текста в окне
Вывод в контексте дисплея
Что такое контекст дисплея?
Получение контекста дисплея
Использование контекста дисплея
Освобождение контекста дисплея
Координаты Windows

Параметры сообщений
Очистка окна
Шаг 3: Изображение линий в окне
Буксировка линии
Сообщения wm_MouseMove
Реакция на сообщения буксировки
Изображение точек и линий
Перехват "мыши"
Изменение размера пера
Отслеживание размера пера

Получение пера нового размера
Глава 3. Меню и диалоговые ресурсы

Шаг 4: Добавление строки меню
Ресурсы меню
Загрузка ресурса меню
Перехват сообщений меню
Определение методов реакции на команду
Связывание клавиш с командами
Реакция на команды меню
Добавление диалогового блока
Добавление поля объекта

Шаг 5: Добавление диалогового блока
Создание ресурсов диалогового блока
Идентификаторы управляющих элементов
Построение объекта диалогового блока
Выполнение диалогового блока
Режимные и безрежимные диалоговые блоки
Глава 4. Работа с диалоговым блоком
Шаг 6: Изменение атрибутов пера
Создание объекта пера
Создание сложного диалогового блока
Управляющие объекты

Использование интерфейсных объектов
Конструктор InitResource
Создание буфера передачи
Передача данных
Чтение возвращаемых значений
Вызов диалогового блока пера

Pascal 7 & Objects

Глава 5. Повторное отображение графики
Шаг 7: Вывод на экран графики
Изображение и рисование
Сохранение графики в объектах
Добавление поля объекта

Определение объекта линии
Изменение методов работы с "мышью"
Вывод сохраненной графики
Шаг 8: Сохранение рисунка в файле
Отслеживание состояния
Сохранение и загрузка файлов
Шаг 9: Печать графического образа
Построение объекта принтера
Создание объекта распечатки

Запись в контекст устройства
Создание распечатки окна
Вывод распечатки
Выбор другого принтера
Глава 6. Вывод всплывающего окна
Шаг 10: Добавление всплывающего окна
Добавление к окну дочернего окна
Построение окна палитры
Назначение порождающего окна
Создание элементов экрана
Вывод и сокрытие палитры

Шаг 11: добавление специализированных управляющих элементов
Добавление к палитре командных кнопок
Объекты управляющих элементов как поля
Работа с управляющими элементами
Сокрытие вместо закрытия
Разрешение специализированных управляющих элементов
Создание для командных кнопок графических изображений
Нумерация ресурсов графических изображений
Шаг 12: Создание специализированного управляющего элемента окна
Динамическое изменение размеров палитры

Реакция на события управляющих элементов
Имена методов реакции на сообщения управляющих элементов
Добавление "кнопок" палитры
Определение объекта палитры
Создание и уничтожение палитры
Размещение в порождающем окне
Добавление и удаление перьев
Отображение содержимого палитры
Выбор перьев с помощью "мыши"
Что дальше?

Многодокументальный интерфейс
Сглаживание линий
Отмена
Поведение палитры
Прокрутка
Глава 7. Иерархия ObjectWindows
Соглашения Windows
Имена объектов
Имена методов
Обзор объектов
Иерархия объектов

Файлы ObjectWindows
Файлы ресурсов
Файлы Windows 3.1
Взаимодействие с Windows
Функции API Windows
Вызов в ObjectWindows функций API
Доступ к функциям API
Константы Windows

Записи данных Windows
Комбинирование констант стилей
Типы функций Windows
Функции системного вызова

Pascal 7 & Objects

Глава 8. Объекты приложения
Минимальные требования
Поиск объекта приложения
Минимальное приложение
Методы Init, Run и Done
Конструктор Init
Метод Run

Деструктор Done
Инициализация приложения
Инициализация основного окна
Специальный вывод основного окна
Инициализация первого экземпляра
Инициализация каждого экземпляра
Выполнение приложений
Закрытие приложений
Модификация поведения при закрытии
Глава 9. Интерфейсные объекты
Для чего нужны интерфейсные объекты?

Что делают интерфейсные объекты?
Создание интерфейсных объектов
Допустимость описателя окна
Видимость на экране
Уничтожение интерфейсных объектов
Связь порождающего и дочернего объектов
Список дочерних окон
Построение дочерних окон
Создание дочерних элементов экрана
Уничтожение дочерних окон

Запрещение автоматического создания
Итерация дочерних окон
Поиск определенного дочернего окна
Глава 10. Объекты окон
Что такое объекты окон?
Окна, которые не являются окнами
Где найти объекты окон
Инициализация объектов окон
Установка атрибутов создания
Используемые по умолчанию атрибуты окна
Переопределение используемых по умолчанию атрибутов

Атрибуты порожденного окна
Создание элементов окна
Задание атрибутов регистрации
Классы окон
Используемые по умолчанию атрибуты регистрации
Регистрация нового класса
Изменение имени класса
Определение новых атрибутов регистрации
Использование специализированных окон

Использование окон редактирования
Использование файловых окон
Прокрутка содержимого окон
Что такое объект прокрутки?
Задание для окна объекта прокрутки
Пример прокрутки
Запрещение автоматической прокрутки
Отслеживание полос прокрутки
Модификация единиц прокрутки и диапазона

Изменение позиции прокрутки
Установка размеров страницы
Оптимизация методов Paint для прокрутки
Глава 11. Объекты диалоговых блоков
Использование объектов диалоговых блоков
Построение объекта
Вызов конструктора
Выполнение диалоговых блоков
Режимные и безрежимные диалоговые блоки
Выполнения режимных диалоговых блоков
Выполнение безрежимных диалоговых блоков

Работа с безрежимными диалоговыми блоками
Завершение диалогов
Работа с управляющими элементами
Взаимодействие с управляющим элементом
Пример связи
Ассоциирование объектов управляющих элементов
Использование диалоговых окон
Использование предопределенных диалоговых окон
Использование диалоговых блоков ввода

Файловые диалоговые блоки
Инициализация файлового диалогового блока
Выполнение файловых диалоговых блоков

Pascal 7 & Objects

Глава 12. Объекты управляющих элементов
Где можно использовать объекты управляющих элементов?
Что такое объекты управляющих элементов?
Построение и уничтожение объектов управляющих элементов
Построение объекта управляющего элемента
Вызов конструкторов объектов управляющих элементов
Присваивание полям объекта

Изменение атрибутов объекта управляющего элемента
Инициализация управляющего элемента
Сохранение управляющих элементов
Уничтожение управляющих элементов
Связь с управляющими элементами
Работа с управляющими элементами окна
Реакция на управляющие элементы
Действие, аналогичное диалоговому блоку
Использование конкретных управляющих элементов
Использование блока списка

Построение объектов блока списка
Модификация блоков списка
Реакция на блок списка
Пример программы: LBoxTest
Использование статических управляющих элементов
Построение статических управляющих элементов
Пример программы StatTest
Использование командных кнопок
Построение командных кнопок
Реакция на командные кнопки

Использование блоков выбора
Построение кнопок с зависимой и независимой фиксацией
Модификация блоков выбора
Опрос блоков выбора
Использование групповых блоков
Построение групповых блоков
Группирование управляющих элементов
Реакция на групповые блоки
Пример программы: BtnTest
Использование полос прокрутки

Построение полос прокрутки
Управление диапазоном полосы прокрутки
Управление параметрами полосы прокрутки
Опрос полосы прокрутки
Модификация полос прокрутки
Реакция на полосы прокрутки
Пример программы: SBarTest
Использование управляющих элементов редактирования
Построение управляющих элементов редактирования
Использование буфера вырезанного изображения и меню Edit

Опрос управляющих элементов редактирования
Модификация управляющих элементов редактирования
Пример программы: EditTest
Использование комбинированных блоков
Три типа комбинированных блоков
Выбор типа комбинированного блока
Построение комбинированных блоков
Модификация комбинированных блоков

Пример программы: CBoxTest
Установка значений управляющих элементов
Для чего используется буфер передачи?
Определение буфера передачи
Определение окна
Использование буфера передачи с диалоговым блоком
Использование буфера передачи с окном
Передача данных
Передача данных в окно
Передача данных из диалогового окна

Передача данных из окна
Поддержка передачи для специализированных управляющих элементов
Пример программы: TranTest
Использование специализированных управляющих элементов
Специализированные управляющие элементы Borland для Windows
Использование стандартных BWCC
Средства BWCC
Расширение BWCC
Создание ваших собственных специализированных управляющих элементов
Глава 13. Проверка допустимости данных

Три вида проверки допустимости данных
Фильтрация ввода
Проверка допустимости каждого поля
Проверка допустимости полных экранов
Использование механизма проверки допустимости данных
Построение объектов проверки допустимости
Добавление к управляющим элементам редактирования средств проверки допустимости
Как работает проверка допустимости
Методы объекта проверки допустимости
Проверка допустимости данных

Проверка полной строки
Проверка допустимости нажатий клавиш
Сообщение о недопустимых данных
Стандартные средства проверки допустимости
Абстрактный объект проверки допустимости
Фильтрация
Проверка диапазона
Проверка допустимости с просмотром
Просмотр строк
Проверка допустимости по шаблону

Pascal 7 & Objects

Глава 14. Объекты MDI

Меню дочернего окна
Дочерние окна MDI
Окна MDI в ObjectWindows
Построение приложения MDI
Построение рамки MDI
Создание меню дочерних окон
Создание дочерних окон MDI
Автоматические дочерние окна
Управление дочерним окном MDI
Настройка активизации дочернего окна

Обработка сообщений в приложении MDI
Пример приложения MDI
Глава 15. Объекты печати
Почему печать представляет трудности?
Печать в ObjectWindows
Построение объекта принтера
Создание распечатки
Печать документа
Задание параметров печати
Подсчет страниц
Печать каждой страницы

Указание оставшихся страниц
Другие соглашения по печати
Печать содержимое окна
Вывод распечатки на принтер
Выбор другого принтера
Выбор принтера пользователем
Назначение конкретного принтера
Глава 16. Сообщения Windows
Что такое сообщение?
Именующие сообщения
Откуда поступают сообщения

Обычная диспетчеризация сообщений
Способ, предлагаемый ObjectWindows
Динамические виртуальные методы
Написание методов реакции на сообщение
Что такое сообщение?
Поля параметров
Поле Result
Объектно-ориентированная обработка сообщения
Отмена поведения по умолчанию
Замена поведения по умолчанию

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

Передача сообщений
Передача и отправление сообщений
Передача сообщения
Отправление сообщения
Передача сообщения управляющему элементу
Диапазоны сообщений

Pascal 7 & Objects

Глава 17. Интерфейс с графическими устройствами
Запись на устройство вывода
Чем отличаются контексты устройства?
Управление контекстом дисплея
Работа с контекстом дисплея

Что содержится в контексте устройства?
Побитовая графика
Изобразительные средства
Цвет
Режимы отображения
Обрезание областей
Инструментальные средства рисования
Основные инструментальные средства
Логические инструментальные средства
Логические перья

Логические кисти
Логические шрифты
Использование изобразительных инструментальных средств
Отображение графики в окнах
Изображение окон
Стратегия графики
Рисование в окнах

Графические функции GDI
Функции изображения текста
Функции рисования линий
Изображение фигур
Использование палитр
Установка палитры
Рисование с палитрами
Запрос палитры
Модификация палитры
Реакция на изменения палитры
Глава 18. Более подробно о ресурсах

Создание ресурсов
Добавление ресурсов к выполняемой программе
Загрузка ресурсов в приложение
Загрузка меню
Загрузка оперативных клавиш
Загрузка блоков диалога
Загрузка курсоров и пиктограмм
Загрузка строковых ресурсов
Загрузка графических изображений

Использование побитовых отображений для создания кистей
Отображение графических изображений в меню

Pascal 7 & Objects

Глава 19. Наборы
Объекты наборов
Динамическая установка размеров наборов
Полиморфизм наборов
Проверка типа и наборы
Объединение в набор элементов, не являющихся объектами
Создание набора
Методы итератора
Итератор ForEach

Итераторы FirstThat и LastThat
Отсортированные наборы
Наборы строк
Пересмотренные итераторы
Полиморфические наборы
Наборы и управление памятью
Глава 20. Потоки
Вопрос: объектный ввод-вывод
Ответ: потоки

Полиморфизм потоков
Потоки обрабатывают объекты
Смысл использования потоков
Чтение из потока и запись в поток
Закрытие потока
Как сделать объекты потоковыми
Методы загрузки и хранения
Регистрация потока
Номера идентификаторов объектов
Автоматические поля

Регистрация на месте
Регистрация стандартных объектов
Механизм потока
Процесс Put
Процесс Get
Обработка указателей объектов со значением nil
Наборы в потоке: пример
Добавление методов Store
Регистрация записей
Регистрация

Запись в поток
Как все хранится?
Поля в потоке
Родство экземпляров окон
Копирование потока
Потоки произвольного доступа
Необъектные элементы потоков
Разработка пользователем собственных потоков
Обработка ошибок потока