
- •Лабораторная работа № 16.
- •Лабораторная работа № 17
- •Размещение многострочного окна вывода (tMemo)
- •Лабораторная работа № 18
- •Лабораторная работа № 19. Использование компонентов таблиц для работы с двумерным массивом..
- •Лабораторная работа № 20. Использование компонентов кнопок обычных, графических и с фиксацией.
- •1.Дано двузначное число. Определить: а) входит ли в него цифра 3;
- •Лабораторная работа № 21. Использование компонента таймер для управления при выполнении программы.
- •Запоминание времени и инициализация счетчика тактов
- •Лабораторная работа № 22. Использование компонентов зависимых и независимых переключателей.
- •Лабораторная работа №23 Использование диалоговых окон.
- •Лабораторная работа №22 Использование операторов обработки исключений.
- •Лабораторная работа №25 Создание главного и контекстного меню.
- •Содержание отчета:
- •Лабораторная работа № 26. Создание текстового файла, ввод и вывод данных.
- •Лабораторная работа № 27. Создание типизированного файла, ввод и вывод данных.
- •Подпрограммы работы с файлами
- •Настройка компонентов tOpenDialog и tSaveDialog
- •2. Работа с программой
- •Выполнение индивидуального задания
Лабораторная работа №22 Использование операторов обработки исключений.
Цель работы: Применение теоретических навыков на практике. Ознакомить учащихся с обработкой исключительных ситуации. Закрепить полученные на лекции знания. Написать и отладить программу
Теория:
Структурная обработка исключительных ситуаций - это система, позволяющая программисту при возникновении ошибки (исключительной ситуации) связаться с кодом программы, подготовленным для обработки такой ошибки.
Новое ключевое слово, добавленное в язык Object Pascal - try. Оно используется для обозначения первой части защищенного участка кода. Существует два типа защищенных участков:
try..except, try..finally
Первый тип используется для обработки исключительных ситуаций. Егосинтаксис: try
Statement 1;
Statement 2;
...
except
on Exception1 do Statement;
on Exception2 do Statement;
...
else
Statements; {default exception-handler}
end;
Для уверенности в том, что ресурсы, занятые вашим приложением, освободятся в любом случае, Вы можете использовать конструкцию второго типа. Код, расположенный в части finally, выполняется в любом случае, даже если возникает исключительная ситуация. Соответствующийсинтаксис:
try
Statement1;
Statement2;
...
finally
Statements; { These statements always execute }
end;
Задания: ВычислитьзначениеY, используяоператоры «try-except-end» или «try-finally-end». Проверка на неверный ввод данных, подкоренное выражение не отрицательное и при делении на «ноль».
Вариант №1 Вариант №2
Вариант №3 Вариант №4
Вариант №5 Вариант №6
Вариант №7 Вариант №8
Вариант №9 Вариант №10
Вариант №11 Вариант №12
Вариант №13 Вариант №14
Вариант №15
Контрольные вопросы:
Назначение оператора try..except ?
Назначение оператора try..finally ?
Что такое «исключительная ситуация»?
Лабораторная работа №25 Создание главного и контекстного меню.
Цель работы: Применение теоретических навыков на практике. Ознакомить учащихся с использованием компонента меню. Закрепить полученные на лекции знания. Написать и отладить программу
Теория:
Компонент MainMenu ,его значок находится на вкладке Standard, представляет собой строку главного меню.
Рисунок 12
После того, как значок компонента будет помещен на форму, его нужно настроить. Сначала надо определить структуру меню. Для этого необходимо двойным щелчком на значке компонента раскрыть окно редактора меню.
В начале работы над новым меню в окне редактора меню находится один-единственный прямоугольник ,который изображает новый элемент меню (свойства элемента меню отображаются в окне Object Inspector). Сначала в поле значения свойства Caption нужно ввести название меню , например Файл ,и нажать <Enter>. В результате в меню будет добавлен элемент (создан объект типа TMenuItem), а в окне редактора меню появятся два прямоугольника: снизу и справа от выбранного элемента меню. Следует обратить внимание, что по умолчанию редактор меню присваивает каждому созданному элементу меню имя, которое состоит из буквы N и порядкового номера элемента. Так, первый элемент получает имя N1, второй – N2 и т.д.
Чтобы добавить в созданное меню команду , надо выбрать прямоугольник, который находится снизу ,и в поле значения свойства Caption ввести название команды, например Открыть. Чтобы добавить раздел меню, надо выбрать тот прямоугольник , который находится справа, ив поле значения свойства Caption ввести название раздела меню ,например, Справка. В качестве примера на рисунке приведено окно редактора меню, в котором отображается меню программы MEdit.
Для создания разветвленных меню ,т.е. таких ,у которых выбор пункт меню вызывает новые списки подпунктов, щелкните по подпункту и нажмите Ctrl+вправо. Такого же эффекта можно добиться после щелчка правой кнопкой мыши на подпункте и выборе продолжения create Submenu.
Рисунок 13.
После того как структура меню будет определена, можно выполнить его окончательную настройку.
Каждый элемент меню представляет собой объект типа TMenuItem (свойства объекта приведены в таблице 13) .
Таблица 13. Свойства объекта TMenuItem.
Свойство |
Описание |
Name |
Идентификатор элемента меню |
Caption |
Название элемента меню или команды |
Bitmap |
Картинка, которая отображается слева от названия элемента меню |
Enabled |
Признак доступности элемента меню ( True – элемент доступен, false – не доступен |
ShortCut |
Функциональная клавиша или комбинация клавиш , например <Ctrl>+<z>, с помощью которой можно быстро выбрать элемент меню |
Для элемента меню можно определить событие OnClick, которое возникает при щелчке на опции или при нажатии Enter, если в этот момент данная опция была выбрана (подсвечена). Обработчик события становится доступен после двойного щелчка на опции в окне конструктора меню.
Задание:
// команда файл>>Новый
Procedure Tform1.N2Click (Sender: TObject);
Var
r : integer // идентификатор кнопки
begin
if memo.Modfied then
begin
r:=MessageDlg(‘Текст был изменён. Создать новый документ’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);
if t=mbYes then
Memo1.Clear;
End
Else Memo1.Clear;
End;
// команда файл>> Открыть
Procedure Tform1.N3Click (Sender: TObject);
Var
R:integer; //идентификатор кнопки
Begin
If Memo1.Modfield then
Begin
r:=MessageDlg(‘Текст был изменён. Открыть новый файл’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);
if r=mbNo then
exit; //продолжить работу
end;
//отобразить окно Открыть
If Opendialog1.Execute then
Begin
// пользователь выбрал файл
Memo1.Lines.LoadfromFile(Opendialog1.FileName);
FileName := Opendialog1.FileName;
Form1.Caption:= ‘MEdit - ’ + FileName;
End;
End;
// команда файл>> Сохранить как
Procedure TForm1.N4Click(Sender:TObject);
Begin
SaveDialog1.FileName:=FileName;
If SaveDialog1.Execute then
// сохранить текст в файле
Memo1.Lines.SaveToFile (FileName);
End;
// команда файл >> Выход
Procedure TForm1.N5Click (Sender: TObject);
Var
R:integer; //идентификатор кнопки
Begin
If Memo1.Modfied then
Begin
r:=MessageDlg(‘Текст был изменён. Завершить работу’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);
if r=mbYes then
Close; // завершить работу программы
End;
End;
Procedure TForm1.FormCloseQuery (Sender: TObject; var CanClose: Boolean);
Var
R:integer; //идентификатор кнопки
Begin
If Memo1.Modfied then
Begin
r:=MessageDlg(‘Текст был изменён. Завершить работу’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);
if r=mbNo then
CanClose; //не завершать работу программы
End;
End;
Индивидуальные задания
Задание №1
Организуйте построение 4-х рисунков с помощью пунктов главного меню.
Организуйте построение 2-х графиков функций с помощью пунктов контекстного меню
Организовать пункты лабораторных работ главного меню
Организовать пункты лекционного материал контекстного меню
Организовать пункты электронного журнала главного меню
Организовать пункты студенческого отдела контекстного меню
Организовать пункты магазина сотовой связи главного меню
Организовать пункты магазин игрушек контекстного меню
Организовать пункты автомобильного салона главного меню
Организовать пункты магазина запчастей для автомобилей контекстного меню
Организовать пункты контекстного меню библиотеки
Организовать пункты главного меню для работы администратора ресторанного бизнеса
Организовать пункты контекстного меню заведующего отделения
Организовать пункты контекстного меню изменения цвета формы
Организовать пункты контекстного меню изменения картинки
Задание №2
Разработать интерфейс приложения с применением компонентов: MainMenu, PopupMenu, StringGrid
Разработать алгоритм решения задачи в соответствии с вариантом задания.
Реализовать разработанный алгоритм в рамках ранее созданного интерфейса.
Проверить работоспособность программы с помощью тестового набора данных.
Оформить отчет и сдать работу преподавателю.