Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1.docx
Скачиваний:
18
Добавлен:
17.05.2015
Размер:
164.05 Кб
Скачать
  1. Индикаторы CheckBox и CheckListBox

  2. Индикатор с флажком CheckBox (закладка Standard) используется в приложениях в основном для того, чтобы пользователь мог включать и выключать какие-либо опции, или для индикации состояния.

    1. Свойство

    1. Описание свойства

    1. Примеры значений

    1. Alignment

    1. Определяет, с какой стороны от индикатора появится надпись

    1. taLeftJustify - слева, taRightJustify  - справа (значение по умолчанию)

    1. AllowGrayed

    1. Наличие третьей позиции (серый выключенный)

    1. True - трехпозиционный, False - двухпозиционный флажок

    1. State

    1. Состояние флажка

    1. cbGrayed — серый, cbUnchecked — выключен, cbСhecked — включен

  3. Табл.3

  4. Задание 2:Создатьприложение, путем установки соответствующих флажков позволяющее изменять начертания шрифта введенного текста.

  5. Будем ориентироваться на следующий вид формы:

  6. Рис.3

  7. Для вывода результата предназначается метка lbl_Result. Свойство Style компонента Label определяет стиль начертания шрифта, используемого для отображения текста, и может, в частности, принимать следующие значения:

  8. - [] – обычный;

  9. - [fsBold] – полужирный;

  10. - [fsItalic] – наклонный;

  11. - [fsUnderline] – подчёркнутый.

  12. Создадим процедуры-обработчики событий, связанные с включением и выключением флажков. Приведем пример одной из них:

  13. procedure TForm1.chB_BoldClick(Sender: TObject);

  14. begin

  15. if chB_Bold.Checked = true

  16. then lbl_Result.Font.Style := lbl_Result.Font.Style+[fsBold]

  17. else lbl_Result.Font.Style := lbl_Result.Font.Style-[fsBold];

  18. end;

  19. Свойство Style (как и многие свойства визуальных компонентов) является множеством и, следовательно, с ним можно осуществлять стандартные операции, предназначенные для множеств. В приведенном примере к текущему значению множества lbl_Result.Font.Style добавляется или исключается элемент [fsBold] в зависимости от значения свойства Checked. Тем самым обеспечивается изменение начертания шрифта, которым отображается текст метки lbl_Result.

  20. Напишите процедуры для оставшихся компонентов CheckBox.

  21. Обработчики исключений

  22. В Delphi предусмотрены средства перехвата ошибок, возникающих во время выполнения программы. Например, при расчёте математических выражений, содержащих вычисления в знаменателе, можно получить деление на 0. Средство защиты от подобных ситуаций называется обработчиком исключений и может применяться в двух версиях:

  23. 1 версия:

  24. try

  25. {Защищенные операторы};

  26. except

  27. {операторы обработки исключения}

  28. on [идентификатор_исключения:]тип_исключения do

  29. begin [операторы_обработки_исключения;] end;

  30. [else

  31. {операторы обработки исключения по умолчанию}

  32. ]

  33. end; // try

  34. 2 версия:

  35. try

  36. {Защищенные операторы};

  37. finally

  38. { Операторы, которые должны быть выполнены даже в случае ошибки }

  39. end; // try

  40. Операторы, следующие за ключевым словом try, называются защищенными операторами и реализуют нормальную логику программы. Try используется для отметки начала блока кода, которые перехватывающего ошибки. В приложениях, использующих модуль SysUtils, исключение генерируется, когда происходит ошибка или другое событие, нарушающее нормальную работу программы. В этом случае управление передаётся соответственно или к finally, или к except разделу.

  41. В версии 1, когда управление передается в раздел except, приложение пытается определить обработчик, применимый для текущего исключения. Если поиск успешен, то выполняются его операторы, после этого объект исключения автоматически уничтожается. Если применимый обработчик не найден, то выполняется раздел else, содержащий обработчик по умолчанию (если он есть). Затем выполнение программы продолжается, начиная с оператора, следующего за блоком except (т.е. расположенного за ключевым словом end).

  42. Приведем некоторые типы исключений (всего имеется сотни классов исключений):

  43. {Здесь будет таблица исключений}

  44. В версии 2 если в любом из операторов блока try возникает исключительная ситуация, то управление пере­дается первому оператору блока finally. Если же исключительная ситуация не возникла, то последовательно выполняются все операторы обоих блоков. Версия tryfinally применяется для выполнения всех необходимых действий перед передачей управления на следующий уровень обработки ошибки или глобальному обработчику. В результате таких действий может произойти, например, освобождение опера­тивной памяти или закрытие файла. Эта конструкция не обрабатывает объект исключительной ситуации и не удаляет его, а выполняет действия, которые должны быть осуществлены даже в случае возникновения ошибки.

  45. Рассмотрим пример: Вычислить значение функции .

  46. Рассмотрим фрагмент кода:

  47. var y:real;

  48. begin

  49. try

  50. y:=sqrt(StrToFloat(edt_x.text))/

  51. StrToFloat(edt_z.text);

  52. Edt_y.text:=FloatToStr(y);

  53. except

  54. on EZeroDivide do

  55. MessageDlg('Ошибка. Деление на 0!!!', mtError, [mbCancel],0);

  56. on EMathError do

  57. MessageDlg('Ошибка. Действительный корень из отрицательного числа не существует!!!', mtError, [mbCancel], 0)

  58. else

  59. MessageDlg('Ошибка!!!',mtError,[mbCancel],0);

  60. end; // try

  61. end;

  62. Запустим подготовленный пример из среды разработки Delphi. При вводе исходных данных, не соответствующих ОДЗ функции (например, ), мы увидим результат, не соответствующий нашим ожиданиям. Дело в том, что среда Delphi по умолчанию сама перехватывает ошибки. Для отключения режима интегрированной отладки сделаем следующее: в менюTools→ Options→Debugger Options, и на вкладке General снимем флажок Integrated debugging (рис.4).

  63. Рис.4

  64. Протестируйте программу с особыми данными еще раз.

  65. При запуске уже готового exe-файла приложения вне среды разработки Delphi структура try срабатывает должным образом.

  66. Лабораторная работа №1. Табулирование функции

  67. В соответствии с указанным вариантом протабулировать значения функции.

  68. Возможный вид главной формы

  69. Рис.7

  70. На форму в обязательном порядке поместить следующие компоненты:

  • главное меню(компонент MainMenu) с пунктами

  • вычисления (команды: табулировать функцию, очистить поле вывода результатов),

  • завершить работу программы,

  • об авторе;

  • контекстное меню (компонент PopupMenu, закладка Standard) для области просмотра (с пунктом ‘”Это полеMemo”);

  • группу переключателей, с помощью которых задать способ вывода результатов (на экран, в файл), если не один из способов не выбран, меню “табулировать функцию”не должно быть доступным.

  • поля ввода исходных данных;

  • область просмотра (компонент Memo), которая должна снабжаться вертикальной полосой прокрутки и служить только для вывода информации;

  • компонент Chartс закладкиTeeChart Std.

  1. Приложение должно защищать поля ввода исходных данных от внесения данных, не являющихся вещественными числами. Область просмотра не должна быть доступна для редактирования. Следует обработать все возможные исключительные ситуации.

  2. Варианты заданий:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]