Компонент tmainmenu призначений для додавання до програми головного меню, без якого не обходиться практично жодна з програм windows.
Щоб додати меню, треба вибрати на панелі компонентів standart (стандартні) компонент tmainmenu і помістити його на формі в довільному місці.
Компонент tmainmenu невізуальний, на відміну від візуальних компонентів tedit і tlabel, які в точності відповідають своїм зовнішнім виглядом в працюючій програмі.
Це означає, що хоча він видимий на формі як невеликий значок, у вікні створеної програми в такому вигляді він не з'явиться. Подання його на формі в мініатюрному вигляді просто вказує на наявність в програмі об'єкту, відповідального за меню.
Пункти меню містяться у властивості Items. Щоб почати формування пунктів меню досить двічі клацнути по компоненту на формі або натиснути на кнопку з трьома крапками у властивості Items компонента у вікні Властивості. Відкриється спеціальний редактор меню.
Розглянемо застосування нового компонента на конкретному прикладі.
Практична робота
Завдання. Додати головне меню в створений Вами раніше проект Калькулятор. В горизонтальне меню включити назви арифметичних дій: «Додавання» і «Ділення».
Хід виконання проекту
1. Відкрийте в середовищі програмування Lazarus проект Калькулятор, створений в 5 уроці.
2. Помістіть компонент MainMenu на форму.
3. Щоб почати формування пунктів меню двічі клацнути по компоненту TMainMenu1 на формі або натисніть на кнопку з трьома крапками у властивості Items компонента в інспектора об'єктів.
На формі в горизонтальному меню з'явитися перший пункт, який за замовчуванням має ім'я New Item1 (Новий Елемент1). Відкриється спеціальне вікно редактора меню.
4. В інспектора об'єктів в властивість Caption введіть ім'я першого пункту меню Додати.
5. Щоб створити наступний пункт меню, встановіть курсор на поточний елемент меню і відкрийте контекстне меню правим клацанням. Виберіть "Вставити новий пункт (після)"(Insert NewItem (after).
На формі з'явиться наступний пункт горизонтального меню.
6. В інспектора об'єктів в властивість Caption введіть назву другого пункту меню: Поділити.
7. Тепер залишилося написати програмний код, який буде виконуватися при виборі пунктів меню.
Напишемо загальну для всіх пунктів меню процедуру Znak, параметром якої буде символ арифметичної операції «+» або «/». Процедура буде отримати числові значення з полів EditNum1 і EditNum2, виконувати зазначену в якості параметра операцію і виводити отриманий результат в поле EditResult.
Текст процедури потрібно помістити в розділ Implementation після директиви {$ R * .lfm}.
procedure Znak(zn:char);
label mitka;
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 mitka;
end;
end; // casse
form1.EditResult.Text := FloatToStr(Result);
mitka:
end;
8. Напишемо обробник для пункту меню Додати. Для цього двічі клацніть на цьому пункті меню.
Програмний код буде мати наступний вигляд:
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
znak('+');
end;
У програмному коді викликається написана нами процедура Znak, в якій в якості фактичного параметра передається знак арифметичної дії.
9. Напишемо обробник для пункту меню Поділити.
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
znak('/');
10. Проект готовий. Перевірте роботу програми. Для цього введіть довільні числа в поля введення, виберіть в горизонтальному меню потрібну дію, перевірте результат.