Лекция № 17

Тема: "Использование внешних компонентов при конструировании интерфейсов"

 

План

1. Назначение внешних компонентов

2. Установка  и удаления внешних компонентов

3. Установка и удаления библиотек компонентов

4. Запуск внешних программ и файлов

 

1. Назначение внешних компонентов

Среда разработки Delphi имеет огромное количество компонентов, с помощью которых можно создавать приложения разных типов. Однако чаще всего стандартных свойств и методов бывает недостаточно и в этом случае приходится кое-что кодировать дополнительно, наделяя стандартные компоненты новыми возможностями (например, поле Edit с вводом только чисел).

Естественно, что такие усовершенствования нужно сохранять для следующих разработок. Зачастую такие компоненты оформляются в виде независимых элементов среды Delphi. Такие компоненты распространяются в виде одного или нескольких файлов, при установке размещают свою иконку на имеющейся или новой закладке на панели компонентов.

В Internet можно найти огромное количество таких компонентов. Чаще всего их использование значительно ускоряет и облегчает разработку программ. Однако, их использование имеет одно существенное ограничение: для изменения проекта, в котором используются такие компоненты, необходимо, чтобы они были установлены на том компьютере, где планируется редактировать проект.

Таким образом теряется независимость вашего проекта, вместе с проектом вы вынуждены будете переносить и устанавливать все используемые нестандартные компоненты.

 

2. Установка  и удаления внешних компонентов

Для удобства работы с компонентами рекомендуется сохранять их файлы в одной папке. При этом путь к такой папке должен быть прописан в среде Delphi.

 В папке с установленной средой Delphi создайте папку для компонентов (например, Components). В среде Delphi выполните команду "Tools – Environment Options". В диалоговом окне перейдите на закладку "Library" и с помощью кнопки с тремя точками раскройте поле  "Library Path".

 

 

В новом окне в текстовом поле укажите путь к созданной папке и щелкните на кнопке "Add".

 

  

В результат путь к указанной папке будет добавлен в список путей Delphi.

 

Установка компонента

Для установки компонента скопируйте файлы компонента в созданную вами папку. В среде Delphi выполните команду "Component – Install Component".

 

 

В окне в поле "Unit file name" укажите путь к файлу компонента и щелкните на кнопке ОК.

В результате откроется код компонента и появится окно запроса для подтверждения выполнения операции.

Сам компонент отобразится на закладке, имя которой можно узнать в коде компонента в процедуре "Register".

На рисунке видно, что компонент будет установлен на закладку "Samples".

 

 

После установки компонента нужно сохранить изменения в Delphi с помощью кнопки "Save".

 

Удаление компонента

Все добавляемые компоненты прописываются в специальный файл библиотеки "dclusr.dpk". Для удаления компонента выполните команду "File -  Open" и укажите файл "dclusr.dpk" из папки "Lib" с установленной средой Delphi.

Откроется окно со списком всех установленных компонентов.

 

 

 

Для удаления щелкните на кнопке "Remove", в новом окне укажите компоненты для удаления, щелкните на кнопке ОК и подтвердите удаление.

После удаления компонента нужно нажать на кнопку "Compile" для обновления файла "dclusr.dpk"  и удаление иконки компонента с закладки на панели компонентов.

При закрытии окна со списком компонентов подтвердите сохранение изменений.

 

3. Установка и удаления библиотек компонентов

Кроме отдельных компонентов существует большое количество библиотек – наборов компонентов, которые располагаются на отдельных закладках.

Такие библиотеки могут быть бесплатными и платными. Платные библиотеки можно свободно использовать при создании приложения, однако полученный EXE файл не запустится на компьютере, где данная библиотека не установлена (или будет запускаться ограниченное количество раз или дней).

Установить такие библиотеки можно двумя способами: с помощью стандартного инсталлятора Windows или с помощью файлов-пакетов. Первый способ не вызывает особых трудностей, а второй рассмотрим подробнее.

Чаще всего процедура установки таких библиотек описана в текстовом файле, который находится в папке с библиотекой компонентов. Данная процедура имеет стандартный набор действий.

 

Установки библиотеки

Папку с библиотекой компонентов нужно скопировать в папку с Delphi. С помощью команды "Tools – Environment Options" на закладке "Library" пропишите путь к этой папке.

С помощью команды "File – Open" открывайте из созданной папки поочередно файлы-пакеты с расширением "*.dpk". В появившемся окне щелкните на кнопке "Compile", а потом на кнопке "Install". В случае появления сообщений или предупреждений игнорируйте их.

 

Удаление библиотеки

Если библиотека устанавливалась через инсталлятор, то удаляется такая библиотека как любая программа через утилиту "Установка и удаления программ".

Если библиотека устанавливалась через файлы-пакеты, то для ее удаления нужно выполнить команду "Component – Install Packages".

 

 

В появившемся окне, в списке выберите имя ненужной библиотеки и щелкните на кнопке "Remove".

 

4. Запуск внешних программ и файлов

В некоторых программах существует необходимость запустить другую программу или "*.bat" файл.

Для выполнения данной операции используют команду вида:

 

WinExec ('Имя файла', состояние_окна);

 

Имя файла можно записать как константу в одинарных кавычках или как имя переменной или имя свойства внутри функции Pchar.

Состояние окна задает стиль отображения окна запускаемой программы. Параметр может принимать значение:

 

SW_Hide – окно скрыто от просмотра

SW_Restore – окно имеет обычный вид

SW_ShowMinimized – окно свернуто

SW_ShowMaximized – окно развернуто

SW_MinNoActivate – окно свернуто и не активно

SW_ShowNoActivate – окно появляется, но не активно (на заднем плане)

 

Пример. Пусть нужно запустить стандартную программу "Калькулятор".

 

WinExec ('calc.exe', SW_Restore);

 

Пусть нужно запустить программу, файл которой выбирается с помощью диалога OpenDialog.

Диалог в свойстве Filter должен иметь значения Програмы|*.exe.

Код имеет вид:

 

//если файл программы выбран

if OpenDialog1.Execute then

    //запускаем указанный файл

    WinExec (Pchar(OpenDialog1.Filename), SW_Restore);

 

Данную команду удобно использовать для запуска *.bat файлов. В самом *.bat файле могут находиться команды настройки параметров операционной системы.

 

Например, создадим *.bat файл для создания виртуального жесткого диска. Такой диск представляет собой обычную папку, которая отображается как диск. Пусть папка для диска будет носить имя "C:\Windows\Work", а сам диск будет носить имя "Z:"

Текст запускаемого *.bat файла будет иметь вид:

 

rem удаляем папку

rd  c:\windows\work /s /q

rem создаем папку

md c:\windows\work

rem отображаем папку как диск

subst z: c:\windows\work

 

Сохраним файл под именем "disk.bat"

Для запуска такого файла создадим скрытое приложение Delphi. Такое приложение запускается, но сама форма на экране не отображается. Для создания такого приложения в событии OnCreate формы напишем код:

 

//скрыть главную форму

Application.ShowMainForm:=false;

//выполнить *.bat файл

WinExec ('disk.bat', SW_Hide);

//завершить работу приложения

Application.Terminate;

 

Открытие любого файла или папки

Команда WinExec позволяет запустить только исполняемый файл(*.exe, *.bat, *.com). Если нужно открыть произвольный файл или папку, то нужно использовать одну из команд:

 

//открыть файл для просмотра

ShellExecute (Handle, 'open', 'имя файла', nil,nil, SW_Restore);

//открыть файл для печати

ShellExecute (Handle, 'print', 'имя файла', nil,nil, SW_Restore);

//открыть папку в Проводнике

ShellExecute (Handle, 'explore', 'имя папки', nil,nil, SW_Restore);

 

Если имя файла или папки задается через свойство или переменную, то запись делается через функцию Pchar.

 

Для использования указанной команды надо подключить модуль

 

ShellAPI

 

Вопросы для самоконтроля

1. Для чего используют внешние компоненты в Delphi? В чем их преимущества?

2. Как в среде Delphi прописать путь к папке с внешними компонентами?

3. Опишите процедуру установки компонента в Delphi.

4. Опишите процедуру удаления компонента в Delphi.

5. Опишите процедуру установки библиотеки компонентов в Delphi.

6. Опишите процедуру удаления библиотеки компонентов в Delphi.

7. Опишите команду запуска внешних программ в Delphi. Пример.

8. Опишите команду открытия внешних файлов для просмотра.

9. Опишите команду открытия внешних файлов для печати.

10. Опишите команду открытия произвольной папки  для просмотра.