Практическое занятие № 15
Тема: "Создание программ с внешними компонентами"
Цель занятия: получить практические навыки по установке и использованию отдельных компонентов и библиотек компонентов
Ход работы
Работа с отдельными компонентами
Создайте папку для хранения всех внешних компонентов и укажите путь к ней в среде Delphi.
Указания: в папке с Delphi (C:\Program Files\Borland\Delphi) создайте папку Components. В среде Delphi выполните команду Tools - Environment Options, на закладке Library раскройте поле Library Path ( с помощью кнопки с тремя точками), в новом окне в текстовом поле укажите путь к папке Components и щелкните на кнопке Add.
Создать форму, которая в качестве цвета фона имеет градиентную заливку:

Указания: Для создания градиентной заливки используем компонент Gradient
Для установки компонента скопируйте все его файлы в папку Components. Выполните команду Component - Install Component. В появившемся окне в поле Unit File Name укажите файл Gradient.pas из папки Component и щелкните ОК. В результате на закладке Samples появится новый компонент Gradient.
Нанесите компонент на форму и задайте свойство Align = alClient (компонент заполнит собой всю форму). Для задания цветов градиента укажите свойства: ColorBegin = clBlue, ColorEnd = clyEllow. В свойстве Style укажите тип перехода цветов в градиенте. В нашем примере используется горизонтальный переход (Style = gsLinearh).
На форме создадим эффект скроллинга текста в заголовке окна.
Указания: Эффект скроллинга можно создать с помощью компонента ScrollingCaption
Для установки компонента скопируйте все его файлы в папку Components. Выполните команду Component - Install Component. В появившемся окне в поле Unit File Name укажите файл SCRLCAPT.pas из папки Component и щелкните ОК. В результате на закладке Samples появится новый компонент ScrollingCaption.
Нанесите компонент на форму и задайте свойства: Caption = текст заголовка, Direction = dLeft (направление скроллинга), Interval = 200 (интервал времени, через которое скроллинг будет повторяться), Space = ***** (набор символов между повторами текста заголовка).
Организуем свертывание формы в системную панель Windows.
Указания: Для выполнения задачи воспользуемся компонентом TrayIcon
Для установки компонента скопируйте все его файлы в папку Components. Выполните команду Component - Install Component. В появившемся окне в поле Unit File Name укажите файл TrayIcon.pas из папки Component и щелкните ОК. В результате на закладке Samples появится новый компонент TrayIcon.
Нанесите компонент на форму и задайте свойства: ActOnMinimize = true (включаем компонент, чтобы при свертывании форма помещалась в системную панель), Hint - текст всплывающей подсказки для иконки в системной панели, Icon = файл иконки для отображения в системной панели, Visible = false (если свойство равное false, то форма отображается в нормальном виде, если true - в свернутом в системную панель).
Для иконки в системной панели создадим контекстное меню в командами Восстановить и Закрыть.
Указания: Нанесите на форму компонент PopupMenu (Standard). Двойным щелчком на компоненте откройте окно редактора меню. Введите названия двух команд "Восстановить", "Закрыт".
Для первой команды введите код:
procedure Tform1.N1Click(Sender: Tobject);
begin
//окно восстанавливает нормальный вид
TrayIcon1.Visible:=false;
end;
Для второй команды введите код:
procedure Tform1.N2Click(Sender: Tobject);
begin
//закрываем главную форму (завершаем работу программы)
close;
end;
Для присваивания созданного контекстного меню иконке в системной панели выделите компонент TrayIcon и в свойстве PopupMenu укажите имя компонента PopupMenu1.
Создадим форму-заставку с произвольным изображением.
Указания: Для выполнения задачи воспользуемся компонентом StartMark
Для установки компонента скопируйте все его файлы в папку Components. Выполните команду Component - Install Component. В появившемся окне в поле Unit File Name укажите файл Startmark.pas из папки Component и щелкните ОК. В результате на закладке Samples появится новый компонент StartMark.
Нанесите компонент на форму и задайте свойства: Active = true (включаем отображение формы- заставки), Picture = файл с изображением (следите, чтобы изображение не было большого размера, иначе форма-заставка растянется до его размера), ShowTime = 3000 ((интервал времени для отображения формы- заставки).
Работа с библиотекой AlphaControl
Установите библиотеку AlphaControl. Нанесите на форму несколько произвольных компонентов. Примените к форме произвольный скин из библиотеки и убедитесь, что все компоненты изменили свой внешний вид.
Указания: распакуйте файл библиотеки в папку. Переместите эту папку в папку со средой Delphi. С помощью команды Tools - Environment Options - Library - Library Path укажите пути к следующим папкам библиотеки:
- ваша папка с библиотекой;
- ваша папка\Res;
- ваша папка\D7.
В среде Delphi откройте файл с именем "ваша папка\D7\acntD7_R.dpk" и в появившемся окне щелкните на кнопке "Compile".
В среде Delphi откройте файл с именем "ваша папка\D7\acntD7.dpk" и в появившемся окне щелкните на кнопке "Compile", а затем на кнопке "Install".
В результате появятся новые закладки с именами: "Alpha Standard", "Alpha Additional", "Alpha Tools".
Для применения нужного скина нанесите на форму компонент sSkinManager (Alpha Tools). Для компонента задайте свойства: SkinDirectory - путь к скинам (ваша папка\Skins), InternalSkins - с помощью кнопки Add добавьте нужный скин для использования.
Запустите приложение. Если к каким-то компонентам указанный скин не применился, то откройте свойство ThirdParty компонента sSkinManager и отметьте недостающие компоненты для применения скина.
Работа с библиотекой 1st Class
Установите библиотеку 1st Class. Пароль для установки можно узнать в текстовом файле, расположенном в одной папке с файлом установки библиотеки.
На форме создайте два числовых поля (ввод только цифр). Активное поле ( с курсором) должно выделяться другим цветом.
Указания: Нанесите на форму компонент fcCalcEdit (1st Class) и задайте свойства: Color = clYellow (цвет, который поле будет принимать, когда станет активным), Frame - Enabled = true (включаем изменение состояния поля при входе в поле и выходе из него), Frame - nonFocusControl = clWindow (цвет поля, если оно не активно), ShowButton = false (скрывает кнопку отображения калькулятора), Text очистить.
Скопируйте поле для создания копии.
На форме создайте строку статуса. В первой панели отобразите текст, который поясняет назначение каждого поля, во второй панели - состояние клавиши CapsLock, в третьей панели - состояние клавиши NumLock, в четвертой панели - имя компьютера в сети, в пятой - результат расчетов (см. следующую задачу).
![]()
Указания: Нанесите на форму компонент fsStatusBar (1st Class). Двойным щелчком откройте окно редактора панелей и с помощью первой кнопки на панели этого окна создайте пять панелей. Для первой панели задайте свойства: Style = psHint, Width = 250: для второй панели: Style = psCapsLock, Width = 50; для третьей панели: Style = psNumLock, Width = 50; для четвертой панели: Style = psComputerName, Width = 100; для пятой оставьте все свойства по умолчанию.
Чтобы в первой панели отображался текст, который описывает назначение полей на форме, для каждого текстового поля в свойстве Hint укажите произвольный текст-описание.
На форме создайте кнопку с произвольным цветом фона, которая вычисляет сумму значений двух созданных полей и отображает ответ в пятой панели строки статуса.
Указания: Обычные кнопки в Delphi не могут иметь произвольный цвет фона. Нанесите на форму компонент fcShapeBtn (1st Class). Данный компонент похож на компонент Bitbtn. Задайте для него свойства: Color = цвет фона кнопки, Kind = стандартная иконка для кнопки, Glyth = файл с изображением для кнопки (если не устраивает свойство Kind), Caption = текст надписи, Shape = произвольная форма кнопки (если не устраивает прямоугольник).
Для кнопки в событии OnClick напишите код:
procedure Tform1.fcshapebtn1Click(Sender: Tobject);
begin
//в пятой панели строки статуса показываем ответ
//указан номер 4, потому что нумерация панелей с 0
fcStatusBar1.Panels[4].Text:=' Сумма='+floattostr(strtofloat(fcCalcEdit1.Text)+strtofloat(fcCalcEdit2.Text));
end;
Запуск внешних файлов
На форме создайте кнопку с изображением, которая запускает на выполнение файл "restart.bat", который в свою очередь перезагружает компьютер. При этом файл выполняется в скрытом режиме.
Указания: Нанесите на форму компонент fcImageBtn и задайте свойства: Caption = текст надписи, Image = файл рисунка для кнопки в обычном состоянии, ImageDown = файл рисунка для кнопки в нажатом состоянии. Если текст не видим на фоне изображения, то в свойстве Font кнопки задайте подходящий цвет символов.
Для кнопки напишите код:
procedure Tform1.fcimagebtn1Click(Sender: Tobject);
begin
WinExec ('restart.bat',SW_Hide);
end;
Для работы этой команды необходимо, чтобы в папке с программой находился файл "restart.bat". Для его создания запустите Блокнот и введите команду вида:
shutdown -r -t 00
Выполните команду Файл - Сохранить. В окне сохранения перейдите в папку с вашей программой, в поле "Тип файл"а укажите строку "Все файлы", в поле "Имя файла" введите "restart.bat"
Для кнопок создайте всплывающие подсказки с пользовательским оформлением (цветом фона и форматом символов).
Указания: Сначала для каждой кнопки в свойстве Hint укажите текст всплывающей подсказки и с помощью свойства ShowHint=true включите отображение этих подсказок в программе.
Для форматирования всплывающих подсказок воспользуемся компонентом AloisHint
Для установки компонента скопируйте все его файлы в папку Components. Выполните команду Component - Install Component. В появившемся окне в поле Unit File Name укажите файл AloisHint.pas из папки Component и щелкните ОК. В результате на закладке Samples появится новый компонент AloisHint.
Нанесите компонент на форму и задайте свойства: Active = true (включаем форматирование всплывающих подсказок), Color = цвет фона всплывающей подсказки, Font = параметры форматирования текста всплывающей подсказки, Separate_str = * (символ переноса текста на следующую строку).
В свойстве Hint кнопок поставьте символ "*" для проверки переноса текста.
Создайте кнопку для открытия любого файла.
Указания: Скопируйте кнопку, созданную в пункте 1 и измените текст в свойстве Caption.
Для выбора нужного файла нанесите на форму компонент OpenDialog (Dialogs) и задайте свойство Filter = Все файли|*.*.
Для использования процедуры открытия файлов подключите модуль
ShellApi
Для кнопки в событии Onclick напишите код:
procedure Tform1.fcImageBtn2Click(Sender: Tobject);
begin
//если в диалоге открытия был выбран файл
if OpenDialog1.Execute=true then
//для открытия файла указываем параметр 'open'
ShellExecute(Handle,'open', pchar(OpenDialog1.FileName),nil,nil,SW_Restore);
end;
Создайте еще одну кнопку для открытия любой папки.
Указания: Для выбора нужной папки воспользуемся компонентом PFolderDialog
Для установки компонента скопируйте все его файлы в папку Components. Выполните команду Component - Install Component. В появившемся окне в поле Unit File Name укажите файл PFolderDialog.pas из папки Component и щелкните ОК. В результате на закладке Samples появится новый компонент PFolderDialog.
Нанесите компонент на форму и задайте свойства: CancelButtonText = надпись на кнопке "Отмена", OkButtonEnabled = false (пока папка не выбранна, кнопка ОК не доступная), OkButtonText = "Открыть" (текст на кнопке ОК), Title = "Выберите нужную папку" (текст, отображаемый над деревом папок).
Скопируйте кнопку, созданную в пункте 1 и измените текст в свойстве Caption.
Для кнопки в событии OnClick напишите код:
procedure Tform1.fcImageBtn3Click(Sender: Tobject);
begin
//если в диалоге открытия была выбрана папка
if PFolderDialog1.Execute=true then
//для открытия папки указываем параметр 'exlore'
ShellExecute(Handle,'explore', pchar(PFolderDialog1.FolderName),nil,nil,SW_Restore);
end;
Удаление компонентов
Удалите из среды Delphi все установленные компоненты
Указания: С помощью команды File - Open откройте пакет с пользовательскими компонентами, который хранится в файле "dclusr из" папки Lib, которая находится в папке со средой Delphi.
Откроется окно вида:

С помощью кнопки "Remove" отобразите список установленных компонентов, удерживая Ctrl выделите все ненужные компоненты и щелкните ОК.
После удаления в окне с открытым пакетом щелкните на кнопке "Compile" для обновления иконок на панели компонентов.
Закройте окно с пакетом и подтвердите сохранение изменений.
Убедитесь, что на закладке Samples исчезли иконки всех пользовательских компонентов.