Цель урока: научить реализовывать стандартный интерфейс пользователя средствами IDE Lazarus.
Задачи урока.
Образовательные:
научить учащихся создавать строку меню;
научить учащихся создавать контекстное меню;
закрепить навыки написания программ.
Развивающие:
развитие внимания, памяти, логического мышления, самостоятельности;
формирование умений анализировать, сравнивать, выделять главного.
Воспитывающие:
воспитание информационной культуры, дисциплины, усидчивости, уверенности в себе;
воспитание творческого подхода к работе, умения экспериментировать;
формирование целеустремленности, аккуратности при работе на компьютере.
Деятельность учителя
Деятельность учащихся
Опрос домашнего задания.
Объясняет новую тему с применением интерактивной доски.
Организует работу учащихся за компьютерами.
Следит за ходом выполнения работы.
Отвечаю на вопросы учителя во время опроса.
Слушают новую тему, конспектируют, задают вопросы.
Работают за компьютерами.
Записывают домашнее задание.
I. Организационный момент.
II. Постановка целей и задач урока.
III. Проверка домашнего задания.
Операторы управления.
Операторы повторения.
Процедуры.
Функции.
IV. Изучение новой темы.
IV-I Теоретическая часть
Невизуальные компоненты
Большинство приложений имеет меню, практически для каждого объекта в любой момент времени можно вызвать контекстное меню. Тем самым интерфейс приложения становится более удобным. Рассмотрим этапы добавления этих компонентов в проект. Невизуальные компоненты MainMenu, PopupMenu, Timer, стандартные диалоги и т.д. не отображаются на форме во время работы приложения.
MainMenu1
MainMenu1 - предназначен для создания главного меню приложения.
Создание проходит в 3 этапа:
Помещение MainMenul на форму;
Вызов конструктора - двойной щелчок по значку или через свойство;
Определение пунктов меню.
Каждый пункт меню имеет имя (по умолчанию Menulteml, Menultem2 и т.д.) и название (свойство Caption). Сначала нужно ввести название пункта, затем он создается. Для создания, перемещения пунктов меню используется контекстное меню первого, существующего по умолчанию пункта.
PopupMenul
PopupMenul - позволяет создать контекстное меню, которое появляется по щелчку правой кнопки мыши на объекте. Это свойство имеется у всех видимых объектов. Создается аналогично. Для того чтобы связать Форму с контекстным меню в Инспекторе объектов, выберите значение PopupMenul для свойства PopupMenu.
IV-II Практическая часть
Работа у интерактивной доски.
Заполнение тетради пользования компьютером.
Ход работы.
1) Работа с объектами.
Создайте паку «Kalc».
Запустите Lazarus и сохраните проект. Под именем Kalculator.
Переименуйте созданную форму «Калькулятор».
Установите значение «biSystemMenu» в свойстве формы «BorderIcons» .
Разместите на форме 3 метки Label:
Label1 со свойством «Caption» = «Первое число»;
Label2 со свойством «Caption» = «Второе число»;
Label3 со свойством «Caption» = «Результат».
Разместите на форме 3 объекта Edit: Edit1, Edit2, Edit3 с пустым значением свойства «Text» и свойством «Name» соответственно:
Edit1 «Name» = «EditNum1»;
Edit2 «Name» = «EditNum2»;
Edit3 «Name» = «EditResult».
Разместите на форме компонент «MainMenu1» и вызовите окно настройки меню (двойной щечек по компоненту).
Создайте два пункта меню NewIteml и NewItem2 со свойством «Caption» = «Сложить» и «Разделить» соответственно.
Разместите на форме компонент «PopupMenu1» и вызовите окно настройки меню (двойной щечек по компоненту).
Для того чтобы связать Форму с контекстным меню в Инспекторе объектов, выберите значение «PopupMenul» для свойства «PopupMenu».
Создайте два пункта меню NewIteml и NewItem2 со свойством «Caption» = «Сейчас сложит!» и «Делим!» соответственно.
2) Работа с процедурами и функциями.
Напишем одну общую процедуру «Znak» с изменяемым параметром «zn» для сложения и деления.
procedure TForm1.Znak(zn: char);
label metka;
var Num1, Num2, Result: Real;
begin
//Запоминаем числа
Num1:=StrToFloat(Form1.EditNum1.Text);
Num2:=StrToFloat(Form1.EditNum2.Text);
case zn of
'+': Result:= Num1+Num2;
'/': if Num20 then Result:=Num1/Num2
else
begin
ShowMessage('Делить на 0 нельзя!');
Form1.EditNum1.Text := '';
Form1.EditNum2.SetFocus;
Form1.EditResult.Text:='';
goto metka; // переходим в начало прцедуры на метку
end;
end; //case
Form1.EditResult.Text:=FloatToStr(Result); // присваиваем результат текстовому полю и выводим результат
metka:
end;
Пишем процедуру для события «OnClick» для MenuItem1компонента «MainMenu1»:
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
Znak('+');
end;
Пишем процедуру для события «OnClick» для MenuItem2компонента «MainMenu1»:
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
Znak('/');
end;
Чтобы не писать код одного и того же события, его выбирают из списка События в Инспекторе объектов: для объекта Menultem3 (пункт контекстного меню Сейчас сложит!) для события OnClick выбираем MenuItemlClick.