Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 159; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.209.95 (0.044 с.) |