ebook img

Программирование в Delphi PDF

400 Pages·2010·3.782 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Программирование в Delphi

Чиртик Александр Анатольевич Программирование в Delphi. Трюки и эффекты Серия «Трюки и эффекты» Заведующий редакцией А. Громаковский Руководитель проекта Ю. Чернушевич Ведущий редактор Н. Гринчик Научный редактор Д. Романов Корректоры В. Арон, А. Занина Верстка Г. Блинов, В. Нога ББК 32.973.23-018.2 УДК 004.9 Чиртик А. А. Ч-65 Программирование в Delphi. Трюки и эффекты. — СПб.: Питер, 2010. — 400 с.: ил. — (Серия «Трюки и эффекты»). ISBN 978-5-49807-118-3 Как и все издания данной серии, эта книга адресована тем, кто хочет научиться делать с помощью уже знакомых программных пакетов новые интересные вещи. Издание будет полезно и новичкам, и опыт- ным программистам. Автор описывает удивительные возможности, скрытые в языке, и на примерах учит читателя программистским фокусам — от «мышек-невидимок» и «непослушных окон» до воспроизведе- ния MP3 и управления офисными программами Word и Excel из приложений Delphi. Купив эту книгу, вы пройдете непростой путь к вершинам программистского мастерства весело и интересно. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых изда- тельством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых све- дений и не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-5-49807-118-3 © ООО Издательство «Питер», 2010 ООО «Лидер», 194044, Санкт-Петербург, Б. Сампсониевский пр., 29а. Налоговая льгота — общероссийский классификатор продукции ОК 005-93, том 2; 95 3005 — литература учебная. Подписано в печать 04.03.10. Формат 70×100/16. Усл. п. л. 32,25. Тираж 1500. Заказ 0000. Отпечатано по технологии CtP в ОАО «Печатный двор» им. А. М. Горького. 197110, Санкт-Петербург, Чкаловский пр., 15. Краткое содержание Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 От .издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Глава 1. Окна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Глава 2. Уменьшение .размера .EXE-файла . . . Использование .Windows .API . . . . . . . . . . . . . . . . . . . . . . . . . . .48 Глава 3. Мышь .и .клавиатура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 Глава 4. Диски, .папки, .файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 Глава 5. Мультимедиа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Глава 6. Использование .Windows .GDI . . . . . . . . . . . . . . . . . . . . . . . . .174 Глава 7. Системная .информация .и .реестр .Windows . . . . . . . . . . . . .201 Глава 8. Обмен .данными .между .приложениями . . . . . . . . . . . . . . . .243 Глава 9. Возможности .COM .в .Microsoft .Word .и .Microsoft .Excel . . . .256 Глава 10. Окна .других .приложений . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Глава 11. Сетевое .взаимодействие . . . . . . . . . . . . . . . . . . . . . . . . . . .299 Глава 12. Шифрование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .377 Приложение .1 . .Коды .и .обозначения .основных .клавиш . . . . . . . . . . .378 Приложение .2 . .Оконные .стили . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .381 Приложение .3 . .Сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .392 Оглавление Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 От .издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Глава 1. Окна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Привлечение .внимания .к .приложению . . . . . . . . . . . . . . . . . . . . . . . . . .11 Инверсия .заголовка .окна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Активизация .окна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Окно .приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Полупрозрачные .окна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 Окна .и .кнопки .нестандартной .формы . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Регионы . .Создание .и .использование . . . . . . . . . . . . . . . . . . . . . .21 Закругленные .окна .и .многоугольники . . . . . . . . . . . . . . . . . . . . .25 Комбинированные .регионы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Немного .о .перемещении .окон . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Перемещение .за .клиентскую .область . . . . . . . . . . . . . . . . . . . . .37 Перемещаемые .элементы .управления . . . . . . . . . . . . . . . . . . . .39 Масштабирование .окон . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 Добавление .команды .в .системное .меню .окна . . . . . . . . . . . . . . . . . . .45 Отображение .формы .поверх .других .окон . . . . . . . . . . . . . . . . . . . . . . .46 Глава 2. Уменьшение .размера .EXE-файла . . . Использование .Windows .API . . . . . . . . . . . . . . . . . . . . . . . . . . .48 Источник .лишних .килобайт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 Создание .окна .вручную . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Окно .с .элементами .управления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 Создание .элементов .управления . . . . . . . . . . . . . . . . . . . . . . . . .57 Использование .элементов .управления . . . . . . . . . . . . . . . . . . . .61 Реакция .на .сообщения .элементов .управления . . . . . . . . . . . . .66 Пример .приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Оглавление  Стандартные .окна .Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 Окно .открытия .и .сохранения .файла . . . . . . . . . . . . . . . . . . . . . . .72 Окно .для .выбора .цвета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 Окно .для .выбора .шрифта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 Окно .для .выбора .папки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77 Окна .подключения .и .отключения .сетевого .ресурса . . . . . . . . .79 Системное .окно .О .программе . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Демонстрационное .приложение . . . . . . . . . . . . . . . . . . . . . . . . . .81 Установка .шрифта .элементов .управления . . . . . . . . . . . . . . . . . . . . . .87 Глава 3. Мышь .и .клавиатура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 Мышь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 Координаты .и .указатель .мыши . . . . . . . . . . . . . . . . . . . . . . . . . . .91 Захват .указателя .мыши . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93 Ограничение .области .перемещения .указателя . . . . . . . . . . . . .94 Изменение .назначений .кнопок .мыши . . . . . . . . . . . . . . . . . . . . .95 Подсчет .расстояния, .пройденного .указателем .мыши . . . . . . . .96 Подсвечивание .элементов .управления . . . . . . . . . . . . . . . . . . .101 Клавиатура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 Получение .информации .о .клавиатуре . . . . . . . . . . . . . . . . . . . .102 Опрос .клавиатуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103 Имитация .нажатия .клавиш . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 Бегущие .огни .на .клавиатуре . . . . . . . . . . . . . . . . . . . . . . . . . . . .108 Глава 4. Диски, .папки, .файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 Диски . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 Сбор .информации .о .дисках . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 Изменение .метки .диска . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118 Программа .просмотра .свойств .дисков . . . . . . . . . . . . . . . . . . .118 Папки .и .пути . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Системные .папки .WINDOWS .и .system . . . . . . . . . . . . . . . . . . . .121 Имена .временных .файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 Определение .прочих .системных .путей . . . . . . . . . . . . . . . . . . .124 Определение .и .установка .текущей .папки . . . . . . . . . . . . . . . . .127 Преобразование .путей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127  Оглавление Поиск . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133 Построение .дерева .папок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 Файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144 Красивое .копирование .файла . . . . . . . . . . . . . . . . . . . . . . . . . . .144 Определение .значков, .ассоциированных .с .файлами . . . . . . .148 Извлечение .значков .из .EXE- .и .DLL-файлов . . . . . . . . . . . . . . . .150 Глава 5. Мультимедиа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Воспроизведение .звука .с .помощью .системного .динамика . . . . . . .155 Использование .компонента .MediaPlayer . . . . . . . . . . . . . . . . . . . . . . .156 Компонент .Animate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161 Разработка .звукового .проигрывателя . . . . . . . . . . . . . . . . . . . . . . . . .165 Видеопроигрыватель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170 Глава 6. Использование .Windows .GDI . . . . . . . . . . . . . . . . . . . . . . . . .174 Графические .объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 Аппаратно-независимый .графический .вывод . . . . . . . . . . . . . . . . . .176 Контекст .устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 Экранный .контекст .устройства . . . . . . . . . . . . . . . . . . . . . . . . . .177 Контекст .устройства .принтера . . . . . . . . . . . . . . . . . . . . . . . . . .178 Контекст .устройства .памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 Информационный .контекст .устройства . . . . . . . . . . . . . . . . . . .179 Графические .режимы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180 Работа .со .шрифтами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180 Рисование .примитивов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 Работа .с .текстом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186 Работа .с .растровыми .изображениями . . . . . . . . . . . . . . . . . . . . . . . . .191 Альфа-смешивание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195 Глава 7. Системная .информация .и .реестр .Windows . . . . . . . . . . . . .201 Системная .информация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202 Версия .операционной .системы . . . . . . . . . . . . . . . . . . . . . . . . .202 Имя .компьютера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207 Имя .пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 Состояние .системы .питания .компьютера . . . . . . . . . . . . . . . . .209 Оглавление  Состояние .памяти .компьютера . . . . . . . . . . . . . . . . . . . . . . . . . .211 Системное .время . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214 Определение .времени .работы .операционной .системы . . . . .214 Аппаратный .таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 Мультимедиа-таймер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216 Создание .программного .таймера .высокой .точности . . . . . . .219 Реестр . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 Краткие .сведения .о .реестре .Windows . . . . . . . . . . . . . . . . . . . .221 Средства .работы .с .реестром . . . . . . . . . . . . . . . . . . . . . . . . . . . .223 Хранение .настроек .программы .в .реестре . . . . . . . . . . . . . . . . .225 Автозапуск .программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 Запуск .приложения .из .командной .строки . . . . . . . . . . . . . . . . .233 Регистрация .типов .файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234 Программа .просмотра .реестра . . . . . . . . . . . . . . . . . . . . . . . . . .237 Глава 8. Обмен .данными .между .приложениями . . . . . . . . . . . . . . . .243 Сообщение .WM_COPYDATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 Использование .буфера .обмена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247 Проецируемые .в .память .файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 Глава 9. Возможности .COM .в .Microsoft .Word .и .Microsoft .Excel . . . .256 Технология .OLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 Технология .COM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 Использование .технологии .OLE .в .Delphi . . . . . . . . . . . . . . . . . . . . . . .258 Microsoft .Office .с .точки .зрения .COM . . . . . . . . . . . . . . . . . . . . . .258 Объект .Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 Класс .TOLEServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260 Управление .Microsoft .Word .и .Microsoft .Excel . . . . . . . . . . . . . . . . . . . .261 Трюки .в .Microsoft .Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 Трюки .в .Microsoft .Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 Глава 10. Окна .других .приложений . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Ловушки .Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269 Виды .ловушек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270 Расположение .функции-ловушки .и .DLL . . . . . . . . . . . . . . . . . . .273  Оглавление Программа .«Оконный .шпион» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274 Составление .списка .открытых .окон . . . . . . . . . . . . . . . . . . . . . .274 Получение .информации .об .окне . . . . . . . . . . . . . . . . . . . . . . . . .277 Изменение .оконных .стилей . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282 Перехват .сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 Глава 11. Сетевое .взаимодействие . . . . . . . . . . . . . . . . . . . . . . . . . . .299 Краткое .описание .сетевых .компонентов . . . . . . . . . . . . . . . . . . . . . . .300 Простой .обмен .данными . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301 Слежение .за .компьютером .по .сети . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 Многопользовательский .разговорник . . . . . . . . . . . . . . . . . . . . . . . . .311 Требования .к .клиентскому .и .серверному .приложениям . . . . .312 Формат .сообщений .клиента .и .сервера . . . . . . . . . . . . . . . . . . .312 Реализация .сервера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 Реализация .клиентского .приложения . . . . . . . . . . . . . . . . . . . .327 Глава 12. Шифрование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 Основы .криптографии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 Шифр .простой .подстановки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339 Транспозиция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348 Шифр .Виженера .и .его .варианты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356 Шифр .с .автоключом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363 Взлом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .377 Приложение .1 . .Коды .и .обозначения .основных .клавиш . . . . . . . . . . .378 Приложение .2 . .Оконные .стили . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .381 Приложение .3 . .Сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .392 Введение В настоящее время количество книг, посвященных различным языкам программиро- вания, настолько велико, что иногда просто не знаешь, какую выбрать. Цель этой книги — не просто тривиальное изложение материала о ������������... ���нннааа пппооомммооожжжеееттт ввваааммм получить опыт в решении многих задач. В итоге вы получите необходимый базис знаний, который даст возможность легко и быстро усваивать что-то новое. Здесь вы найдете ответы на вопросы, которые возникают у большинства людей при разработке своих собственных приложений. Вам больше не придется задумываться над тем, как решать мелкие задачи, которые составляют значительную часть повседневной работы большинства программистов. У вас появится возможность тратить больше времени именно на основную цель, поставленную перед вами, а не на второстепенную. Данная книга рассчитана на читателей, которые уже имеют некий опыт в програм- мировании, причем достаточный, чтобы не излагать тривиальные вещи заново. �днако сразу отмечу, пусть даже вы делаете свои первые шаги на пути к написанию приложений на высоком уровне, — книга окажет вам неоценимую помощь. �на по- строена так, чтобы вы смогли с высокой степенью эффективности узнавать новый материал. В конце книги есть приложения в удобном для восприятия виде. В них вы найдете информацию, которая часто используется при написании программ. Зачастую люди выбирают ������������ зззааа ееегггооо пппррроооссстттооотттууу... ���нннааа пппооодддкккууупппаааеееттт нннааачччииинннаааююющщщиииххх,,, кккооо--- торые хотят почти сразу писать программы, а не разбираться в особенностях син- таксиса языка. Простота в совокупности с мощью дают вам целый набор инструмен- тов для воплощения задуманного. �днако запомните: чтобы научиться хорошо программировать, недостаточно иметь огромный объем теоретических знаний, хотя и он немаловажен. Следует научиться думать в концепции выбранного вами языка, и тогда вас ждет успех. Ведь не понимая, зачем все это нужно, вы не сможете эффек- тивно воспользоваться ресурсами языка для наиболее удачного решения поставлен- ных задач. В этой книге описано множество примеров. Есть как относительно простые, так и до- вольно сложные, но пусть последнее вас не пугает: к тому моменту, когда вы начне- те их рассматривать, они не покажутся вам особенно трудными. От издательства Ваши замечания, предложения и вопросы отправляйте по адресу электронной поч- ты gromakovski��mmmiii���ssskkk��������iiii��������rrrr���������ooooommmmm (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение! Все примеры, приведенные в книге, вы можете найти по адресу h���://www��i��r��om/ dow�load. На сайте издательства h���://www��i��r��om вы найдете подробную информацию о наших книгах. Глава 1 Окна  Привлечение внимания к приложению  Окно приложения  Полупрозрачные окна  Окна и кнопки нестандартной формы  Немного о перемещении окон  Масштабирование окон  Добавление команды в системное меню окна  Отображение формы поверх других окон

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.