У вас вопросы?
У нас ответы:) SamZan.net

Тема- Головне та контекстне меню

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 15.3.2025

Лабораторна робота №7

Тема: Головне та контекстне меню. Створення обєктів.

Ціль: Навчитися створювати та ефективно використовувати як головне так і контекстне меню. Вміти динамічно створювати об’єкти і вилучати їх. Застосовувати засоби налагодження програми, які надає система С++ Builder.

Хід роботи

  1.  Створіть папку для роботи з проектами цього заняття (наприклад Lab_8).

Створимо проект, який демонструє роботу з меню.

  1.  Створіть новий проект і збережіть його в папку Lab_8\MyMenu.

Файлу модуля форми дайте ім'я Main, а файлу проекту – MyMenu.

  1.  Формі дайте ім'я fmMain.
  2.  На форму покладіть компонент MainMenu (сторінка Standart).
  3.  Меню дайте ім'я mnEngMenu.
  4.  Виберіть властивість Items компоненту меню і в редакторі меню, що з'явилось, створіть пункти меню, так, як показано на рис. 8.1 і рис. 8.2.

Щоб написати текст нового пункту меню користуйтесь властивістю Caption даного елементу. Щоб створити новий пункт клацніть мишкою на пустій рамці де повинен бути цей пункт меню і заповніть властивість Caption відповідним написом. Щоб створити підменю меню Color в контекстному меню виберіть команду Create SubMenu (Ctrl+Right). Щоб замість пункту меню вставити лінію досить в Caption ввести символ „-” і натиснути Enter.             Рис. 8.1.

  1.  

Кожному пункту меню задайте наступні імена: FileNew, FileOpen, FileSave, FileSaveAs, FileExit, OptionsColor, ColorGreen, ColorBlue, ColorYellow.

  1.  Властивості ShortCut елементу FileExit задайте значення Ctrl+X.
  2.  Для елементу FileExit створіть обробник події OnClick і напишіть в ньому оператор Close().
  3.  Запустіть програму на виконання і перевірте її роботу.
  4.  Покладіть на форму компонент PopupMenu і дайте йому ім'я ppEngMenu.
  5.  Відредагуйте його властивість Items так, як показано на мал. 6.16.
  6.  Для пункту меню Exit створіть обробник події OnClick і впишіть в нього оператор Close().
  7.  Зв’яжіть ваше контекстне меню з формою.

Для цього значенням властивості PopupMenu форми виберіть меню ppEngMenu.

  1.  Запустіть програму на виконання і перевірте роботу контекстного меню (для його виклику натисніть праву кнопку на формі).
  2.  Розмістіть на формі кнопку і дайте їй ім'я btExit.       Рис. 8.2.
  3.  Створіть обробник події OnClick для цієї кнопки і впишіть в нього оператор Close().
  4.  

Запустіть програму на виконання і перевірте її роботу.

  1.  Припиніть роботу програми і проаналізуйте її код.

Як ви бачите, одна й та ж сама дія (завершення програми) зустрічається в програмі тричі. Кожного разу для виконання однієї й тієї ж операції створювалась нова процедура. Щоб не ускладнювати код програми подібними процедурами, використаємо компонент ActionList.

  1.  Вилучіть всі обробники подій, які ми створили в цьому проекті.

Увага!!! Щоб вилучити обробник достатньо вилучити текст, який ми писали в ньому (тобто оператори Close) і відкомпілювати проект.

  1.  Помістіть на форму компонент ActionList, двічі клацніть по ньому мишкою і в вікні, що з'явилось виконайте команду New Action.
  2.  Елементу Action1 в інспекторі об’єктів задайте значення властивості Caption рівним „Вихід”.
  3.  Нашій дії Action1 дайте ім'я acExit.
  4.  Значенням властивості ShortCut властивості дії виберіть Ctrl+X.
  5.  Двічі клацніть на дії acExit і в заготовці впишіть оператор Close().
  6.  В властивості Action кнопки і пункту Exit обох меню виберіть дію acExit.

Зверніть увагу як змінився після цього напис на кнопці і пункти меню Exit.

  1.  Запустіть програму на виконання і перевірте її роботу.
  2.  В компоненті ActionList1 створіть кілька нових дій і назвіть їх наступними іменами: acNew, acOpen, acSave, acSaveAs, acGreen, acBlue, acYellow. Значення властивості Caption цих дій відредагуйте таким чином, щоб воно було таким же як і ім'я дії тільки без приставки ac.    Рис. 8.3.
  3.  Для дій acSave і acSaveAs властивості Enabled задайте значення False.
  4.  Для створених дій створіть обробники події OnExecute і впишіть в них наступні оператори:

для acNew:

 ShowMessage(Виконується команда New”);

 acSave->Enabled=true;

 acSaveAs->Enabled=true;

для acOpen:

  ShowMessage(“Виконується команда Open”);

 acSave->Enabled=true;

 acSaveAs->Enabled=true;

для acSave:

 ShowMessage(“Виконується команда Save”);

для acSaveAs:

  ShowMessage(“Виконується команда Save as”);

для acGreen:

 Color=clMoneyGreen;

для acBlue:

  Color=clSkyBlue;

для acYellow:

  Color=clInfoBk;

  1.  Тепер з'єднайте кожний елемент головного і контекстного меню з відповідною дією за допомогою властивості Action цих елементів.
  2.  Перевірте роботу програми.

Зверніть увагу, пункти меню Save і Save As стають активними тільки після вибору команди New або Open.

  1.  Збережіть ваш проект.

Створимо проект, який буде динамічно створювати і вилучати об’єкти.

  1.  Створіть новий проект і збережіть його в папку Lab_8\MyDinamic.

файлу проекту дайте ім'я MyDinamic, а файлу модуля форми – Main.

  1.  Формі дайте ім'я fmMain.
  2.  На формі розташуйте компонент MainMenu і дайте йому ім'я mnMyMenu. В властивості Items цього компонента створіть два елементи меню верхнього рівня: „Створити” і „Вилучити”, давши їм імена MenuCreate і MenuDelete відповідно.
  3.  Розташуйте на формі компонент PopupMenu і дайте йому ім'я ppMenu.
  4.  Покладіть на форму компонент ActionList і створіть в ньому 4 дії і присвойте їм наступні імена: acCreateLabel, acCreateButton, acDeleteLabel, acDeleteButton. Властивості Caption цих дій задайте значення: „Створити мітку”, „Створити кнопку”, „Вилучити мітку”, „Вилучити кнопку”.
  5.  В розділі Private h-файлу програми (main.h) опишіть наступні змінні:

//компоненти, що будуть створюватись  

TLabel    *MyLabel ;

TButton   *MyButton ;

  //елементи головного меню

TMenuItem *CreateLabel ;

TMenuItem  *CreateButton ;

TMenuItem *DeleteLabel ;

TMenuItem  *DeleteButton ;

 //елементи контекстного меню

TMenuItem *CrLabel ;

TMenuItem *CrButton ;

TMenuItem *DelLabel;

TMenuItem  *DelButton ;  

  1.  Запустіть програму на виконання і перевірте як вона працює.
  2.  Створіть обробник події OnActivate для форми і напишіть в ньому наступний текст:

 //пункт 'створити мітку' в головному меню

CreateLabel=new TMenuItem(MenuCreate);

 MenuCreate->Add(CreateLabel);

 CreateLabel->Action=acCreateLabel;

//в контекстному меню

 CrLabel=new TMenuItem(ppMenu);

 ppMenu->Items->Add(CrLabel);

 CrLabel->Action=acCreateLabel;

 //пункт 'створити кнопку' в головному меню

 CreateButton=new TMenuItem(MenuCreate);

 MenuCreate->Add(CreateButton);

 CreateButton->Action=acCreateButton;

 //в контекстному меню

   CrButton=new TMenuItem(ppMenu);

 ppMenu->Items->Add(CrButton);

 CrButton->Action=acCreateButton;

  1.  Запустіть програму на виконання і перевірте її роботу.
  2.  Для кожної, створеної раніше дії створіть наступні обробники події OnExecute (при написанні коду копіюйте схожі блоки):

для дії acCreateLabel:

void __fastcall TfmMain::acCreateLabelExecute(TObject *Sender)

{

   //створюємо мітку

MyLabel=new TLabel(this);

 MyLabel->Parent=fmMain;

 MyLabel->Caption="Моя мітка";

 MyLabel->Left=100;

 MyLabel->Top=50;

 //пункт 'вилучити мітку' в головному меню

 DeleteLabel=new TMenuItem(MenuDelete);

 MenuDelete->Add(DeleteLabel);

 DeleteLabel->Action=acDeleteLabel;

 //в контекстному меню

 DelLabel=new TMenuItem(ppMenu);

 ppMenu->Items->Add(DelLabel);

 DelLabel->Action=acDeleteLabel;

//Вилучаємо пункти меню

 delete (CreateLabel);

 delete(CrLabel);

}

для дії acCreateButton:

void __fastcall TfmMain::acCreateButtonExecute(TObject *Sender)

{

   //створення кнопки

MyButton=new TButton(this);

 MyButton->Parent=fmMain;

 MyButton->Caption="Моя кнопка";

 MyButton->Visible=true;

 MyButton->Left=100;

 MyButton->Top=100;

   //пункт 'вилучити мітку' в головному меню

 DeleteButton=new TMenuItem(MenuDelete);

 MenuDelete->Add(DeleteButton);

 DeleteButton->Action=acDeleteButton;

   //в контекстному меню

 DelButton=new TMenuItem(ppMenu);

 ppMenu->Items->Add(DelButton);

 DelButton->Action=acDeleteButton;

//Вилучаємо пункти меню

 delete(CreateButton);

 delete (CrButton);

}

для дії acDeleteLabel:

void __fastcall TfmMain::acDeleteLabelExecute(TObject *Sender)

{

 //вилучаємо мітку

 delete (MyLabel);

   //пункт 'створити мітку' в головному меню

 CreateLabel=new TMenuItem(MenuCreate);

 MenuCreate->Add(CreateLabel);

 CreateLabel->Action=acCreateLabel;

   //в контекстному меню

 CrLabel=new TMenuItem(ppMenu);

 ppMenu->Items->Add(CrLabel);

 CrLabel->Action=acCreateLabel;

//Вилучаємо пункти меню

 delete (DeleteLabel);

 delete(DelLabel);

}

для дії acDeleteButton:

void __fastcall TfmMain::acDeleteButtonExecute(TObject *Sender)

{

   //вилучаємо кнопку

 delete(MyButton);

 //пункт 'створити кнопку' в головному меню

 CreateButton=new TMenuItem(MenuCreate);

 MenuCreate->Add(CreateButton);

 CreateButton->Action=acCreateButton;

 //в контекстному меню

 CrButton=new TMenuItem(ppMenu);

 ppMenu->Items->Add(CrButton);

 CrButton->Action=acCreateButton;

//Вилучаємо пункти меню

 delete (DeleteButton);

 delete(DelButton);

}

  1.  Запустіть програму на виконання і перевірте її роботу.
  2.  Збережіть проект.
  3.  До вашої групи проектів додайте попередні два проекти, використовуючи команду Project/Add Existing Project …
  4.  Збережіть файл групи проектів в папку Lab_8 під іменем Lab8.
  5.  Покажіть ваші проекти викладачу.

  1.  



1. Гражданское законодательство России в условиях федерализма
2.  Сильным даже при малых концентрациях резким и достаточно характерным запахом отличающимся от других зап
3. а 4 Формирование кишечной трубки
4. Челябинский государственный университет ФГБОУ ВПО ЧелГУ Костанайский филиал Кафедра права
5. Любимое дело приносит достаток
6. это медитация с ее уникальным сочетанием силы и спокойствия
7. Снежной королевы
8.  Планирование себестоимости производства и реализации продукции [2
9. УТВЕРЖДАЮ Генеральный директор ОАО Лужский ККЗ В
10. сюда по кухне носишься скоро ли ужин будет готов Скоро скоро жена старого Тролля неторопливо накрывал