Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Описание практическая работы



Задание 1

1. Разместим на нашей форме компонент ToolBar, при этом установим свойство Align как alTop, тем самым привязав компонент ToolBar к верхней части формы. Теперь можно создовать кнопки на чистой панели, для этого сделаем следующее:

− кликнем правой кнопкой мыши на ToolBar1, в появившемся контекстном меню выбераем пункт " New Button", в результате появится первая кнопка;

− снова вызовем контекстное меню и выберем пункт " New Separator"
далее после сепаратора создадим ещё 3 кнопки (для этого примера достаточно).

В вашем собственном приложении, Вы можите создовать и разделять (при помощи сепаратора) кнопки в любом количестве.

2. Для оформления кнопок рисунками, разместим на форме компонент Imagelist, кликнув правой кнопкой мыши на ImageList1 выберем пункт ImageList Editor..., это вызовет появление окна редактора ImageList.

Назначение кнопок диалога ImageList Editor:

Add-добавить рисунок в список,

Delete-удалить рисунок,

Clear-очистить весь список,

Export-сохранить весь набор рисунков в файле,

OK-подтвердить выбор,

Cancel-отменить,

Apply-применить,

Help-помощь.

Выберем рисунки соответствующие темам: выход, новый, открыть, сохранить. После этого нажмем кнопку " OK".

3. Далее в свойстве Images компонента ToolBar1 выберем элемент ImageList1, тем самым разместив рисунки из ImageList1 на кнопках панели ToolBar1. Если порядок расположения рисунков на кнопках Вас не устраивает, то в свойстве ImageIndex, непосредственно самих кнопок панели ToolBar1, можно реорганизовать расположения на кнопках рисунков, изменяя это свойство для каждой кнопки отдельно.

4. Для оформления нашей панели нам осталось разместить подсказки на каждой кнопке. Для этого свойству ShowHint каждой кнопки присвоим значение true, а свойству Hint значения: " Выход", " Новый", " Открыть", " Сохранить", каждой кнопке соответственно.

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

Кликните двойным щечелчком на первой кнопке (" Выход" ), в появившемся редакторе введите следующий код:

void __fastcall TForm1:: ToolButton1Click(TObject *Sender)

{

MessageBox(0, " Будет произведён выход из программы", " Сообщение", MB_OK);

Close();

}

Событию OnClick кнопки " Новая" присвоим следующий код:

void __fastcall TForm1:: ToolButton3Click(TObject *Sender)

{

MessageBox(0, " Вы нажали кнопку Новая", " Сообщение", MB_OK);

}

Событию OnClick кнопки " Открыть" присвоим следующий код:

void __fastcall TForm1:: ToolButton4Click(TObject *Sender)

{

MessageBox(0, " Вы нажали кнопку Открыть", " Сообщение", MB_OK);

}

Событию OnClick кнопки " Сохранить" присвоим следующий код:

void __fastcall TForm1:: ToolButton5Click(TObject *Sender)

{

MessageBox(0, " Вы нажали кнопку Сохранить", " Сообщение", MB_OK);

}

6. Разместим на главной форме компонент TButton, с помощью её будем скрывать и отображать пенель инструментов, при этом если панель скрыта, то надпись на кнопке будет " Отобразить панель", а если панель видна, то надпись будет " Скрыть панель".

При первоначальной установке надписи на кнопку Button1, воспользуемся событием главной формы OnCreate и создадим следующий обработчик:

void __fastcall TForm1:: FormCreate(TObject *Sender)

{

if(ToolBar1-> Visible) Button1-> Caption=" Скрыть панель";

else Button1-> Caption=" Отобразить панель";

}

7. Теперь осталось создать обработчик нажатия на кнопку Button1, его код выглядит так:

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

ToolBar1-> Visible=! ToolBar1-> Visible;

FormCreate(Sender);

}

Если панель видна, то свойство Visible=true, при нажатии на кнопку Button1 свойство Visible принимает противоположное значение. Так же незабываем о изменении надписи на кнопке, для этого просто вызовем ранее созданную нами функцию FormCreate.

Контрольные вопросы

1. Какая панель используется для создания кнопочного меню?

2. Как на панель ToolBar заносятся кнопки?

Как оформить кнопки на панели ToolBar?

Как разместиьт подсказки к кнопкам на панели ToolBar?

5. Как сделать кнопки на панели ToolBar видимыми или невидимыми?


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

Тема: «Использование меню в приложениях».

Цель работы: Научиться использовать меню в приложениях.

Время выполнения: подготовка – 5 мин; выполнение – 255 мин.; проверка – 10 мин; всего – 270 мин.

Теоретические сведения

Компонент MainMenu - главное меню

MainMenu, расположеный на странице Standard, это невизуальный компонент, т.е. место его размещения на форме в процессе проектирования не имеет никакого значения для пользователя - он все равно увидит не сам компонент, а только меню, сгенерированное им.

Основное свойство компонента - Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов. В результате откроется окно. В этом окне вы можете спроектировать меню.

Можно создавать меню двух основных видов: главное и контекстное. Главное меню принадлежит форме и отображается под ее заголовком. Контекстное[15] меню может быть предусмотрено для самой формы и других ее объектов (которые соответствуют управляющим элементам Windows, имеющим свойство PopupMenu). Оно появляется при щелчке правой кнопки мыши на соответствующем объекте.

Редактор меню позволяет легко вставлять меню в форму. Пункты меню добавляются, изменяются или удаляются также в окне редактора[16]. Меню на форме всегда видимы, поэтому для их тестирования приложение запускать не требуется.

Принципы работы с меню очень просты. Каждому пункту меню соответствует свой объект класса TMenuItem. При выборе пункта пользователем инициализируется событие соответствующего компонента onclick и вызывается его обработчик. Имена пунктам присваиваются по умолчанию в порядке создания (свойство Name). Текст пункта соответствует свойству Caption. Если в тексте имеется символ ‘& ’, то следующий за ним символ является акселератором (горячей клавишей). Например, меню & Edit допускает активизацию при нажатии Alt+E. Если в качестве значения Caption введен только один символ ‘-’, то этот пункт служит разделителем.

Чтобы контекстное меню привязать к какому-либо объекту, следует значению его свойства PopupMenu присвоить имя меню. Если меню уже созданы, имя может быть выбрано из списка. Таким образом, одно и то же меню может быть связано с несколькими объектами. Какой из них вызвал меню, программа может определить во время выполнения, путем анализа значения свойства PopupComponent. Это удобно сделать в обработчике события OnPopup, возникающего перед каждым показом всплывающего меню на экране. Для программного обращения к меню в определенном месте программы следует вызвать метод Popup(int X, int Y), где X, Y – координаты левого верхнего угла панели меню.

Обработчики пунктов меню создаются и удаляются точно так же, как и для любых других компонентов. Если для некоторого пункта подходит уже имеющийся обработчик, то можно не повторять один и тот же код, а просто связать[17] пункт с таким обработчиком.

Если для команды меню задано значение свойству ShortCut, то код командной клавиши автоматически добавляется к ее названию. Для добавления в подменю вложенного подменю следует использовать соответствующую команду контекстного меню, активизируемого нажатием правой кнопки мыши. Если выполнение команды должно приводить к отображению модального диалога, то ее название следует заканчивать многоточием (…).

 

Описание лабораторной работы

Задание 1

1. Создайте новое приложение и поместите в него компонент MainMenu. Измените имя этого компонента на MainMenu.

2. В верхней части формы поместите горизонтальный разделитель.

3. Дважды щелкните по значку главного меню. Появится редактор меню.

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

5. Измените значение свойства Name на FileMenu.

6. Щелкните на свойстве Caption в окне инспектора объектов, наберите & File и нажмите Enter.

Амперсант (& ) используется для ввода подчеркнутого символа в название пункта меню. Подчеркнутый символ служит для ускоренного выбора пункта меню с клавиатуры путем нажатия соответствующей клавиши в сочетании с Alt. Амперсант можно размещать в любом месте текста.

После проведенных операций в редакторе меню появится пункт File (он появился и в главной форме, закрытой редактором меню), под только что созданным пунктом File появился новый пустой пункт, и такой же пустой пункт возник справа. Инспектор объектов содержит пустой компонент MenuItem, ожидая ввода значений для свойств Caption и Name. Продолжим создание меню.

6. Смените значение свойства Name нового пункта на FileNew.

7. Измените, значение свойства Caption на & New и нажмите Enter. Редактор меню снова создаст пустой пункт.

8. Повторите шаги 1 и 2 для создания пунктов меню Open. .., Save и Save As. ..

9. Теперь нам нужен разделитель меню. Разделитель (separator) это горизонтальная линия в меню, разделяющая группы пунктов. Добавление разделителя с помощью редактора меню С++ Builder выглядит очень просто. Нужно только установить для свойства Caption значение «–» (дефис). Перейдите к пустому пункту меню под Save As, введите дефис в поле Caption и нажмите Enter.

10. Добавьте в меню пункты Exit.

11. Для создания меню Edit рассмотрим более легкий путь. Сначала щелкните на пустом пункте справа от пункта File. Затем щелкните правой кнопкой мыши и выберите в открывшемся контекстном меню пункт Insert From Template. На экране появится диалоговое окно Insert Template. В диалоговом окне приведен список доступных шаблонов. Есть возможность использовать предопределенные шаблоны или создавать свои собственные. Сейчас нам нужно загрузить меню Edit, поэтому выберите из списка Edit Menu и нажмите кнопку « ОК ». В редактор меню сразу же будет вставлено полное меню Edit. На самом деле оно содержит больше пунктов, чем нужно. Удалением лишнего займемся чуть позже.

12. Давайте заодно вставим в меню Help. Щелкните на пустом пункте справа от Edit. Снова выберите в контекстном меню пункт Insert From Template и вставьте шаблон Help Menu. (He выберите по ошибке Expanded Help Menu. ). Обратите внимание, что вновь вставленные пункты уже отображены в главной форме.

13. Меню Edit, вставленное ранее, содержит слишком много пунктов. Некоторые из них никогда не будут использоваться в программе. Для того чтобы удалить пункт меню нужно:

− выбрать из меню Edit пункт Repeat < command>;

− нажать клавишу Delete или выбрать пункт Delete в контекстном меню редактора, выделенный пункт исчезнет, а оставшиеся пункты сдвинутся вверх;

− аналогичным образом удалить пункты Paste Special, Go To, Links, Objects и разделитель после Replace;

− в меню Help оставьте только Contents и About...

14. Вставка пунктов меню выполняется очень просто. Щелкнуть мышью на том пункте, над которым нужно поместить новый пункт, и нажать клавишу Insert (или выбрать Insert в контекстном меню редактора). После этого можно установить свойства Caption и Name для нового пункта.

15. Вставим еще один пункт в меню Edit:

− вызовите из меню Edit пункт Find;

− нажмите клавишу Insert (в меню возникнет новый пункт, а все лежащие под ним пункты сдвинутся вниз);

− измените значение свойства Name на EditSelectAll, а свойства Caption — на Select& All;

− в пустом пункте в нижней части меню Edit поставьте разделитель (для этого достаточно ввести в поле Caption дефис);

− снова щелкните на пустом пункте и установите для свойства Name значение EditWordWrap, а для свойства Caption & WordWrap.

16. Перемещение пунктов меню можете проделать очень легко. При этом, возможно, перемещать пункты как в пределах одного всплывающего меню, так и между различными меню. Для перемещения пунктов существуют два способа. Первый заключается в использовании буфера обмена. Операции Cut и Paste выполняются как обычно, поэтому не будем описывать их. Другой способ заключается в использовании техники drag-and-drop. При необходимости размещения пункта SelectAll под пунктом Undo проделайте следующее:

− откройте пункт Edit для вызова соответствующего меню;

− щелкните на пункте SelectAll и перетащите его, пока разделитель под Undo не окажется выделен;

− отпустите кнопку мыши, и пункт займет новое место.

17. Создание подменю не имеет каких-либо особенностей. Подменю(submenu) — это меню, которое вызывается при выборе пункта вышестоящего меню. Наличие подменю обозначается стрелкой вправо, расположенной за названием пункта. Вы можете создать подменю, выбрав в контекстном меню редактора пункт Create Submenu, или нажав одновременно Ctrl и стрелку вправо на клавиатуре. При создании подменю, справа от соответствующего пункта основного меню размещается пустой пункт. Вы можете добавлять в подменю пункты точно так же, как и при создании главного меню. Создать подменю можно также вставкой шаблона.

18. Добавить сочетания клавиш, соответствующие пунктам меню, можно изменив значение свойства ShortCut в инспекторе объектов. Для меню Edit, которое было вставлено из шаблона, сочетания клавиш уже определены. Например, пункту Cut соответствует сочетание Ctrl+X. Если вы посмотрите на меню Edit, то увидите, что за названием пункта стоит Ctrl+X. Щелкнув на пункте Cut, вы увидите, что свойство ShortCut в окне инспектора объектов также имеет значение Ctrl+X. Щелкните в столбце Value рядом со свойством ShortCut. Справа вы увидите кнопку со стрелкой. Щелкните на ней для вызова списка возможных значений. Этот список содержит практически все сочетания, которые могут когда-либо понадобиться. Чтобы установить новое сочетание клавиш, просто выберите его из списка.

Стандартным сочетанием клавиш для SelectAll является Ctrl+A, поэтому давайте установим его для этого пункта меню:

− выберите в созданном меню пункт Edit | SelectAll;

− щелкните на свойстве ShortCut в окне инспектора объектов;

− выберите Ctrl+A из списка доступных сочетаний, и теперь за названием пункта SelectAll появится Ctrl+A.

Это все, что вам нужно сделать — остальное берет на себя С++ Builder. Для использования сочетаний клавиш не требуется писать какой-либо код.

19. Давайте сделаем еще несколько действий, направленных на " облагораживание" созданного меню.

Во-первых, по умолчанию включим пункт WordWrap. Этот пункт предназначен для включения и выключения режима заворачивания слов. Когда режим заворачивания включен, пункт WordWrap отмечен. Щелкните на пункте WordWrap и установите для свойства Checked значение true. При этом рядом с названием пункта появится отметка, сообщающая, о его включении.

Во-вторых, необходимо установить значения свойств Name для всех пунктов, вставленных из шаблона. Они имеют имена по умолчанию, которые желательно заменить на более информативные. Выберите пункт Edit | Undo. Измените значение свойства Name с Undo1 на EditUndo. Можно использовать любое соглашение об именах, но будьте при этом последовательны. Повторите процедуру для пунктов Cut, Copy, Paste, Find и Replace. Потом перейдите к меню Help и измените значения свойств Name для пунктов Contents и About на HelpContents и HelpAbout.

На этом создание меню завершено. Просмотрите его еще раз и устраните замеченные ошибки. Убедившись, что меню построено правильно, закройте окно редактора меню.

20. Переименуйте главную форму приложения в TextViewer. Дополните созданное приложение панелью, содержащей кнопки New, OpenFile, SaveFile, Cut, Copy, Paste. Кнопки должны содержать соответствующие графические значки и имена. Обработчики событий для этих кнопок не писать!

21. Написать обработчик события для команды меню Help | About..., выводящий модальное окно AboutBox с информацией о приложении.

Контрольные вопросы

1. На какой странице располагается компонент MainMenu?

2. Назовите основные свойства компонента MainMenu.

3. Для чего перед названием пункта меню ставится символ &?

4. Как ввести разделитель между пунктами меню?

5. Как производится вставка пунктов меню?

6. Как произвести перемещение пунктов меню?

7. Как создать подменю?

8. Как добавить сочетание горячих клавиш?

9. Для чего служит свойство WordWrap?

 


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

Тема: «Использование стандартных диалогов в приложении».

Цель работы: Научиться использовать выпадающее меню в приложениях.

Время выполнения: подготовка – 5 мин; выполнение – 255 мин.; проверка – 10 мин; всего – 270 мин.

Теоретические сведения


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 621; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.055 с.)
Главная | Случайная страница | Обратная связь