Delphi 3. Библиотека программиста

Delphi 3. Библиотека программиста

От редактора перевода
Предисловие

Благодарности
Введение
Глава 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 за работой
Подключение
Закрываем соединение
Прием и передача файлов
Изменение каталогов для пересылки файлов
Передача файлов

Пересылка нескольких файлов
Асинхронная пересылка файлов
Положи на место!
Заключение
Глава 7. FTP-сервер
CsKeeper за работой
Конфигурирование KEEPER32 на вкладке Options
Вопросы безопасности
Где и как хранится конфигурация
Открываемся!

Вывод списка каталогов и файлов
Создание прослушивающего сокета
Как вас обслуживают?
Вход строго по одному
Мне, пожалуйста, вот это…
Сохраните, пожалуйста…
Закрыто на переучет
Трехмерные фрактальные ландшафты
Разделяй и сгибай
Проблема общих сторон

Треугольный массив
Изгибы
Сначала построить, потом выводить
Генерация и отображение ландшафта
Процедура Project()
Каркасный режим
Режим с заполнением
Режим со светотенью
Создавайте собственные миры
Проблемы TPersistent и несколько полезных советов

Читаем, чтобы записывать?
Разумные решения
Использование RDTSC для измерения временных интервалов на Pentium
Перетаскивание текста в списках
Строковые коллекции и списки
Установка приложений — дело рук самих приложений
Использование inheritedс переопределенными свойствами
Копирование экрана
Группы переключателей с индивидуальной блокировкой
Захват системной палитры

Работа с буфером как с потоком
Оперативное изменение подсказок
Использование макросов в редакторе Delphi
Потоки и TPersistent
Отображение перетаскиваемого объекта в Delphi2 и 3
Модели, виды и фреймы
Практическая реализация видов
Шаблоны компонентов и составные компоненты
Наследование форм
Почему интерфейсы?

Интерфейсные формы
Проблемы с подсчетом ссылок в Delphi3
Абстрактные, контролируемые инеконтролируемые виды
Редакторы моделей
Пример модели
Другие применения
Таинственный модуль Math
Три веских довода в пользу модуля Math
Динамические данные и статические объявления
Slice спешит на помощь

Создание компонента DBStatistics
Получение доступа к данным
Извлечение данных
Статистическая обработка
Тестирование компонента DBStatistics
Ошибки в модуле Math второй версии Delphi
Пропавшая функция Poly
Сводка функций модуля Math
Тригонометрические функции и процедуры
Арифметические функции и процедуры

Финансовые функции и процедуры
Статистические функции и процедуры
Динамический пользовательский интерфейс
Пример приложения «Настрой меня сам»
Строим «мини-Delphi» для пользователей
Перемещение элементов
Масштабирование элементов

Delphi 3. Библиотека программиста

Отмена изменений

Изменение порядка перебора элементов во время выполнения
Изменение других свойств
Изменение шрифтов во время выполнения
Сохранение внесенных изменений
Загвоздка: компоненты со свойствами-компонентами
Другой подход к потокам
На пути к гибким пользовательским интерфейсам
Иерархические структуры вреляционных базах данных
Иерархия «один-ко-многим»
Простейший пример иерархических рекурсивных данных

Использование TQuery для определения набора подчиненных записей
Вложенные рекурсивные иерархические данные
Перемещение по иерархии
Отображение данных
Использование данных
Поиск записей
Применение иерархических данных в запросах
Целостность структуры
Использование SQL
Проблема произвольной вложенности

Использование сохраненных процедур
Компоненты TreeData
Работа со свойствами элементов TreeData
Внутреннее строение компонентов TreeData
TreeDataComboBox
TreeDataListBox
TreeDataOutline и TreeDataUpdate
Главный секрет иерархий
Пропавший оракул
Вечером в конторе

Мольба о помощи
Пропажа
На другом краю города
Классическое перетаскивание
Перетаскивание: как это делается
Сброс груза
Упаковка таблиц Paradox и dBASE
Демонстрационная программа
Снова в конторе Эйса
Смысловые оттенки

Воспроизведение WAV-файла
Звук в приложении
Упущение
Улика, найденная в грязи
Масштабирование форм
Создание заставок
Эйс получает ответ
Глобальный доступ к данным в приложении
Потрясающее открытие
Прогулка по Win95

Внимание, сейчас вылетит птичка…
Модуль WalkStuf
Итоги
Возвращение оракула
Совместное использование обработчиков событий
Первая попытка
Тернистый путь познания
И последнее замечание…
Использование файлов в памяти
Перед началом

Запрет выполнения программы
Плавающие панели инструментов
Эйс выходит победителем
Эпилог
Delphi 3: библиотека программиста
Краткое содержание
Работа с контекстным меню
далее
далее

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