Пример разработки программы, реализующей расчетную методику, страница 3

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

4.  Обработчик кнопки Сохранить сохраняет содержание компонента Memo1 в текстовый файл с использованием компонента сохранения файла SaveDlg1:

5.  Настройте компонент для отображения только текстовых файлов и задайте расширение по умолчанию *.txt

6.  Проверьте работу программы: выполните расчет, сохраните результаты расчета в файле, откройте файл протокола расчета в Блокноте.

3 Дальнейшая разработка программы

На данный момент программа решает задачу, сформулированную в п. 1.1. Однако возможно дальнейшее улучшение программы:

1.  Использование базы данных для хранения справочных данных по плотности материалов с предоставлением возможности для пользователя последующего добавления этой информации.

2.  Предоставлением возможности для пользователя последующего добавления новых видов тел и формул расчета их объемов.

3.  Визуализация тел в 2D и 3D режиме.

4.  Возможность расчета массы тел сложной формы:

а.  импорт геометрии этих тел из CAD-систем б.  создание сложной твердотельной модели тела в этой же программе

5.  и т.д.

При дальнейших модификациях программы желательно сохранять предыдущий вариант отдельно.

3.1 Использование базы данных

При программировании баз данных в Delphi возможно использование различных типов СУБД и механизмов доступа к ним.

В рассматриваемой программе выбор делается в пользу Access и механизма доступа ADO.

3.1.1 Создание базы данных

1.  Создайте с использованием Access новую базу данных RaschetDB.mdb в папке, где находится исполнимый файл разрабатываемой программы.

2.  Создайте таблицу Material следующей структуры

3.  Занесите в таблицу следующие данные

4.  Закройте Access

3.1.2 Подключение к базе данных

1.  Создайте Data Module, который будет содержать компоненты работы с базой данных

2.  Задайте ему имя dmMain и сохраните под именем udmMain.pas

3.  С палитры компонентов перетащите компоненты ADOConnection и ADOTable (страница ADO), DataSource (страница DataAccess)

4.  Двойным щелчком по компоненту ADOConnection1 вызываем диалог подключения к базе данных

5.  Отключаем приглашение для ввода имени пользователя и пароля

6.  Переходим в режим работы с диаграммой

7.   

8.  Из дерева объектов вытягиваем на диаграмму все имеющиеся компоненты

9.  Данные компоненты должны быть согласованы через их свойства. Наиболее просто и наглядно это можно сделать на самой диаграмме. Для этого выбираем инструмент Property connector (Соединение через свойства).

10.  Щелкаем по ADOTable1 и перетаскиваем стрелку на ADOConnection1. Появляется стрелка между этими компонентами с подписью свойства (Connection), через которое происходит соединение. Аналогично для пары DataSet1 и ADOTable1.

11.  Осталось только указать имя таблицы для ADOTable1 – Material.

Т.о. получается

3.1.3 Создание формы для ведения справочника плотности материалов

Задаем имя формы Name – frmSprPlot и сохраняем под именем ufrmSprPlot.pas

На форму помещаем компоненты DBGrid и DBNavigator  (страница DataControls) и Button.

Указываем, что данный модуль использует модуль udmMain (File > Use unit …)

Модифицируем меню – добавляем пункт Справочники – Плотность.

Обработчик этого пункта меню – модальный показ формы frmSprPlot

Указываем, что данный модуль использует модуль ufrmSprPlot (File > Use unit …)

Переходим к модулю данных и делаем активной таблицу ADOTable1

Запускаем программу и открываем справочник Плотность

Данная форма позволяет добавлять и корректировать плотности материалов.

Чтобы колонки таблицы содержали названия по-русски двойным щелчком по ADOTable1 вызываем редактор полей таблицы

3.1.4 Использование базы данных

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

Изменим обработчик OnShow первой страницы компонента PageControl1.

Запускаем программу и проверяем заполнение списка из базы данных

Изменим описание переменной Material в модуле uMetodika на строковый тип String

Там же изменим описание переменной Plotnost на вещественный тип Real

Изменим обработчик OnChange компонента ComboBox1.

Изменим обработчик OnShow третьей страницы компонента PageControl1.

Изменим описание функции fMassa в модуле uMetodika