Описание работы. Как обычно, перед началом работы необходимо создать новый проект и сохранить его в отдельном каталоге Lab4 в соответствии с рекомендациями

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

В данном приложении требуется создать одну форму, на которую необходимо поместить компоненту TPageControl со страницы Win32 палитры компонент Delphi. Эта компонента содержит несколько перекрывающих друг друга панелей с закладками типа TTabSheet. На рис. 13-15 приведен внешний вид создаваемого приложения. Рассмотрим подробнее некоторые из этапов создания экранной формы.

Непосредственно внутри формы необходимо разместить два компонента - один типа TPageControl и кнопку закрытия окна. Чтобы добавить новые закладки внутрь компонента TPageControl, необходимо на нем с помощью правой кнопкой мышки вызвать локальное меню и выбрать в нем команду New Page. После этого можно приступать к наполнению соответствующих страниц элементами управления.

Первая страница с закладкой «Ввод» предназначена для ввода списка ребер графа. Каждое ребро будет характеризоваться номерами начальной и конечной вершин, а также своим весом. Поэтому на первой странице необходимо разместить компонент TStringGrid с одной фиксированной и тремя редактируемыми колонками. Кроме того, справа можно добавить необязательные кнопки для вставки и удаления ребер. Ниже таблицы необходимо разместить компонент типа TCheckBox для указания, является ли граф ориентированным или нет.

Замечание

Нe надоедайте пользователю частыми сообщениями об ошибках. Если они могут возникать в процессе ввода символов, лучше выводите ошибки в строку статуса. Если ошибки могут возникатъ регулярно в цикле, то лучше выдать одно сообщение по завер шении цикла.

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

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

Для просмотра характеристик графа и выполнения поиска в нем необходимо сформировать матрицу смежности. Для удобства пользователя свяжем этот процесс с моментом переключения с первой страницы на другие. Для этого не- л обходимо алгоритм формирования матрицы смежности выполнить в ответ на событие OnChange компонента TPageControl. Кроме того, если пользователь переключится на страницу «Характеристики», то необходимо выдать на ней краткую информацию о количестве вершин и ребер в графе, а также выдать в таблице сформированную матрицу смежности.


Третья страница «Поиск пути» должна содержать две строки ввода для задания номеров начальной и конечной вершин, кнопки для начала поиска пути в графе по алгоритму Дейкстры и большого текстового поля типа ТМемо для выдачи результатов поиска.


В листингах 9-10 приведены тексты файлов проекта и модуля.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: