Разработка простого приложения Delphi

Автор работы: Пользователь скрыл имя, 23 Февраля 2011 в 07:41, лабораторная работа

Описание работы

. Цель работы

Ознакомление со средой визуального программирования Delphi и разра-

ботка в ней простейших приложений.

Файлы: 1 файл

ЛАБОРАТОРНАЯ РАБОТА по дельфи.doc

— 416.00 Кб (Скачать файл)

    пример, объект TStringList содержит только 10 строк, а происходит

    обращение к одиннадцатому).

•   EMathError - предок исключений, случающихся  при выполнении

    операций с плавающей точкой.

•   EOverflow - происходит как результат  переполнения операций с

    плавающей точкой при слишком  больших величинах. Соответствует

    RunTime Error 205.

•   Underflow - происходит как результат  переполнения операций с пла-

    вающей точкой при слишком малых величинах. Соответствует

    RunTime Error 206.

•   EZeroDivide - вызывается в результате деления  на ноль.

•   EMenuError - вызывается в случае любых  ошибок при работе с

    пунктами меню для компонент  TMenu, TMenuItem, TPopupMenu и их

    наследников.

•   EOutlineError - вызывается в случае любых  ошибок при работе с

    TOutLine и любыми его наследниками.

•   EOutOfMemory - происходит в случае вызовов New(), GetMem() или

    конструкторов классов при невозможности  распределения памяти.

    Соответствует RunTime Error 203.

•   EPrinter - вызывается в случае любых  ошибок при работе с принте-

    ром.

•   EProcessorException - предок исключений, вызываемых в случае

    прерывания процессора- hardware breakpoint. Никогда не включается

    в DLL, может обрабатываться только в “цельном” приложении.

•   EBreakpoint - вызывается в случае останова на точке прерывания

    при отладке в IDE Delphi. Среда  Delphi обрабатывает это исключе-

    ние самостоятельно.

•   EFault - предок исключений, вызываемых в  случае невозможности

    обработки процессором тех или  иных операций.

•   EInvalidOpCode - вызывается, когда процессор  пытается выполнить

    недопустимые инструкции.

•   ESingleStep - аналогично EBreakpoint, это исключение происходит 

                                 18 
 

         при пошаговом выполнении приложения  в IDE Delphi.

     •   EPropertyError - вызывается в случае  ошибок в редакторах свойств,

         встраиваемых в IDE Delphi. Имеет большое  значение для написания

         надежных property editors. Определен в модуле DsgnIntf.pas.

     •   EResNotFound - происходит в случае  тех или иных проблем, имею-

         щих место при попытке загрузки  ресурсов форм - файлов .DFM в

         режиме дизайнера. Часто причиной  таких исключений бывает нару-

         шение соответствия между определением класса формы и ее описа-

         нием на уровне ресурса (например, вследствие изменения порядка

         следования полей-ссылок на компоненты, вставленные в форму в

         режиме дизайнера).

     •   EStreamError - предок исключений, вызываемых при работе с пото-

         ками.

     •   EFCreateError - происходит в случае  ошибок создания потока (на-

         пример, при некорректном задании  файла потока).

     •   EFilerError - вызывается при  попытке вторичной регистрации уже

         зарегистрированного класса (компоненты). Является, также, предком

         специализированных обработчиков  исключений, возникающих при

         работе с классами компонент.

    3.3. Восприятие ввода от пользователя

     Обратим особое внимание на одно качество, характерное для многих

 управляющих  элементов – фокус. Как определить  какое окно или поле име-

 ет  фокус ввода? В каждый конкретный  момент фокус имеет только  одно по-

 ле. Вы  можете перемещать фокус, используя  клавишу Tab или щелкая мы-

 шью  по другому компоненту. Каждый  раз когда компонент получает  или те-

 ряет  фокус, к нему приходит соответствующее  событие, которое указывает,

 что  пользователь достиг (OnEnter) или покинул  (OnExit) компонент.

     При использовании компонента Edit для ввода чисел пользователь вме-

 сто  цифры может набрать букву.  Функции преобразования вернут  код

 ошибки, что поможет определить действительно  ли введено число. Когда

 можно  выполнить такую проверку? Возможно, когда изменится значение

 блока  редактирования, когда компонент потеряет фокус или когда пользова-

 тель  щелкнет по некоторой кнопке  в диалоговой панели. Можно просматри-

 вать  входной поток в блоке редактирования  и останавливать любой нечи-

 словой  код. 
 

4. Порядок  выполнения работы 

1.   В среде программирования Delphi cоздайте новый проект, выбрав пункт

     меню File/New Application. 

                                      19 
 

2.  Сохраните  этот проект в папке"С:\Ваша_группа\Ваша_фамилия  Lab2".

    (Unit1.pas под новым именем Main2.pas, а Project1.dpr под новым именем

    Lab2.dpr).

3. Разработайте  приложение, обрабатывающее исключительную  ситуацию,

    согласно вашему варианту индивидуального  задания.

4. Открыть  новое приложение.

5. Создать  форму с пятью полями редактирования  и пятью соответствую-

    щими надписями, которые поясняют, какой вид проверки осуществляет

    соответствующий компонент Edit. Форма  также содержит кнопку для

    проверки содержимого первого  поля редактирования.

     Событие OnClick кнопки должно проверять  целочисленность введенного

 в первое  поле значения, например:

     var

      Number, Code : Integer ;

     begin

      if Edit1.Text <> ‘ ’ then

      begin

        val ( Edit1. Text, Number, Code) ;

         if Code <> 0 then

       begin

          Edit1. SetFocus ;

          MessageDlg (‘ Not a number in the first edit ‘ , mtError,

                        [ mbOK ] , 0 ) ;

        end ;

      end ;

     end ;

♦ При  выходе из компонента Edit2 (событие OnExit) осуществляется ана-

    логичная проверка.

     var

      Number, Code : Integer ;

     begin

      if (Sender as TEdit ). Text <> ‘ ’ then

      begin

        val ((Sender as TEdit ). Text, Number, Code) ;

         if Code <> 0 then

       begin

          (Sender as TEdit ). SetFocus ;

          MessageDlg (‘ The edit field number ‘ +

                 IntToStr ((Sender as TEdit ). Tag) +

                ‘ does not have a    valid number’ , mtError, [ mbOK ] , 0 ) ;

        end ;

      end ; 

                                        20 
 

    end ;

    Текст сообщения об ошибке  может варьироваться. 

♦   Третий компонент Edit выполняет аналогичную  проверку при каждом

    изменении его содержимого (используя  событие OnChange}.

♦   Записать код для события события OnKeyPress компонента Edit4 и про-

    верить, не является ли введенный символ числом или клавишей Back-

    space (которая имеет числовое значение 8).

    begin

      if not ( key in [ ‘0’ . . ‘9’ , # 8] } then

      begin

          Key := # 0 ;

          MessageBeep ($ FFFFFFFF) ;

      end;

    end; 

♦   Для события OnEnter компонента Edit5 записать код, в котором необхо-

    димо преобразовать введенные  символы в число с помощью  функции

    StrToInt. Использовать исключение для  обработки ошибки EConvertError. 

5. Варианты  индивидуальных заданий 

    1.   Создать программу, позволяющую  пользователю ввести два числа,

         которые программа разделит. Необходимо  поместить на форму три

         объекта класса TEdit - два для операндов,  один – для результата и

         кнопку (объект класса TButton), нажимая на которую пользователь

         выполняет деление. Исключить  попытку деления на ноль а  так же

         введения символов вместо цифр. Выдать сообщение о типе возник-

         шей ошибке.

    2.   Создать программу, вычисляющую  корни квадратного уравнения

         (ax2+bx+c=0). Необходимо поместить на  форму четыре объекта

         класса TEdit - три для коэффициентов  квадратного уравнения, один

         – для результата и кнопку (объект класса TButton), нажимая на  кото-

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

         символов вместо цифр, получение  отрицательного дискриминанта и

         ввод а = 0. Вывести при всех  типах ошибок одно и то же  сообщение.

    3.   Создать программу с “бесконечным”  циклом типа while. В цикле

         увеличивать переменную I до значения, заданного пользователем.

         При достижении этого значения  выходить из цикла с помощью  воз-

         буждения исключения EAbort. Выдать  сообщение о выходе из цикла

         в блоке Except. Необходимо поместить на форму кнопку (объект

         класса TButton), которая запускает цикл; сообщение можно выдать с

                                       21 
 

        помощью функции ShowMessage, или поместить  на форму метку

        (объект класса TLabel), в которую помещается сообщение.

Информация о работе Разработка простого приложения Delphi