Сергей Парижский - Delphi. Учимся на примерах
Обзор книги Сергей Парижский - Delphi. Учимся на примерах
Парижский С. М.
Delphi
УЧИМСЯ НА ПРИМЕРАХ
Под редакцией Ю. А. Шпака
"МК-Пресс" Киев, 2005
Введение
В своей первой книге, "Delphi. Только практика", автор рассматривал примеры различных интересных программ. Эта книга является продолжением первой книги. Продолжением, поскольку исходные коды программ, которые рассматриваются в первой и второй книге, не повторяются. Также как и в "Delphi. Только практика", в данном издании подробно рассмотрены программы для сетей, различные шуточные программы, простые игрушки, некоторые полезные приложения, разработка приложений в стиле Windows XP. В частности, здесь можно найти такие примеры как бесплатная отправка SMS, FTP-клиент, простое шифрование, CGI-сценарии и многое другое.
Поскольку рассмотренные примеры достаточно просты, то даже начинающий программист сможет быстро освоить азы написания приложений в Delphi и перейти к разработке собственных проектов (описание синтаксиса языка программирования Object Pascal представлено в приложении Г). Само собой разумеется, что для изучения изложенного в книге материала желательно знать основы работы с Windows, поскольку Delphi — средство разработки программ именно для этой операционной системы.
Структура книги такова, что ее не обязательно читать от начала до конца, — можно просто открыть любую главу и разработать рассматриваемую программу. Все примеры подробно объясняются и содержат комментарии сложных строк кода. Книга будет интересна как опытным программистам, так и тем, кто только начал изучать язык программирования Delphi.
К книге прилагается компакт-диск, содержащий исходные и исполняемые файлы всех рассмотренных программ, а также цветные копии рисунков.
Глава 1
Интерфейс в стиле Windows XP
Как известно, интерфейс программ, написанных на Delphi и запускаемых в операционной системе (ОС) Windows XP, при любом стиле оформления будет иметь одинаковый вид. В этой главе будет показано как написать программу, которая будет отображаться в стиле XP.
С помощью любого редактора создайте текстовый файл и введите в нем следующий текст:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="Microsoft.Windows.ApplicationName" processorArchitecture="x86" version="1.0.0.0" type="win32"/>
<description>ApplicationDescription</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" />
</dependentAssemblу>
</dependency>
</assembly>
Сохраните этот файл под именем с:xp_style.txt. Затем создайте еще один текстовый файл следующего содержания:
1 24 C:xp_style.txt
Сохраните этот файл под именем xp_style.rc в каталоге С:Program fileDelphiBin.
⊚ Файлы xp_style.txt и xp_style.rc можно найти на прилагаемом к книге компакт-диске в папке Chapter01.
Примечание
Указанный выше путь к папке Bin предполагает, что Delphi был установлен в каталог, выбранный по умолчанию. Если при установке был выбран другой каталог, то используйте именно его. Далее в книге будет везде использован путь по умолчанию.
Теперь запустим программу C: Program FileDelphiBin brcc32.exe, передав ей в качестве параметра имя файла хрstyle.re. Для этого следует перейти в режим командной строки, выполнив команду системного меню Пуск→Выполнить, а затем в диалоговом окне Запуск программы введя команду cmd и нажав клавишу <Enter>. В режиме командной строки с помощью команды cd перейдем в каталог С:Program fileDelphiBin и выполним следующую команду:
brcc32.exe xp_style.rc
В результате в каталоге C:Program fileDelphiBin должен появиться ресурсный файл xpstyle.res, который следует подключать к приложению в том случае, когда его требуется оформить в стиле Windows XP.
Проверим, так ли это, создав программу в стиле XP. Откройте диалоговое окно настройки свойств Рабочего стола и выберите тему Windows XP (если она еще не выбрана).
Создайте в Delphi новый проект и разместите на форме компонент Edit категории Standard. Присвойте его свойству Text следующее значение: Все компоненты и сама форма в стиле Windows ХР. Ниже разместите кнопку (компонент Button категории Standard), при нажатии которой будет появляться информационное окно (оно тоже должно быть в стиле XP). Обработчик события OnClick для кнопки:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Edit1.Text);
end;
Теперь при нажатии кнопки будет появляться окно, содержащее текст, извлеченный из поля для ввода. Запустим программу на выполнение. Как видим, внешний вид интерфейса никак не изменился, не смотря на то, что выбрана тема Windows XP.
Для того чтобы решить эту проблему найдите в программном модуле раздел implementation (сейчас в нем указано только подключение файла формы *.dfm при помощи директивы {$R *.dfm}). Для того чтобы подключить наш файл ресурсов, следует в разделе implementation добавить строку
{$R xp_style.res}
Теперь можно запустить программу и насладиться интерфейсом ХР (рис. 1.1).
Рис. 1.1. Элементы формы отображаются в стиле Windows XP
Введите в поле какой-либо текст и нажмите кнопку — должно появиться информационное окно, которое также будет отображаться в стиле Windows XP (рис. 1.2). При этом, размер exe-файла увеличился всего лишь на несколько сотен байт.
Рис. 1.2. Информационное окно также отображается в стиле Windows XP
⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter 01.
Глава 2
Работа с файлами
Постановка задачи
Разработать программу для работы с файлами. Программа должна предоставлять стандартные функции, используемые при работе с файлами: копирование, перенос, удаление.
Разработка формы
Создайте новый проект Delphi. Первым делом разработаем интерфейс программы. Изменим некоторые свойства главной формы. Прежде всего, присвойте соответствующее значение свойству Caption (заголовок формы) — например, Работа с файлами. Поскольку окно нашей программы должно всегда находиться поверх всех остальных окон, следует присвоить свойству FormStyle значение fsStayOnTop. Больше никаких свойств формы изменять не будем.
Разместите в левом верхнем углу формы, один над другим два компонента Label (метка) категории Standard. Для верхней метки присвойте свойству Caption значение Что:, а для второй — Куда:. Рядом с метками разместите по одному компоненту Edit (поле ввода) категории Standard. Присвойте свойству Name (имя) верхнего поля значение from, а свойству Name нижнего — значение where. Свойствам from.Text и where.Text присвойте пути по умолчанию, например: c:1.txt и d:2.txt.
Для того чтобы не утруждать пользователя копированием или ручным вводом путей размещения файлов, воспользуемся стандартными диалоговыми окнами открытия и сохранения файлов. Диалоговом окну открытия файла соответствует компонент OpenDialog категории Dialogs, а диалоговому окну сохранения — компонент SaveDialog той же категории. Разместим эти компоненты на форме. Для удобства изменим значение свойства OpenDialog1.Name на Open1, а значение свойства SaveDialog1.Name на Save1.
Справа от полей from и where разместим кнопки вызова диалогового окна обзора (компоненты Button категории Standard). Свойству Caption этих кнопок присвойте значение Обзор или просто поставьте точки. При желании, можете изменить размеры кнопок.
Разместите на форме под полем where компонент Label категории Standard и присвойте его свойству Caption значение Размер файла:. Справа от этой метки разместите еще один компонент Label, очистив для нее свойство Caption — эта метка будет отображать размер обрабатываемого файла.
Ниже разместим две кнопки (компоненты Button), присвоим их свойствам Caption значения Копировать и Вырезать. Под этими кнопками разместим компоненты, которые будут использоваться для выбора и удаления файлов: компонент Edit для ввода пути к файлу, кнопка вызова диалогового окна обзора и кнопка для удаления файла.
Свойству Edit1.Name присвоим значение Del, а свойству Text – путь по умолчанию. Кнопку Обзор разместим справа, а кнопку Удалить файл — под полем Del.
Полученная форма должна соответствовать рис. 2.1.
Рис. 2.1. Форма Работа с файлами
Разработка программного кода
Разработаем процедуру копирования файла. Это можно было бы реализовать средствами WinAPI, однако в этом случае процедура, хотя и была бы менее громоздкой, оказалась бы "привязанной" к системе, что для программ нежелательно, поэтому лучше воспользоваться библиотеками Delphi.
Для начала объявим нашу процедуру (назовем ее doit) как закрытый член класса формы: