Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаРГР_Программирование.doc
Скачиваний:
5
Добавлен:
17.11.2019
Размер:
1.13 Mб
Скачать

1.2.1.3 Компонент Memo

Компонент Memo можно использовать для работы с многострочным текстом. В нашем проекте в поле этого компонента будут регистрироваться результаты вычислений.

Компонент можно найти на закладке Standard палитры компонент.

Расположите компонент Memo на форме или внутри группы «Протокол выполненных расчетов», и присвойте ему имя memProtocol.

Присвойте свойству Scroll Bars значение ssVertical. В результате в поле должна появиться полоса вертикальной прокрутки.

Свойству Read Only присвойте значение True.

1.2.1.4 Завершение работы над интерфейсом

В завершение, расположите на форме две кнопки с надписями «Выполнить расчет» и «Очистить протокол». Присвойте этим кнопкам имена btnCalculate, btnClearProtocol.

На этом этап разработки интерфейса можно закончить. Предполагаемый вид конструктора формы, полученный в результате разработки примера представлен на рисунке 1.2.

Рисунок 1.2 – Вид конструктора формы для создаваемого приложения

1.2.2Создание процедур и функций

1.2.2.1Процедура очистки протокола

Для очистки поля Memo можно использовать событие onClick для кнопки «Очистить протокол». Процедура обработки этого события представлена на рисунке 1.3.

Рисунок 1.3 - Процедура очистки протокола

В единственной инструкции этой процедуры вызывается процедура Clear (очистить) объекта memProtocol .

1.2.2.2Процедура инициализации формы

Инициализация приложения позволяет существенно ускорить отладку приложения, так как освобождает программиста от необходимости вводить исходные данные при тестировании программы. Процедура инициализации должна очищать протокол, а в поля ввода заносить числа, что позволяет сразу после запуска приложения нажимать кнопку «Выполнить расчет».

Для решения этой проблемы, прежде всего, создадим процедуру setKoef(), которая обеспечит установку начальных значений в поля ввода для переменных «а», «x» и «n», входящих в формулу. Параметрами, передаваемыми в процедуру, будут числовые значения этих переменных. В процедуре числа будут преобразовываться в строки, и заноситься в компоненты TEdit. Такое преобразование целесообразно, так как в этом случае десятичный разделитель для дробных чисел будет установлен правильно при любой настройке системы.

Так как в этой процедуре мы будем обращаться к компонентам формы edtA, edtB, edtC, а процедура не принадлежит классу формы, то в ней перед именами компонент обязательно следует указывать имя формы, разделяя эти имена точкой.

Другой способ решения этой проблемы состоит в использовании конструкции withdo, с помощью которой имя формы выносится как бы за операторные скобки beginend. Именно эта конструкция используется в процедуре setKoef(), показанной на рисунке 1.4.

Рисунок 1.4 – Процедура для инициализации полей ввода значений переменных, входящих в формулу

Теперь можно перейти к созданию процедуры инициализации формы. Эту процедуру следует связать с событием onCreate компонента frmFormula

В этой процедуре, представленной на рисунке 1.5, вначале имитируется нажатие кнопки «Очистить протокол», что приводит к вызову соответствующей процедуры.

Вторая строка тела процедуры вызывает процедуру setKoef(), в которую передаются значения переменных. Эти значения появятся в полях edtA, edtB, edtC.

Рисунок 1.5 – Процедура инициализации формы