Delphi 3: библиотека программиста
Авторы: Д. Тейлор, Дж. Мишель, Дж. Пенман
(c) Издательство "Питер", 1998

Краткое содержание
Предисловие
Глава 1. 32-разрядные консольные
приложения
Глава 2. 32-разрядные DLL в Delphi - когда,
зачем и как
Глава 3. Перетаскивание: как это
делается в Windows
Глава 4. Перетаскивание: как это
делается в OLE
Глава 5. Компонент Winsock в Delphi
Глава 6. CsShopper: FTP-клиент
Глава 7. FTP-сервер
Глава 8. Трехмерные фрактальные
ландшафты
Глава 9. Проблемы TPersistent и несколько
полезных советов
Глава 10. Модели, виды и фреймы
Глава 11. Таинственный модуль Math
Глава 12. Динамический
пользовательский интерфейс
Глава 13. Иерархические структуры в
реляционных базах данных
Глава 14. Пропавший оракул
Глава 15. Улика, найденная в грязи
Глава 16. Возвращение оракула
Глава 17. Нестареющая проблема
Содержание
От редактора перевода
Предисловие
- Глава 1. 32-разрядные консольные
приложения
- Консольные приложения
- Фильтры
- Консольные приложения на Delphi
- Hello, Delphi
- Сохранение шаблона программы
- Консольный ввод/вывод
- Программа-фильтр на Delphi
- Базовая программа-фильтр
- Обработка командной строки
- Параметры командной строки
- Универсальный анализатор
командных строк
- Тестирование модуля CmdLine
- Несколько слов о структуре
программы
- Файловые операции чтения/записи
- Использование шаблона Filter
- Критика
- Глава 2. 32-разрядные DLL в Delphi -
когда, зачем и как
- Что такое DLL и зачем они нужны?
- Как это сделать?
- Создание DLL
- Вызов функций DLL
- Присоединение DLL на стадии
выполнения
- Где Windows ищет DLL
- DLL: недостатки и предостережения
- Создание форм в DLL
- Гибкое кодирование
- Создание текстового редактора
- Совместное использование памяти в
приложениях
- Переменная DLLProc
- Продолжаем!
- Глава 3. Перетаскивание: как это
делается в Windows
- Перетаскивание
- Что делать с кодом Windows?
- Обработка сообщений Windows
- Нестандартные элементы
- Субклассирование
- Определение интерфейса
- Реализация нового интерфейса
- Снова о субклассировании
- Глава 4. Перетаскивание: как это
делается в OLE
- Что такое OLE?
- Наследование OLE и TInterfacedObject
- Требования к перетаскиванию OLE
- Обязанности клиента
- Как работает программа
- Что дальше?
- Хочу быть сервером!
- Обязанности сервера
- Требования к интерфейсу IDropSource
- Интерфейс IDataObject хранит данные
- Реализация сервера
- OLE!
- Глава 5. Компонент Winsock в Delphi
- Что такое Winsock?
- Изучаем CsSocket
- Приложение RESOLVER32
- Как меня зовут?
- Какой у тебя адрес?
- Как тебя зовут?
- Асинхронное получение адреса
- Кто находится по этому адресу?
- Отмена операции WSAAsync
- Преобразование портов и сервисов
- Поиск сервиса
- Преобразование протоколов
- Использование свойства Tag
- Стоит ли блокировать?
- Глава 6. CsShopper: FTP-клиент
- Вас обслуживают?
- Компонент CsShopper
- Организация вывода
- SHOPPER32 за работой
- Профили SHOPPER32
- Подключение
- Закрываем соединение
- Прием и передача файлов
- Изменение каталогов для пересылки
файлов
- Передача файлов
- Пересылка нескольких файлов
- Асинхронная пересылка файлов
- Положи на место!
- Заключение
- Глава 7. FTP-сервер
- CsKeeper за работой
- Конфигурирование KEEPER32 на вкладке
Options
- Вопросы безопасности
- Где и как хранится конфигурация
- Открываемся!
- Вывод списка каталогов и файлов
- Создание прослушивающего сокета
- Как вас обслуживают?
- Вход строго по одному
- Мне, пожалуйста, вот это…
- Сохраните, пожалуйста…
- Закрыто на переучет
- Глава 8. Трехмерные фрактальные
ландшафты
- Разделяй и сгибай
- Проблема общих сторон
- Треугольный массив
- Изгибы
- Сначала построить, потом выводить
- Генерация и отображение ландшафта
- Процедура Project()
- Каркасный режим
- Режим с заполнением
- Режим со светотенью
- Создавайте собственные миры
- Глава 9. Проблемы TPersistent и несколько
полезных советов
- Читаем, чтобы записывать?
- Разумные решения
- Использование RDTSC для измерения
временных интервалов на Pentium
- Перетаскивание текста в списках
- Строковые коллекции и списки
- Установка приложений - дело рук
самих приложений
- Использование inherited с
переопределенными свойствами
- Копирование экрана
- Группы переключателей с
индивидуальной блокировкой
- Захват системной палитры
- Работа с буфером как с потоком
- Оперативное изменение подсказок
- Использование макросов в редакторе
Delphi
- Потоки и TPersistent
- Отображение перетаскиваемого
объекта в Delphi 2 и 3
- Глава 10. Модели, виды и фреймы
- Практическая реализация видов
- Шаблоны компонентов и составные
компоненты
- Наследование форм
- От внедренных форм к видам
- Почему интерфейсы?
- Интерфейсные формы
- Проблемы с подсчетом ссылок в
Delphi 3
- Абстрактные, контролируемые
и неконтролируемые виды
- Редакторы моделей
- Пример модели
- Другие применения
- Глава 11. Таинственный модуль Math
- Три веских довода в пользу модуля Math
- Динамические данные и статические
объявления
- Slice спешит на помощь
- Создание компонента DBStatistics
- Получение доступа к данным
- Локальное хранение данных
- Извлечение данных
- Статистическая обработка
- Тестирование компонента DBStatistics
- Ошибки в модуле Math второй версии
Delphi
- Пропавшая функция Poly
- Сводка функций модуля Math
- Тригонометрические функции и
процедуры
- Арифметические функции и процедуры
- Финансовые функции и процедуры
- Статистические функции и процедуры
- Глава 12. Динамический
пользовательский интерфейс
- Пример приложения «Настрой меня
сам»
- Строим «мини-Delphi» для пользователей
- Перемещение элементов
- Масштабирование элементов
- Работа с контекстным меню
- Отмена изменений
- Изменение порядка перебора
элементов во время выполнения
- Изменение других свойств
- Изменение свойств в инспекторе
объектов
- Сохранение внесенных изменений
- Загвоздка: компоненты со
свойствами-компонентами
- Другой подход к потокам
- На пути к гибким пользовательским
интерфейсам
- Глава 13. Иерархические структуры
в реляционных базах данных
- Иерархия «один-ко-многим»
- Простейший пример иерархических
рекурсивных данных
- Использование TQuery для определения
набора подчиненных записей
- Вложенные рекурсивные
иерархические данные
- Перемещение по иерархии
- Отображение данных
- Использование данных
- Поиск записей
- Применение иерархических данных в
запросах
- Целостность структуры и
циклические ссылки
- Использование SQL
- Проблема произвольной вложенности
- Использование сохраненных
процедур
- Компоненты TreeData
- Работа со свойствами элементов
TreeData
- Внутреннее строение компонентов
TreeData
- TreeDataComboBox
- TreeDataListBox
- TreeDataOutline и TreeDataUpdate
- Главный секрет иерархий
- Глава 14. Пропавший оракул
- Вечером в конторе
- Мольба о помощи
- Пропажа
- На другом краю города
- Классическое перетаскивание
- Перетаскивание: как это делается
- Сброс груза
- Упаковка таблиц Paradox и dBASE
- Демонстрационная программа
- Снова в конторе Эйса
- Смысловые оттенки
- Воспроизведение WAV-файла
- Звук в приложении
- Упущение
- Глава 15. Улика, найденная в грязи
- Масштабирование форм
- Создание заставок
- Эйс получает ответ
- Глобальный доступ к данным в
приложении
- Потрясающее открытие
- Прогулка по Win95
- Внимание, сейчас вылетит птичка…
- Модуль WalkStuf
- Итоги
- Глава 16. Возвращение оракула
- Совместное использование
обработчиков событий
- Первая попытка
- Тернистый путь познания
- И последнее замечание…
- Использование файлов в памяти
- Перед началом
- Запрет выполнения программы
- Плавающие панели инструментов
- Эйс выходит победителем
- Эпилог
- Глава 17. Нестареющая проблема
- Сложная ситуация
- Суть проблемы
- Конструирование DLL
- Инициализация
- Сигналы от семафора
- Завершение
- Функции DLL
- Создание компонента-отправителя
- Создание компонента-получателя
- Субклассирование окна-владельца
- Другие интересные моменты
- Создание демонстрационной
программы Receiver
- Создание демонстрационной
программы Sender
- Внезапное пробуждение