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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 1.2.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. кваліфікаційний рівень магістр 20132014н
2. тема обучения Период место создатель Особенности формы организации учебной работы.html
3. .11.10 14.11.10 14
4. Археология русской философии
5. Тема 1. Основные понятия и методы теории информатики и кодирования 1.html
6. Реферат- Расчет клиноременной передачи
7. ции. слиз. Обек при проведении луч терапии диагка профка лечие
8. на тему- Теория. Виды и формы связей между явлениями
9. тема- Белки и их значение для человека Выполнил- студент 1го курса 109группы По специальнос
10. ВВЕДЕНИЕ Электронные приборы СВЧ и квантовые приборы предназначены для усиления генерации умножения ча