Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 4 Использование иерархических элементов управления и диалогов. МВА.doc
Скачиваний:
4
Добавлен:
06.03.2016
Размер:
204.29 Кб
Скачать

Лабораторная работа № 4 Использование иерархических элементов управления и диалогов

Цель: Изучить методику разработки приложений в среде IDE Delphi.

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

1. Краткая теория

Для отображения иерархической информации на форме можно использовать элементы управления TTreeView. Выполнение стандартных действий: открытие и сохранение файлов, задание атрибуты шрифтов, выбор цвета палитры производится с использованием компонентов системных диалогов.

Для решения задачи необходимо использовать компоненты::

TLabel – для задания подписей элементов формы,

TTreeView - для отображения иерархических данных,

TListBox,TComboBox – для отображения элементов списка,

TButton, TBitBtn,TSpeedButton – для активизации действий,

TMemo – для вывода многострочных текстов,

TStatusBar – для вывода дополнительной информации,

TPopupMenu – для отображения контекстного меню.

Все компоненты необходимо располагать на панелях (TPanel). При разработке программного интерфейса выровнять панели относительно границ формы, а компоненты относительно границ панели с использованием свойств выравнивания и фиксации компонент относительно контейнера (Align, Anchor). Компоненты, в которых выводятся массивы и другие результаты, должны быть недоступными для изменения.

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

Примерный вид формы представлен на рис. 1. На форме использованы компоненты:

TPanel – контейнер для размещения компонентов

TSplitter – для возможности изменять размеры панелей во время работы приложения (размещается между панелями и выделяется пунктирными линиями)

TTreeView - для отображения иерархических данных (на рис. слева)

TListBox - для вывода списка по выбранному населенному пункту (на рис. внизу справа)

TButton – для активизации действий (загрузки иерархических данных и изменения шрифта отображения списка)

TOpenDialog – диалог для выбора файла с иерархическими данными

TFontDialog - диалог для выбора параметров шрифта

Рис.1 Пример формы с компонентами для отображения иерархической информации

Иерархические данные о регионах содержаться в файле region.dat (рис.2). Каждый новый уровень задается отступом клавишей Tab.

Рис. 2. Содержимое файла с иерархическими данными регионов для загрузки в TTreeView

При запуске приложения и нажатии на кнопке «Загрузить» активизируется диалог открытия файла (TOpenDialog). В диалоге должен показываться каталог с файлами (совпадает с каталогом запуска программы) и в каталоге должны отображаться только файлы с данными (файлы с расширением *.dat). Для установки указанных режимов необходимо использовать свойства диалога InitialDir и Filter. Данные из файла необходимо загружать только при выборе файла и нажатии кнопки «Открыть». Дерево должно отображаться в полностью раскрытом виде (должны быть видны все узлы). Форма с загруженной иерархической информацией приведена на рис.3

Рис. 3. Форма с загруженной информацией о регионах

Для каждого населенного пункта должны быть подготовлены файлы с перечнем улиц. Каждый файл должен иметь имя, совпадающее с названием узла, и расширение *.dat. Например, для района «Донской» список улиц содержится в файле Донской.dat (рис.4).

Рис. 4. Содержимое файла со списком улиц для района Донской

По двойному нажатию кнопки мыши на листовых узлах с названием населенного пункта необходимо загружать список улиц выбранного населенного пункта в компонент списка TListBox, предварительно очистив его. Для того, чтобы компонент реагировал на нажатие мыши только в листовых узлах, необходимо анализировать свойство выделенного узла Count. Для листовых узлов оно должно быть равно 0. Вид формы после загрузки списка улиц приведен на рис.5.

Рис. 5. Результат загрузки списка улиц для выбранного населенного пункта

По кнопке «Шрифт» необходимо активизировать диалог выбора шрифта. При нажатии в диалоге кнопки Ok необходимо установить выбранный шрифт для строк списка (рис. 6). Для списка на форме выбран шрифт Verdana, наклонный, 12.

Рис.6. Список улиц после установки выбранного шрифта