Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание процедуры вычисления результатаСодержание книги
Поиск на нашем сайте
Создаваемая процедура должна обеспечить суммирование чисел, записанных в полях редактирования Edit1 и Edit2, и вывод результата в поле Edit3 при нажатии на кнопку «+». Задача простая, и можно попытаться решить ее следующим образом. Активизируем окно Object Inspector, выбираем компонент btnPlus, открываем закладку Event, находим событие onClick, дважды щелкаем по пустому полю имени процедуры и получаем ее шаблон в редакторе кода.
Рисунок 1.11 – Шаблон процедуры сложения чисел Теперь остается описать суммирование чисел, записанных в полях редактирования Edit1 и Edit2, и вывод результата в поле Edit3. Можно попытаться описать это следующим образом. Edit3.text:= Edit1.Text + Edit2.Text; В этой строке мы говорим компьютеру: «Возьми то, что записано в поле Edit1, сложи с тем, что записано в поле Edit2, и результат запиши в поле Edit3». Но если такая процедура будет выполнена, то мы увидим, что она складывает не числа, а строки символов. Например, если сложить 22 и 33, то получим 2233. Для того чтобы получить правильный результат необходимо вначале строки преобразовать в числа. Для этого можно использовать стандартную функцию StrToFloat(). В эту функцию строка символов передается как аргумент. Функция преобразует ее в число и возвращает в виде результата. Выражение для сложения чисел введенных в поля Edit1 и Edit2 будет выглядеть так: StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text). Теперь результат сложения будет числом, но возникает другая проблема. Если мы запишем тело процедуры в таком виде: Edit3.text:= StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text); то при попытке выполнить сложение получим сообщение об ошибке. Вид окна редактора кода с сообщением об ошибке представлен на рисунке 1.12.
Рисунок 1.12 – Окно редактора кода с сообщением об ошибке Для того, чтобы устранить эту ошибку следует перед присваиванием преобразовать результат сложения чисел в строку символов. Для этого можно использовать функцию FloatToStr(). В результате тело процедуры станет таким: Edit3.text:= FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text)); На этом можно было бы закончить создание процедуры, но приложение с такой процедурой будет часто завершаться аварийно. Происходить это будет в тех случаях, когда пользователь ошибется при вводе исходных данных. Например, вместо цифры введет букву. Пользователь имеет право ошибаться, но приложение аварийно завершаться не должно, вместо этого оно должно сообщать пользователю о его ошибке и давать возможность ее исправить. В Delphi такая проблема решается довольно просто. Посмотрите на окончательный вариант процедуры на рисунке 1.13. В процедуре использована конструкция try … except … end, которая позволяет решить поставленную выше задачу.
Рисунок 1.13 – Окончательный вариант процедуры сложения При выполнении такой конструкции Delphi будет пытаться выполнить инструкции, записанные между служебными словами try и except. Если проблем при этом не возникнет, то инструкции, записанные между словами except и end, будут проигнорированы. Но если возникает исключительная ситуация, то Delphi не прерывает выполнение приложения, а переходит к выполнению инструкций между словами except и end. В нашем примере, в случае возникновения исключительной ситуации, на экране появится окно с сообщением «Ошибка в исходных данных». Есть одна особенность в тестировании приложений с обработкой исключительных ситуаций. Если вы запускаете приложение из ИСР, то Delphi обработает исключение раньше вашего приложения, выдаст сообщение об ошибке, и приостановит работу приложения. Для того, чтобы продолжить работу приложения и увидеть его реакцию на ошибку, закройте окно с сообщением ИСР, и вызовите функцию главного меню Run->Run. Приложение продолжит работу, и вы увидите его реакцию на ошибку. Удобнее тестировать обработку исключений, работая с откомпилированным файлом проекта (.exe файлом), запуская его напрямую. Улучшение проекта Созданный проект решает задачи, поставленные перед ним, но и имеет некоторые недостатки. Один из них состоит в том, что при подготовке к повторным вычислениям предыдущий результат остается в поле результата, хотя исходные данные меняются. Это создает иллюзию того, что проект работает неправильно. Чтобы устранить этот недостаток, воспользуемся событием onChange для полей Edit1 и Edit2. Это событие происходит тогда, когда содержимое поля изменяется. Процедура, обрабатывающая это событие должна очищать поле Edit3. Для создания этой процедуры откройте закладку «События» в окне инспектора объектов. Выберите в окне инспектора объектов компонент Edit1, найдите событие onChange и сделайте двойной щелчок по пустому полю имени. В поле появится имя Edit1Change. Замените имя Edit1Change на имя EditChange. Такую замену мы делаем в связи с тем, что процедура будет связана не только с полем Edit1, но и с полем Edit2. Дважды щелкните по новому имени и убедитесь, что имя шаблона процедуры тоже изменилось. Далее найдите в списке объектов окна инспектора компонент Edit2, установите событие onChange и выберите из списка имен процедур имя EditChange. Теперь событие onChange обоих компонентов связано с одной и той же процедурой. Напомним, что процедура должна очищать поле Edit3, а очистку всех полей мы делали в процедуре инициализации. Написать процедуру не сложно, можно даже скопировать одну стоку из ранее написанной процедуры. На рисунке 1.14 приведено окно с текстом этой процедуры.
Рисунок 1.14 – Процедура очистки поля Edit3 Посмотрите, как работает измененное приложение. Практика программирования показывает, что улучшать проекты можно до бесконечности, но мы не пойдем по этому пути и разработку проекта на этом закончим. Сохранение проекта Для сохранения проекта целесообразно создать специальный каталог на рабочем диске, так как в состав проекта входит много файлов. Можно назвать его Calculator1. Для сохранения формы и ее модуля следует активизировать форму или текст модуля и вызвать из главного меню функцию File->SaveAs. В открывшемся диалоге сохранения файла нужно ввести имя файла. Имя должно быть понятным, поэтому рекомендуем имя UnitCalculator1. Введите имя. Убедитесь, что установлен тип файла Delphi Units(*.pas) и правильно выбрана папка для сохранения модуля. После этого нажмите клавишу «Сохранить». Для сохранения файлов проекта следует вызвать из главного меню функцию File->SaveProjectAs. В качестве имени файлов проекта рекомендуем вам имя ProjectCalculator1. Введите имя. Убедитесь, что установлен тип файла DelphiProject(*.dpr) и правильно выбрана папка для сохранения модуля. Теперь нажмите клавишу «Сохранить». После этого рекомендуем вам заглянуть в папку с проектом и убедиться, что файлы там действительно есть и размер у них не нулевой. Обязательно должны быть файлы ProjectCalculator1.dpr, UnitCalculator1.dfm, UnitCalculator1.pas. Завершите сохранение файла копированием папки с проектом на личную дискету. Сохранив проект, можете выти из Delphi. Чтобы продолжить работу с проектом, запустите Delphi и вызовите из главного меню функцию File->Open Project. В появившемся диалоге открытия файла найдите папку с файлом проекта и откройте его. 1.2.5.1 Продолжение работы с проектом на другом компьютере При переносе разработанного приложения на другой компьютер файл проекта переносить нецелесообразно. Дело в том, что в файле проекта сохраняется информация о расположении составных частей проекта на диске. Поэтому Вам придется позаботиться о том, чтобы на новом компьютере размещение проекта совпадало с прежним размещением. Чтобы упростить развертывание созданного приложения на новом компьютере можно использовать такую технологию. Запустить Delphi и удалить из проекта, созданного по умолчанию, форму и модуль формы. С помощью функции меню Project–>Add to Project добавить в проект ранее созданные формы и модули. Если форм несколько, то последней следует добавить стартовую форму. После этого можно работать с приложением. При такой технологии сохранять достаточно только файлы с расширениями.pas и.dfm. 1.3 Содержание отчета – Наименование работы. – Цель работы. – Рисунок с изображением интерфейса одного из проектов (ProjectCalculator1 или доработанного ProjectLab1). – Перечень компонент, использованных в проекте, с описанием их основных свойств. – Текст модуля с пояснениями в виде комментариев для всех его основных элементов. – Результаты тестирования проекта, в виде таблицы из трех колонок –данные и результат, в которой приводятся получаемые результаты для различных наборов данных, в том числе и ошибочных. Необходимо проверить работу приложения с целыми и вещественными числами, положительными и отрицательными, с разной формой записи, ошибочными данными. – Выводы о работоспособности приложения и о возможностях Delphi программных проектов. 1.4 Контрольные вопросы и задания – Порядок выполнения проекта. – Работа с палитрой компонент. – Работа с окном инспектора объектов. – Работа в окне редактора кода. – Свойства использованных в проекте компонентов. – События, обрабатываемее в данном проекте. – Файл проекта, его содержание и порядок выполнения. – Модуль формы, его содержание и назначение разделов. – Как сохранить проект. – Добавить в проект кнопки для вычитания деления и умножения чисел и написать процедуры обработки данных для получения соответствующего результата. – Обеспечить изменение надписи в компоненте Label1 в соответствии с выполненной операцией. – Установить на форме кнопки, позволяющие увеличить и уменьшить на 1 размер шрифта в полях для ввода данных и написать соответствующие процедуры. Рекомендованая литература 1. Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002.
|
||||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 288; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.39 (0.01 с.) |