Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8 Невизуальные компоненты Delphi.doc
Скачиваний:
7
Добавлен:
20.08.2019
Размер:
412.67 Кб
Скачать

8 Невизуальные компоненты Delphi

Невизуальные компоненты представляют собой, как прави­ло, компоненты, с помощью которых осуществляется доступ к системным ресурсам. Они отображаются только во время конст­руирования интерфейса, но не видны во время работы приложе­ния. Примером таких компонентов служит компонент Timer, который был использован при разработке игры «Жизнь». Кро­ме него к невизуальным компонентам относят диалоговые ком­поненты и компоненты-меню.

8.1. Диалоговые компоненты

В Win32 диалоговым окном называется окно стандартного размера без кнопок максимизации и минимизации. Диалого­вые окна позволяют управлять различными режимами работы программы и сообщать ей необходимую информацию. Диалого­вое окно может пересылать сообщения, задавать вопросы и принимать ответы.

Выделяют два вида диалоговых окон — модальные и немо­дальные. Модальные диалоговые окна сохраняют фокус ввода до закрытия окна. Немодальные диалоговые окна позволяют переключаться в другие окна без закрытия данного окна.

Компонент

Диалоговая панель

OpenDialog

выбор открываемого файла по шаблону

SaveDialog

создание файла

FontDialog

выбор шрифта и его характеристик

ColorDialog

выбор цвета

PrintDialog

вывод на устройство печати

PrinterSetupDialog

панель настройки устройства печати

FindDialog

панель поиска

ReplaceDialog

панель замены

OpenPictureDialog

выбор графического изображения с просмотром

SavePictureDialog

сохранение графического изображения с просмотром

Библиотека VCL Delphi содержит 10 компонентов, реализу­ющих стандартные диалоговые панели, используемые многими Windows-приложениями. Эти компоненты расположены в па­нели компонентов на странице Dialogs. Компоненты и реализу­емые ими стандартные диалоговые панели перечислены в таб­лице на предыдущей странице.

8.1.1. Основные правила использования диалоговых панелей

Работа со стандартными диалоговыми окнами осуществляет­ся в три этапа.

Вначале на форму помещается соответствующий компонент и осуществляется настройка его свойств. Настройка свойств может проходить как на этапе конструирования, так и в ходе выполнения программы. Как и для любых других компонен­тов, программист не должен заботиться о вызове конструктора и деструктора диалогового окна — эти вызовы реализуются ав­томатически в момент старта и завершения программы.

На втором этапе осуществляется вызов стандартного для диалоговых компонентов метода Execute, который отображает соответствующее диалоговое окно. Вызов этого метода обычно располагается внутри обработчика какого-либо события. На­пример, для отображения стандартного диалогового окна со­хранения файла в ответ на выбор пункта меню Файл/Сохра­нить может быть выполнен оператор:

If SaveDialogl. Execute Then ...

а обработчик нажатия кнопки Save может вызвать такой же метод у компонента TSaveDialog и т. д. Только после обращения к методу Execute на экране появляется соответствующее диалого­вое окно. Стандартное окно диалога является модальным окном, поэтому сразу после обращения к Execute дальнейшее выполне­ние программы приостанавливается до тех пор, пока пользова­тель не закроет окно.

Метод Execute является логической функцией, которая воз­вращает значение True, если результат диалога с пользователем был успешным. Проанализировав результат выполнения метода Execute, программа может выполнить третий этап — использо­вание введенных с помощью диалогового окна данных — имени файла, настроек принтера, выбранного шрифта и т. д.

Упражнение 8.1. Создайте приложение, которое использует компонент ColorDialog для изменения цвета формы.

Решение

Создайте каталог Dialogl, файл модуля сохраните в файле Main.pas, файл проекта — ChangeColor.dpr.

Поместите на форму компоненты ColorDialog и Button (из­мените значения свойства Caption на «Изменить цвет», Name — «ChangeBtn»).

Создайте обработчик события OnClick кнопки:

procedure TForml.ChangeBtnClick {Sender: TObject); begin

If ColorDialogl.Execute then

{отображение стандартного диалогового окна выбора цвета} Color:=ColorDialogl.Color;

{значение, возвращенное диалоговым окном, присваивается

свойству Color формы}

end;

Эксперимент. Сохраните файлы проекта. Запустите прило­жение. Убедитесь, что компонент ColorDialog работает как стандартное диалоговое окно выбора цвета. Определите значе­ние, возвращаемое методом Execute при выборе кнопок ОК и Cancel.

Аналогичным образом используются другие стандартные диа­логовые компоненты. Заметим, что для всех компонентов, кро­ме PrinterSetupDialog, метод Execute является функцией.

8.1.2. Компоненты OpenDialog и SaveDialog

Компонент OpenDialog позволяет выбрать открываемый файл по заданному шаблону.

Компонент SaveDialog используется для выбора имени фай­ла, в котором будет сохраняться информация.

FileName содержит маршрут поиска и выбранный файл при успешном завершении диалога;

Default Ext определяет расширение файла по умолчанию: если при задании имени файла пользователь не указал расширение, то к имени файла будетсдобавлена разделительная точка и значение этого свойства;

Filter используется для выбора файлов, отображаемых

в диалоговом окне. Для определения фильтра можно воспользоваться редактором свойства. Свойство можно устанавливать с помощью специального редактора или программно:

OpenDialogl.Filter: ='Текстовые файлы| * . txt |Файлы Паскаля|*.pas;*.dpr1;

Символы « | » служат для разделения фильтров друг от друга, а также для разделения описания фильтруемых файлов от соответствующей маски выбора;

Filterlndex указывает, какой из заданных шаблонов отображается в списке. По умолчанию значение этого свойства равно 1;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]