Королевство Delphi — принципиально некоммерческий проект, на котором отсутствует реклама. Поддержка и развитие сайта осуществляется исключительно за счет энтузиазма команды Королевства и его жителей, которые время от времени помогают улучшать сайт. В настоящее время сайт настолько разросся, что найти для него бесплатный хостинг стало невозможно, поэтому для оплаты хостинга собираются добровольные пожертвования. В соответствии с принципиальной позицией команды Королевства все эти пожертвования анонимны, и пожертвовавший не получает никаких преимуществ по сравнению с теми, кто не заплатил.
Автор данной книги является постоянным посетителем Королевства Delphi. В эту книгу вошел ряд статей, опубликованных автором на страницах Королевства и переработанных с учетом замечаний и пожеланий, высказанных посетителями сайта. Связаться с автором можно через его личную страницу в Рыцарском зале http://www.delphikingdom.com/asp/users.asp?ID=73.
Заметка, посвященная данной книге, находится но адресу http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1326, и если вы хотите, чтобы ваш отзыв или вопрос увидел не только автор, пишите комментарий к этой заметке.
Приложение 2
Содержимое компакт-диска
Прилагаемый к книге компакт-диск содержит примеры программ, разобранные в тексте книги. Примеры разбиты на четыре папки, каждая из которых соответствует одной главе. Все примеры могут быть откомпилированы в любой версии Delphi, начиная с 5-й.
Примеры к первой главе находятся в папке 1 Windows API и Delphi. Содержимое папки приведено в табл. П2.1.
Таблица П2.1.Примеры к главе 1
Папка |
Подпапка |
Описание |
Разделы главы |
Основы работы с Win API в VCL-приложениях |
EnumWnd |
Пример работы с функцией EnumWnd |
1.1.5. Функции обратного вызова. 1.1.13. Строки в Windows API. 1.2.1. Пример EnumWnd |
Line |
Пример перехвата невизуальным компонентом сообщений формы-владельца |
1.1.8. Обработка сообщений с помощью VCL. 1.2.2. Пример Line |
CoordLabel |
Пример перехвата визуальным компонентом сообщений родительского окна |
1.1.8. Обработка сообщений с помощью VCL. 1.2.3. Пример CoordLabel |
PanelMsg |
Пример перехвата формой сообщений расположенного на нем компонента и обработки перехваченного сообщения WM_PAINT |
1.1.8. Обработка сообщений с помощью VCL. 1.1.10. Особые сообщения. 1.1.11 Графика в Windows API. 1.2.4. Пример PanelMsg |
NumBroadcast |
Пример регистрации глобального сообщения, его широковещательной отправки и получения |
1.1.8. Обработка сообщений с помощью VCL. 1.1.9. Сообщения, определяемые пользователем. 1.2.5. Пример NumBroadcast |
ButtonDel |
Пример удаления кнопки при ее нажатии |
1.1.8 Обработка сообщений с помощью VCL. 1.2.6 Пример ButtonDel |
GDIDraw |
Пример использования графических средств GDI, не поддерживающихся классом TCanvas |
1.1.11. Графика в Windows API. 1.2.7 Пример GDIDraw |
BitmapSpeed |
Программа для сравнения скорости различных операций на DDB- и DIB-растрах |
1.1.11 Графика в Windows API. 1.2.8. Пример BitmapSpeed |
Обобщающий пример 1 |
ProcInfo |
Программа, показывающая информацию о запущенных в системе процессах и открытых ими окнах |
1.3.1. Обобщающий пример 1 — Информация о процессах |
Обобщающий пример 2 |
DKSView |
Программа, регистрирующая в реестре расширение своих файлов и не допускающая запуска двух копий одновременно |
1.3.2. Обобщающий пример 2 — Ассоциированные файлы и предотвращение запуска второй копии приложения |
Обобщающий пример 3 |
WndHole |
Программа, демонстрирующая, как сделать окно с прямоугольным отверстием, размеры которого могут изменяться пользователем |
1.3.3. Обобщающий пример 3 — "Дырявое" окно |
Обобщающий пример 4 |
Lines |
Пример рисования прямых нестандартными стилями и создания "резиновой" линии |
1.3.4. Обобщающий пример 4 — Линии нестандартного стиля |
Bezier |
Пример рисования кривых Безье нестандартными стилями и создания "резиновой" кривой |
1.3.4. Обобщающий пример 4 — Линии нестандартного стиля |
Примеры ко второй главе находятся в папке 2 Использование сокетов в Delphi, содержимое которой приведено в табл. П2.2.
Таблица П2.2.Примеры к главе 2
Папка |
Описание |
Разделы главы |
UDPChat |
Простейший чат с использованием UDP. Прием и отправка сообщений в разных нитях через различные сокеты |
2.1.5. Протокол UDP. 2.1.8. Создание сокета. 2.1.9. Передача данных при использовании UDP. 2.1.10. Пример программы — простейший чат на UDP |
SimplestServer |
Простейший TCP-сервер, реализованный в виде консольного приложения и работающий на блокирующих сокетах в одной нити. Способен взаимодействовать только с одним клиентом одновременно |
2.1.6. Протокол TCP. 2.1.8. Создание сокета. 2.1.11. Передача данных при использовании TCP. 2.1.12. Примеры передачи данных с помощью TCP |
SimpleClient |
Простой TCP-клиент использующий блокирующие сокеты и работающий с одним сервером |
2.1.6. Протокол TCP. 2.1.8. Создание сокета. 2.1.11. Передача данных при использовании TCP. 2.1.12. Примеры передачи данных с помощью TCP |
MultithreadedServer |
Многонитевой TCP-сервер на блокирующих сокетах, работающий с неограниченным чистом клиентов. Для каждого клиента создается отдельная нить |
2.1.5. Протокол TCP. 2.1.8. Создание сокета. 2.1.11. Передача данных при использовании TCP. 2.1.12. Примеры передачи данных с помощью TCP |
SelectChat |
UDP-чат с одним сокетом и одной нитью и для приема и для отправки сообщений. Для определения момента получения данных используется функция select |
2.1.13. Определение готовности сокета. 2.1.14. Примеры использования функции select |
SelectServer |
Однонитевой TCP-сервер, работающий на блокирующих сокетах и способный к взаимодействию одновременно с неограниченным числом клиентов. Для определения момента получения данных используется функция select |
2.1.13. Определение готовности сокета. 2.1.14. Примеры использования функции select |
NonBlockingServer |
Однонитевой TCP-сервер, работающий на неблокирующих сокетах и способный к взаимодействию одновременно с неограниченным числом клиентов |
2.1.15. Неблокирующий режим. 2.1.16. Сервер на неблокирующих сокетах |
AsyncSelectServer |
TСР-сервер, использующий оконные сообщения для взаимодействия с неограниченным числом клиентов |
2.2.5. Асинхронный режим, основанный на сообщениях. 2.2.6. Пример сервера, основанного на сообщениях |
EventSelectServer |
Многонитевой TCP-сервер. Нить, устанавливающая подключения, и нити, взаимодействующие с клиентами, управляются событиями, связанными с сокетами |
2.2.7. Асинхронный режим, основанный на событиях. 2.2.8 Пример использования сокетов с событиями |
EventSelectClient |
TCP-клиент, поддерживающий расширенную версию протокола обмена, реализованную в примере EventSelectServer. Использует сокеты, основанные на оконных сообщениях |
2.2.5. Асинхронный режим, основанный на сообщениях. 2.2.7. Асинхронный режим, основанный на событиях. 2.2.8. Пример использования сокетов с событиями |
OverlappedServer |
TCP-сервер на основе перекрытого ввода-вывода с использованием процедур завершения |
2.2.9. Перекрытый ввод-вывод. 2.2.10. Сервер, использующий перекрытый ввод-вывод |
Читать дальше
Конец ознакомительного отрывка
Купить книгу