Урок 9. Компонент Меню (TMainMenu)

Урок из серии «Программирование для школьников в среде Lazarus»

Компонент TMainMenu предназначен для добавления к программе главного меню, без которого не обходится практически ни одно из приложений Windows.

Чтобы добавить меню, надо выбрать на панели компонентов Standart (Стандартные) компонент TMainMenu и поместить его на форме в произвольном месте.

Компонент TMainMenu невизуальный, в отличии от визуальных компонентов TEdit и TLabel, в точности соответствующих своему внешнему виду в работающей программе.

Это означает, что хотя он виден на форме как небольшой значок, в окне созданной программы в таком виде он не появится. Представление его на форме в миниатюрном виде просто указывает на наличие в программе объекта, ответственного за меню.

Компонент TMainMenu

Пункты меню содержатся в свойстве Items. Чтобы начать формирование пунктов меню достаточно дважды щелкнуть по компоненту на форме или нажать на кнопку с многоточием в свойстве Items компонента в окне Свойства. Откроется специальный редактор меню.

Редактор меню

Рассмотрим применение нового компанента на конкретном примере.

 Практическая работа

Задание. Добавить главное меню в созданное Вами ранее приложение Калькулятор. В горизонтальное меню включить названия арифметических действий: «Сложить» и «Разделить».

Использование компонента Меню (TMainMenu)

Ход выполнения проекта

1. Откройте в среде программирования Lazarus проект Калькулятор, созданный в 5 уроке.

2. Поместите компонент  MainMenu на форму.

3. Чтобы начать формирование пунктов меню дважды щелкнуть по компоненту TMainMenu1 на форме или нажмите на кнопку с многоточием в свойстве Items компонента в инспекторе объектов.

На форме в горизонтальном меню появится первый пункт, который по умолчанию имеет имя New Item1 (Новый Элемент1).  Откроется специальное окно редактора меню.

Компонент Меню (TMainMenu)

4. В инспекторе объектов в свойство Caption введите имя первого пункта меню Сложить.

5. Чтобы создать следующий пункт меню, установите курсор на текущий элемент меню и откройте контекстное меню правым щелчком. Выберите «Вставить новый пункт (после)».

Добавление новых пунктов в меню. Компонент Меню (TMainMenu)
На форме отобразится следующий пункт горизонтального меню.

6. В инспекторе объектов в свойство Caption введите название второго  пункта меню: Разделить.

7. Теперь осталось написать программный код, который будет выполняться при выборе пунктов меню.

Напишем общую для всех пунктов меню процедуру Znak, параметром которой будет символ арифметической операции «+» или «/». Процедура будет  получить числовые значения из полей EditNum1 и EditNum2, производить указанную в качестве параметра операцию и выводить  полученный результат в поле EditResult.

Текст процедуры нужно поместить в раздел Implementation после директивы {$R *.lfm}.

procedure Znak(zn:char);
label metka;
var result, num1, num2:real;
begin
    num1:=StrToFloat(form1.editNum1.text);
    num2:=StrToFloat(form1.editNum2.text);
    case zn of
    '+': result:=num1 + num2;
    '/': if num2<> 0 then result:=num1/num2;
    else
      begin
       showMessage('Делить на 0 нельзя!');
       form1.editNum2.text := '';
       form1.editNum2.SetFocus;
       form1.editResult.text := '';
       goto metka;
      end;
   end; // casse
   form1.EditResult.Text := FloatToStr(Result);
   metka:
end;

8. Напишем обработчик для пункта меню Сложить. Для этого дважды щелкните  на данном пункте меню.

Программный код  будет иметь следующий вид:

procedure TForm1.MenuItem1Click(Sender: TObject);

begin
   znak('+');
end;

В программном коде вызывается написанная нами процедура Znak, в которой в качестве фактического параметра передается знак арифметического действия.

9. Напишем обработчик для пункта меню Разделить.

procedure TForm1.MenuItem1Click(Sender: TObject);

begin
   znak('/');
end;

10. Проект готов. Проверьте работу приложения. Для этого введите произвольные числа в поля ввода, выберите в горизонтальном меню нужное действие, проверьте результат.

До встречи в следующем уроке!

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии