Модуль реализации данных выше задач аналитической
геометрии с применением классов TMas – TMatr
Интерфейс проекта создается с помощью меню, размещенного на форме. Меню диалогового окна позволяет решать все пять поставленные задачи (рис. 12).
Для ввода исходных данных и отображения результата окно приложение должно содержать окно ввода – компонент Edit, компонент StringGrid, компоненты Label для того, чтоб дать названия кнопкам редактирования и для вывода результата. Кроме этого, необходимы кнопки «Вычислить», «Следующее» – 2 компонента BitBtn. Перечисленные элементы размещаются на форме в соответствии с направлениями нашего письма: слева-направо и сверху – вниз. Слева данные, справа управление, сверху – исходные данные, снизу – результаты. При этом целесообразно область данных результата отделить, использовав компоненту Panel и расположив ее снизу формы. На ней установим компоненту Label.
При создании проекта важным является выбор процедур z1, z2, z3, z4, z5 соответствующих номерам задач, которые вызываются обработчиком Bitbtn1Click. Каждая из процедур решает одну из поставленных задач.
Для ввода исходных данных вышеописанных задач удобно использовать компонент StringGrid. Компонент StringGrid (стр. Additional) представляет собой таблицу, ячейки которой содержат строки символов. Таблица делится на две части – фиксированную и рабочую. Фиксированная часть служит для показа заголовков столбцов и строк. Обычно фиксированная часть таблицы занимает крайний левый столбец и верхнюю строку таблицы. Однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и строк (если эти свойства имеют значение 0, таблица не содержит фиксированной части). Рабочая часть – эта остальная часть таблицы. Она может содержать произвольное количество столбцов RowCount и строк ColCount.
Центральным свойством компонента является Cells – двумерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется номером столбца и номером строки, на пересечении которых она находится (нумерация начинается с нуля).
Для таблицы StringGrid установим следующие свойства:
- FixedCols – 0; FixedRows – 0; RowCount – 1;
- Options.goEditing – true; Options.goTab – true;
- Options.goAlwaysShowEdit – true
Свойство Options.goEditing - признак допустимости редактирования содержимого ячеек таблицы. True – редактирование разрешено; Options.goTab - разрешает (True) использование клавиши <Tab> для перемещения курсора в следующую ячейку таблицы; Options.goAlwaysShowEdit - признак нахождения компонента в режиме редактирования. Если значение свойства false, то для того чтобы в ячейке появился курсор, надо начинать набирать текст, нажать клавишу <F2> или сделать щелчок мышью.
Последовательность работы с приложением просматривается следующая:
Операция 1. При запуске приложения перед пользователем должно раскрываться окно, в котором он должен выбрать в выпадающем списке одну из задач (рис. 13, а). После должно раскрываться окно, в котором он должен видеть поле StringGrid1 для ввода чисел, а также кнопки «Вычислить», «Следующая». Поскольку числа не введены, нажатие кнопок «Вычислить» и «Следующая» должно быть заблокировано (рис. 13, б).
Операция 2. Пользователь вводит числа - при вводе первых цифр кнопка «Вычислить» должна стать доступной. Соответственно, после вычисления кнопка «Вычислить» снова должна становиться недоступной (рис. 14, а, б).
Операция 3. Пользователь нажимает кнопку «Вычислить» - если числа введены верно, то при этом должно выполняться вычисление, а результат – отображаться в окне результата внизу, прикрепленной к компоненту формы «Panel». При этом необходимо блокировать изменение введенных чисел, поскольку если пользователь изменит исходные данные, то результат перестанет соответствовать вводу. Кнопка «Следующая», наоборот должна стать доступной (рис. 15, а). Если числа введены неверно, то приложение должно выводить сообщение об ошибке «Ошибка в записи числа». Также при не верности должны выйти сообщения «Переполнение» и «Ошибка при вычислениях» (рис. 15, б)
Операция 4. При выборе пункта меню «Координат центра тяжести материальных точек». При выборе данного пункта, как и пункта меню «Площадь многоугольника», становится доступным окно ввода «Edit» (рис. 16, а). Пользователь вводит число материальных точек n либо число n вершин многоугольника. Далее если число введено правильно, поле StringGrid1 становится доступным и в нем устанавливается необходимое число строк для заполнения координатами и массами или вершинами многоугольника введенного выше количества точек (рис. 16, б). Соответственно, при вводе исходных данных компонент «Edit» становится недоступной (рис. 16, в, г).
Операция 5. Пользователь нажимает кнопку «Следующая», на экран должно отобразиться исходное состояние окна приложения, как показано на рисунке 17. Далее пользователь должен выбрать пункт меню «Геометрические задачи» и выбрать в выпадающем списке одну из задач (См. рис. 13, а).
Операция 6. Пользователь нажимает в меню «Выход», приложение закрывается, причем кнопка «Выход» должна быть доступна в любой момент времени (рис 18).