Практическое занятие № 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 исчезли  иконки всех пользовательских компонентов.