Тема 5. Операционное меню и графика 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема 5. Операционное меню и графика



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

Операционное меню создается в главной форме (рис. 42) проекта с помощью служебной программы MENUEDITOR, вызываемой одноименной командой из меню TOOLS. (См. рис. 43)

В окне MENU EDITOR название позиции меню вводится в поле Name, а содержание команды меню – в поле Caption. Удобно все позиции одного выпадающего меню снабжать одинаковым именем Name, но различными индексами, которые вводятся в поле Index. Команды меню могут содержать так называемые «горячие» символы, с помощью которых можно обращаться к командам меню, используя функциональные клавиши. Для этого соответствующий символ в поле Caption должен быть обозначен знаком & (см. рис. 44). Если позиция меню должна работать как «флажок», то необходимо для нее включить флажок Checked, если позиция должна быть недоступна при запуске программы, для нее нужно включить флажок Enabled. Если позиция должна быть невидима, то выключить флажок Visible. Если следующая вводимая позиция меню должна быть на уровень ниже (например, для команд выпадающего меню) или выше (например, для команд основного меню), то для перехода на другой уровень следует нажать кнопку à (понизить уровень) или ß (повысить уровень). Переход на следующую строку для ввода следующей позиции меню выполняется кнопкой NEXT и щелчком по полю Caption.

Для того, чтобы открыть окно редактора кодов программы для той или иной команды меню, нужно 2-ды щелкнуть по этой команде в окне формы.

1. Открыть новый проект. Внешний вид формы показан на рис. 42. Оформить форму по образцу. Установить в форме метку. Установить для формы свойство Namemenu.

2. Выбрать команду MENUEDITOR из меню TOOLS. Заполнить окно MENUEDITOR по образцу (см. рис. 42 и 43) и нажать кнопку ОК. (Будьте внимательны! Точки.... перед содержанием позиций меню в окне MENUEDITOR не набирать!)

&программа (name=prog) нажать кнопки NEXT иà

&звезда (name=zvez, index=0) нажать кнопку NEXT

&выход (name=zvez, index=1) нажать кнопки NEXT иß

&справка (name=spr) нажать кнопки NEXT иà

&о программе (name=spravka, index=0) нажать кнопку NEXT

&разработчик (name=spravka, index=1)

3. Вызвать окно редактора для команды меню о программе, записать в процедуру для этой команды следующий программный код:

Private Sub spravka_Click(Index As Integer)

Select Case Index

Case 0

menu.Enabled=False

oprog.Show

Case 1

menu.Enabled=False

Razrab.Show

End Select

End Sub

4. Диалоговое окно (рис. 44) – это модальное окно, которое не позволяет переключаться на родительское (исходное) окно, прежде чем будет завершена работа с модальным. Для обеспечения этого свойства необходимо форме этого окна задать свойство Border Style = 3Fixed Dialog. Кроме того, в тексте программы должны быть строки, которые обеспечивают состояние недоступности родительского окна перед выводом диалогового окна на экран (свойство Enabled формы).После закрытия диалогового окна нужно восстановить доступность родительского окна и установить на нем «фокус». Для того, чтобы любое не главное окно, в т.ч. и диалоговое, появилось на экране при работе программы, необходимо в нужном месте программного кода предусмотреть строку с оператором загрузки формы и методом показа ее, т.к. при запуске программы автоматически появляется только главное окно программы. Синтаксисы оператора загрузки и метода показа формы следующие:

· Оператор загрузки: LOAD Name формы

· Метод показа: Name формы .Show

Оператор LOAD только загружает форму из файла в память, но не показывает на экране. Метод Show предназначен для показа уже загруженной формы на экране, если форма еще не загружена, то он также может и загрузить ее. Если какое-либо окно при работе с программой используется часто, то целесообразно в начале программы загрузить его оператором LOAD, а затем в нужный момент показывать на экране методом Show.

По окончании работы с диалоговым окном его необходимо скрыть и выгрузить. Оператор и метод, обеспечивающие выгрузку и скрытие формы имеют синтаксисы:

· Оператор выгрузки: UNLOAD Name формы

· Метод скрытия: Name формы .Hide

Обычно диалоговые окна вызываются командами меню, поэтому оператор LOAD и метод Show должны находиться в соответствующей процедуре выпадающего меню. Так как принято все позиции одного выпадающего меню именовать одинаковым Name, то в проекте Visual Basic 6.0 создается одна процедура с оператором Select case Index, который передает в эту процедуру значение свойства Index выбраннойпозиции меню.

Придав однажды диалоговому окну свойство модальности, нужно добавить аналогичную строку, которая возвращает доступность главной формы. В каждый момент времени какая-либо форма или объект в ней является активной, это означает, что – она «в фокусе»! По умолчанию, при вызове формы на экран в фокус попадает ее первый управляющий элемент. В некоторых случаях бывает нужно предусмотреть в тексте программы установку фокуса на какой-либо форме или объекте в ней, чтобы он был виден на экране. Для этого предназначен следующий метод:

Name объекта. SetFocus

5. Нажать кнопку добавить форму (Add Form) на панели инструментов или выбрать команду Add Form из меню Project. В проекте появится еще одна форма. Эта форма – будущее диалоговое окно, содержащее сведения о программе. (См. рис. 44) Если форма добавлена в проект ошибочно, то для ее удаления нужно вызвать на ее значке в окне проводника проекта контекстное меню и выбрать команду Remove Form. При выборе этой команды появляется запрос на сохранение удаляемой формы в отдельном файле, на который необходимо ответить.

Рисунок в форму может быть вставлен объектами Image и PictureBox, которые находятся в наборе инструментов General. Эти объекты «показывают» рисунки, если их свойству Picture присвоено как значение имя файла рисунка.

Установить в форме объект Image, присвоить свойству Picture этого объекта имя файла, содержащего рисунок (файл с рисунком должен быть предварительно создан с помощью какого-либо графического пакета и сохранен на диске или дискете; либо можно использовать любой имеющийся готовый файл рисунка). Следует иметь в виду, что объект Image не может «сжать» или «растянуть» большой или маленький по размерам рисунок до своих размеров, поэтому рекомендуется использовать рисунки, соизмеримые с размерами объекта Image и формы. В противном случае следует установить значение свойства Stretch объекта Image равным True – в этом случае «растяжение» или «сжатие» рисунков будет возможно.

Установить также в форме метку и командную кнопку ОК. Установить необходимые значения свойств этих объектов. Задать для формы свойство Name – oprog. Установить для этой формы значения свойств Minbutton– False и Maxbutton – False. Записать для кнопки ОК следующий программный код:

Oprog.Hide

menu.Enabled=True

menu.SetFocus

6. Аналогичным образом подготовить второе диалоговое окно «сведения о разработчике» (см. п.п. 4, 5). Установить в окне метки, в свойствах Caption которых записать сведения о разработчике (рис. 45); а также кнопку закрыть. Задать для формы свойство Name – razrab. Записать для кнопки закрыть следующий программный код:

Razrab.Hide

menu.Enabled=True

Menu.SetFocus

7. Добавить к проекту еще одну форму (см. рис. 46) с заголовком окна «звезда» и свойством Name – zvezda. Установить на форме 2 командные кнопки со свойствами Caption: построить звезду и ОК соответственно. (Будьте внимательны! Звезду на форме не рисовать!) Записать следующий программный код для кнопки ОК:

Zvezda.Hide

menu.Enabled=True

Menu.SetFocus

8. Создать процедуру–функцию для построения правильной звезды с помощью метода формы Line и с использованием тригонометрических функций. Для этого следует открыть раздел программного кода GeneralDeclarations в окне редактора кодов программы для формы «звезда», где описать эту процедуру–функцию:

Private Function Postr_Zvezda()



Поделиться:


Последнее изменение этой страницы: 2016-12-10; просмотров: 570; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.23.30 (0.013 с.)