Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конструирование программ.doc
Скачиваний:
12
Добавлен:
05.05.2019
Размер:
12.37 Mб
Скачать

5.2.4 Обработка исключительных ситуаций

В процессе выполнения приложение Калькулятор возможны исключительные ситуации, связанные с отсутствием значений операндов при вычислениях, а также делением на ноль при выполнении операции деления.

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

Для обработки этих исключительных ситуаций добавим в методы обработчики событий OnClick операторы tryexcept.

Пример обработки в методе BtnDivideClick:

procedure TFormCalc.BtnDivideClick(Sender: TObject);

begin

try

EditResult.Text:= FloatToStr(

StrToFloat(EditOperand1.Text)/

StrToFloat(EditOperand2.Text));

OperatorLabel.Caption:='/';

ResultLabel.Caption :='=';

EditOperand1.SetFocus;

except

on EConvertError do

MessageDlg('Ошибка данных', mtWarning, [mbOK], 0);

on EZeroDivide do

MessageDlg('Деление на ноль', mtError, [mbOK], 0);

end;

end;

В методы BtnAddClick, BtnMinusClick, BtnMultClick следует добавить обработки исключений классов EConvertError и EIntError (класс исключений для ошибок целочисленной арифметики – деление на 0, переполнение).

5.2.5 Файлы приложения Калькулятор

Теперь перейдем в директорию, куда был сохранен проект ProjectCalc, и посмотрим, какие файлы там присутствуют. Рассмотрим назначение этих файлов:

ProjectCalc.cfg – откомпилированный файл настроек проекта

ProjectCalc.dof – файл содержит опции проекта.

Например,

RootDir = D:\Введение в конструирование программ\calculator\

ProjectCalc.dpr – файл проекта

ProjectCalc.res – файл содержит ресурсы проекта, такие как иконки, курсоры и другие

UnitCalc.pas – файл с исходным кодом модуля UnitCalc

UnitCalc.dfm – файл содержит информацию о форме

UnitCalc.ddp – вспомогательный файл модуля UnitCalc

UnitCalc.dcu – откомпилированного файл модуля UnitCalc.

Тексты файлов ProjectCalc.dpr и UnitCalc.pas приведены в Приложении.

5.3 Компоненты ввода/вывода данных StringGrid и Memo

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

5.3.1 Компонент StringGrid – таблица строк

Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки. Иконка компонента расположена в закладке Additional Палитры компонентов. Иконка и основные свойства отображения таблицы приведены на рисунке 5.10.

Рисунок 5.10 – Компонент StringGrid и его свойства

Основное свойство компонента StringGrid – это Cells:

Cells[<номер столбца>, <номер строки>] – ячейки таблицы.

На рисунке 5.11 показано отображение таблицы, свойства которой определены в Инспекторе объектов (рисунок 5.10).

Рисунок 5.11 – Компонент StringGrid и его отображение

Пример инициализации таблицы StringGrid

procedure TForm1.OnFormActivate(Sender: TObject);

begin

//Свойства таблицы приведены на рисунке 5.10

with StringGrid1 do

begin

Cells[0, 1]:= 'Строка 1';

Cells[0, 2]:= 'Строка 2';

Cells[1, 0]:= 'Столбец 1';

Cells[2, 0]:= 'Столбец 2';

Cells[3, 0]:= 'Столбец 3';

Cells[4, 0]:= 'Столбец 4';

Cells[1, 1]:= '1, 1';

Cells[2, 1]:= '1, 2';

Cells[3, 1]:= '1, 3';

Cells[4, 1]:= '1, 4';

Cells[1, 2]:= '2, 1';

Cells[2, 2]:= '2, 2';

Cells[3, 2]:= '2, 3';

Cells[4, 2]:= '2, 4';

end;

end;

Результат выполнения этой процедуры:

Полезными при разработке программ будут следующие свойства компонента StringGrid:

Col – номер столбца

ColCount – количество столбцов

Row – номер строки

RowCount – количество строк