Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MS_VB_dop_vozm_5_04.doc
Скачиваний:
5
Добавлен:
19.11.2019
Размер:
1.64 Mб
Скачать
    1. Варианты заданий по анимации для самостоятельной работы

Таблица 4.1.

задание

1

Движение квадрата, сторона 5, из верхнего левого угла формы в нижний правый

2

Движение квадрата, сторона 5, из верхнего правого угла формы в нижний левый

3

Движение прямоугольника, стороны 5*4, из верхнего левого угла формы в нижний правый

4

Движение прямоугольника, стороны 5*4, из верхнего правого угла формы в нижний левый

5

Движение окружности, радиус 5, из верхнего левого угла формы в нижний правый

6

Движение квадрата, сторона 5, горизонтально по центру формы справа налево

7

Движение квадрата, сторона 5, горизонтально по центру формы слева направо

8

Движение окружности, радиус 5, горизонтально по центру формы слева направо

9

Движение окружности, радиус 5, горизонтально по центру формы справа налево

10

Движение окружности, радиус 5, вертикально по центру формы сверху вниз

11

Движение окружности, радиус 5, вертикально по центру формы снизу вверх

12

Движение квадрата, сторона 4, из верхнего левого угла формы в нижний правый

13

Движение квадрата, сторона 4, из верхнего правого угла формы в нижний левый

14

Движение прямоугольника, стороны 3*4, из верхнего левого угла формы в нижний правый

15

Движение прямоугольника, стороны 3*4, из верхнего правого угла формы в нижний левый

16

Движение прямоугольника, стороны 4*3, горизонтально по центру формы справа налево

17

Движение прямоугольника, стороны 4*3, вертикально по центру формы снизу вверх

18

Движение окружности, радиус 4, из нижнего левого угла формы в верхний правый

  1. Стандартные диалоговые окна

С помощью объекта Common Dialog (Общий диалог) можно обеспечить приложение возможностью работать со стандартными диалоговыми окнами системы Windows. К стандартным окнам диалога относятся: открытие файла, сохранение файла, выбор шрифта, выбор цвета, управление печатью на принтере [2,3]. Эти окна активно используются во многих приложениях Windows.

Рассмотрим технологию использования стандартных диалоговых окон системы Windows. Каждое из этих окон обеспечивает выполнение одной из пяти следующих функций:

  • Открытие / Сохранение файла;

  • Выбор цвета;

  • Выбор шрифта;

  • Управление печатью;

Все они создаются с помощью одного объекта: Common Dialog (общий диалог). Этот элемент появляется в окне инструментария только после выполнения команды Components / Controls / Microsoft Common Dialog Control 6.0. На экранной форме объект размещается точно так же, как и любой другой. При работе приложения он невидим до тех пор, пока не активизируется соответствующий ему метод. Диалоговое окно может появляться на экране или при выборе какой-то команды меню, или при любых других событиях, например, нажатии командной кнопки.

Свойства элемента Common Dialog можно просмотреть пунктом Properties контекстного меню объекта (рис. 5.1). Свойство Flags (управление специальными функциями окна) будет при необходимости рассматриваться для тех диалоговых окон, где его значение отлично от значения по умолчанию (по умолчанию Flags=0). Свойство Action доступно только на этапе выполнения и не содержится в списке окна свойств, оно определяет вид выводимого окна. Принимает следующие значения:

0 - никакое окно не выводится;

1- вывод окна открытия файла;

2 - вывод окна «Сохранить как...»;

3 - вывод окна для задания цветовой палитры;

4 - вывод окна для задания фонтов;

5 - вывод окна Печати;

6 - запуск системы «Помощь».

Рис 5.1. Окно доступа к специфическим свойствам объекта Common Dialog

Если применяется диалоговое окно для открытия файла, то используется метод ShowOpen и свойство FileName, которое задает полный путь к выбранному файлу. Например, в некоторой программе исходные данные читаются из разных файлов в зависимости от некоторого условия. Пользователю необходимо предъявить диалоговое окно, в котором возможен выбор файла для открытия. Фрагмент программы будет выглядеть следующим образом:

Private Sub Form_Load()

Dim nam As String

CommonDialog1.ShowOpen

nam = CommonDialog1.filename

Open nam For Input As #1

End Sub

При сохранении файла для диалогового окна используется метод ShowSave.

Рассмотрим также следующие свойства элемента управления Common Dialog применительно к окну открытия (сохранения) файла (стандартные поля определяются версией языка системы Windows):

DefaultExt устанавливает или возвращает заданное по умолчанию расширение имен файлов.

DialogTitle (Заголовок окна) по умолчанию имеет значение «Открыть» (Open), но может иметь другой заголовок применительно к приложению.

FileName позволяет вывести в поле «Имя файла» (File Name) имя файла, предполагаемого по умолчанию. После закрытия окна возвращает имя выбранного пользователем файла.

Filter (Фильтр) позволяет сузить список файлов, выводимых в окне. Строка символов для описания и задания шаблонов поиска групп файлов (символы подстановки). Пример строки задания фильтра для вывода только файлов документов и текстовых файлов (обратите внимание, что перед и после символов конвейеризации « | » нет пробелов):

«Документы(*.DOC)|*.DOC|Текстовые_файлы (*.TXT)|*.TXT»

Flags – допустимые значения перечислены в файле CONSTANT.TXT и описаны в справочной системе. Примеры констант значений флага:

vbOFNAllowMultiselect - допускается множественный выбор;

vbOFNCreatePrompt - вывод окна для задания ранее несуществующего файла;

vbOFNFileMustExist - возможность ввода только имени существующего файла;

vbOFNPathMustExist - возможность ввода только существующего пути и др.

Например, следующий оператор определяет возможность ввода только имени существующего файла и существующего пути

имя_станд._окна.Flags = vbOFNFileMustExist or vbOFNPathMustExist.

Если применяется диалоговое окно для выбора цвета, то для его вызова выполняется метод ShowColor. Выбранный пользователем цвет можно определить при помощи свойства Color. При установлении свойства Flags в 2 отображается полное диалоговое окно, включая раздел цветов, определяемых пользователем. Следующий пример меняет цвет заливки FillColor элемента Shape, цвета шрифта ForeCollor элемента Label, цвет фона BackColor элемента PictureBox в зависимости от выбранного пользователем цвета:

Private Sub menu1_Click()

Dim col As Single

CommonDialog1.Flags=2

CommonDialog1.ShowColor

col = CommonDialog1.Color

Shape1.FillColor = col

CommonDialog1.ShowColor

col = CommonDialog1.Color

Picture1.BackColor = col

Label1.ForeColor = col

End Sub

Для выбора пользователем типа, стиля, цвета и размера шрифта текста применяется диалоговое окно Font. Данное окно может быть активизировано при помощи метода ShowFont. Перед вызовом метода ShowFont необходимо присвоить свойству Flags значение одной из констант, соответствующих той или иной разновидности используемых шрифтов (см. табл. 5.1).

Таблица 5.1.

Типы шрифтов

Константа

Значение

Описание

cdlCFScreenFonts

1

Экранные шрифты

cdlCFPrinterFonts

2

Шрифты принтера

cdlCFBoth

3

Шрифты экрана и принтера

cdlCFHelpButton

4

Отображение в окне кнопки помощи

cdlCFEffects

256

Поддержка эффектов зачеркивания, подчеркивания и использования цветов

Фрагмент программы для вызова диалогового окна выбора шрифтов по нажатию командной кнопки cmbFont приведен ниже:

Private Sub cmbFont_Click()

CommonDialog1.Flags = 3 + 256

CommonDialog1.ShowFont

Label1.Font.Name = CommonDialog1.FontName

Label1.Font.Italic = CommonDialog1.FontItalic

Label1.Font.Bold = CommonDialog1.FontBold

Label1.Font.Size = CommonDialog1.FontSize

End Sub

Диалоговое окно Print только задает параметры для печати, в частности, название и свойства принтера, размер бумаги и ее ориентацию, диапазон выводимых на печать страниц и т.д., но не участвует в отправлении данных на принтер. Используемый метод – ShowPrinter.

  1. Меню

В большинстве фирменных приложений, разработанных корпорацией Microsoft, присутствует линейка горизонтального меню. Рассмотрению вопросов создания линейки меню с помощью специального средства VB (редактора меню) посвящен этот раздел.

Меню представляет собой набор пунктов. Каждый пункт призван выполнять определенную задачу или совокупность близких по характеру задач, к которым пользователю приходится обращаться достаточно часто.

Для обращения к тому или иному пункту меню пользователю достаточно щелкнуть на нем мышью или нажать на соответствующие клавиши на клавиатуре (<Alt> + <подчеркнутая буква пункта меню>).

Чаще всего пункт меню состоит из подпунктов – конкретных задач из данной совокупности. Эти подпункты называют также командами меню или подменю.

Для обращения к той или иной команде меню надо щелкнуть мышью по этой строке или нажать клавишу (<Ctrl> + <указанная буква>).

Линейка меню добавляется в формы с помощью команды Menu Editor из меню Tools или нажатием соответствующей кнопки на панели инструментов.

Р едактор меню позволяет модифицировать и упорядочивать существующие, а также удалять ненужные меню. Окно редактора меню выглядит следующим образом (рис. 6.1):

Рис. 6.1. Окно редактора меню

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

Название пункта меню (имя пункта на экране) или название опции (команды) меню определяются в поле Caption. Для организации клавиши доступа к пункту меню или его опции нужно в поле Caption поставить знак & перед символом, который будет использоваться как горячая клавиша доступа. Например, запись «&File» означает, что пункт меню может быть вызван нажатием клавиш <Alt> + <F>. Если в поле Caption вместо названия ввести дефис (-), то в меню будет помещена разделительная линия, помогающая наглядно выделять группы родственных команд.

В поле Name задается имя пункта меню, которое используется для обращения к нему в программе.

После того, как введены значения в поля Caption и Name для пункта меню, нужно щелкнуть мышью по клавише Next. Название элемента списка появится в нижней части окна, где отображается структура меню. Кнопки Next, Delete, Insert и кнопки со стрелками позволяют эту структуру редактировать (рис. 6.1).

Кнопка Next включает в меню новый пункт в конец списка, кнопка Insert вставляет новый пункт меню перед текущим, кнопка Delete удаляет текущий элемент меню.

Большую роль в построении меню играют 4 кнопки с изображением стрелок:

  • перемещение по структуре

  • изменение уровня подчиненности

Например, щелчок по кнопке со стрелкой вправо сдвигает выделенный пункт меню в подчиненное положение относительно предыдущего пункта. Перед названием пункта меню появятся четыре точки, что указывает на то, что данный пункт является подпунктом предыдущего пункта меню (подменю) (рис.6.2). Щелчок по кнопке со стрелкой влево повышает уровень подчиненности пункта меню относительно предыдущего пункта. Редактор меню позволяет иметь четыре уровня подменю.

Опишем остальные элементы редактора меню.

Если планируется создать массив элементов меню, то следует заполнить поле Index (назначить каждому элементу меню свое числовое значение).

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

Свойство Enabled делает элемент меню недоступным.

С помощью флажка Visible элемент меню можно сделать невидимым. Это свойство может быть использовано для ограничения опций. Например, некоторые опции меню пользователь может увидеть только с помощью паролей.

Командам можно назначать так называемые «быстрые» клавиши (Shortcut). Они выбираются из списка соответствующего поля (рис. 6.2).

Список NegotiatePosition позволяет указать местоположение меню в форме.

Текстовое поле HelpContextId позволяет осуществить ссылку на нужную тему в файле помощи.

Windows List - флажок, при установке которого меню содержит список открытых окон в многооконном приложении (MDI- приложения).

После того как пункты меню помещены в меню (нижняя часть окна), они становятся объектами в программе. Элементы меню откликаются на событие Click, которое происходит либо при щелчке мышью по опции меню, либо при нажатии на клавиши доступа или клавиши быстрого доступа.

Рис. 6.2. Заполненное командами окно редактора меню с раскрытым списком для выбора клавиш быстрого доступа

Пример 6.1. Технологию построения меню рассмотрим на примере создания приложения, предназначенного для рисования различных геометрических фигур. Меню будет содержать пункты Масштаб, Заливка, Фигура.

Пункт Масштаб будет содержать две команды: Координаты углов (для определения размеров и положения графического окна, в котором будет изображена фигура) и Установка масштаба.

Пункт Заливка будет содержать два подпункта – Цвет и Стиль. Цвет выбирается пользователем из диалогового окна. Подпункт Стиль будет включать три команды – Сплошная заливка, Горизонтальная штриховка и Вертикальная штриховка.

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

Первоначально пункт меню Фигура \ Нарисовать недоступен до тех пор, пока не будут установлены параметры (координаты, размер) одной из фигур.

Соответствующая структура меню создана с помощью редактора меню. Фрагмент заполненного окна редактора меню приведен на рисунке 6.2.

Введем в форму объект PictureBox для изображения графических объектов. При запуске проекта на выполнение вид пользовательского интерфейса будет выглядеть так, как изображено на рисунке 6.3.

На рисунке 6.4 приведен вариант выполнения программы при следующих входных данных:

координаты графического окна:

координата X верхнего левого угла – -10

Рис. 6.3. Общий вид интерфейса, содержащего пользовательское меню

координата Y верхнего левого угла – 10

координата X нижнего правого угла – 10

координата Y нижнего правого угла – -10

для квадрата:

цвет заливки – красный

стиль заливки – горизонтальная штриховка

координата X верхнего левого угла – -5

координата Y верхнего левого угла – 5

сторона квадрата – 4

для прямоугольника:

цвет заливки – зеленый

стиль заливки – вертикальная штриховка

координата X верхнего левого угла – 2

координата Y верхнего левого угла – 2

координата X нижнего правого угла – 8

координата Y нижнего правого угла – -6

для окружности:

цвет заливки – синий

стиль заливки – сплошной

координата X центра – -5

координата Y центра – -2

радиус – 3

для овала:

цвет заливки – зеленый

стиль заливки – сплошной

координата X центра – 5

к оордината Y центра – 8

радиус – 2

Рис. 6.4. Результат выполнения программы

Программный код приложения приведен ниже.

Dim x1, y1, x2, y2, kv1, kv2, kv3, kv4 As Single

Dim Flag As Byte

Private Sub Form_Activate()

Flag = 0

End Sub

Private Sub menu11_Click() обработка пункта меню

«Масштаб/Координаты углов»

x1 = Val(InputBox("введите координату Х1")) координата х

верхнего левого угла

y1 = Val(InputBox("введите координату Y1")) ‘координата y

верхнего левого угла

x2 = Val(InputBox("введите координату Х2")) координата x

нижнего правого угла

y2 = Val(InputBox("введите координату Y2")) координата y

нижнего правого угла

menu12.Enabled = True

End Sub

Private Sub menu12_Click() обработка пункта меню

«Масштаб/Установить»

Picture1.Cls

Picture1.Scale (x1, y1)-(x2, y2)

End Sub

Private Sub menu21_Click() обработка пункта меню «Заливка/Цвет»

CommonDialog1.ShowColor

Picture1.FillColor = CommonDialog1.Color

End Sub

Private Sub menu221_Click() обработка пункта меню « Заливка

/ Стиль / Сплошная штриховка»

Picture1.FillStyle = 0

End Sub

Private Sub menu222_Click() обработка пункта меню « Заливка

/ Стиль / Горизонтальная штриховка»

Picture1.FillStyle = 2

End Sub

Private Sub menu223_Click() обработка пункта меню « Заливка

/Стиль / Вертикальная штриховка»

Picture1.FillStyle = 3

End Sub

Private Sub menu31_Click() обработка пункта меню «Фигура /

Квадрат»

kv1=Val(InputBox("Введите координату X верхнего левого _

угла"))

kv2=Val(InputBox("Введите координату Y верхнего левого _

угла "))

kv3=Val(InputBox("Введите длину стороны квадрата"))

Flag = 1

menu35.Enabled = True

End Sub

Private Sub menu32_Click() обработка пункта меню « Фигура /

Прямоугольник»

kv1=Val(InputBox("Введите координату X верхнего _

левого угла"))

kv2=Val(InputBox("Введите координату Y верхнего _

левого угла "))

kv3=Val(InputBox("Введите координату X нижнего _

правого угла"))

kv4=Val(InputBox("Введите координату Y нижнего _

правого угла "))

Flag = 2

menu35.Enabled = True

End Sub

Private Sub menu33_Click() обработка пункта меню « Фигура /

Окружность»

kv1 = Val(InputBox("Введите координату X центра"))

kv2 = Val(InputBox("Введите координату Y центра"))

kv3 = Val(InputBox("Введите радиус"))

Flag = 3

menu35.Enabled = True

End Sub

Private Sub menu34_Click() обработка пункта меню « Фигура / Овал»

kv1 = Val(InputBox("Введите координату X центра"))

kv2 = Val(InputBox("Введите координату Y центра"))

kv3 = Val(InputBox("Введите радиус"))

Flag = 4

menu35.Enabled = True

End Sub

Private Sub menu35_Click() обработка пункта меню « Фигура /

Нарисовать»

If Flag=1 Then Picture1.Line (kv1, kv2)-(kv1 + kv3, _

kv2 + kv3), , B

If Flag=2 Then Picture1.Line (kv1, kv2)-(kv3, kv4), , B

If Flag=3 Then Picture1.Circle (kv1, kv2), kv3

If Flag=4 Then Picture1.Circle (kv1, kv2), kv3, , , , 0.5

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]