назад | содержание | вперед

Элемент управления Line

Элемент управления Line — это линия, имеющая по умолчанию толщину 1. Для изменения вида линии используется свойство BorderStyle объекта Line. Оно может принимать следующие значения:

На рис. 11.1 показаны типы линии в зависимости от значения свойства BorderStyle.

Толщину линии можно задать с помощью свойства Borderwidth. Цвет линии задается свойством BorderColor.

Замечание

Более подробно элемент управления Line был рассмотрен нами в главе 8.

Рис. 11.1. Элемент управления Line

Элемент управления Shape

Для создания рамок различной формы используется элемент управления Shape (рис. 11.2). Он является только графическим контейнером обведенных элементов управления, но не контейнером в настоящем смысле этого слова. При этом форма рамки задается свойством shape объекта shape и может быть следующей:

Рис. 11.2. Элемент управления Shape

При этом для элемента управления shape, как и для Line, можно установить тип линии рамки, ее толщину и цвет.

Замечание

Более подробно элемент управления shape был рассмотрен нами в главе 8.

Элемент управления Frame

Элемент управления Frame имеет вид рамки с заголовком (рис. 11.3). Заголовок, размещаемый в рамке, задается свойством caption. Если вы не хотите, чтобы объект Frame содержал заголовок, установите для значения этого свойства пустую строку.

Объект Frame является полноценным контейнером и управляет общими свойствами объектов, помещенных в рамку. Если, например, сделать Frame невидимым, присвоив свойству visible значение False, то все объекты в рамке тоже станут невидимыми. Используя это свойство объекта Frame, и учитывая, что оно переопределяется и в режиме выполнения приложения, можно организовать, например, многостраничный ввод данных.

Свойство BorderStyle элемента управления Frame задает тип линии рамки и принимает одно из следующих значений:

При установке для свойства BorderStyle значения 0-None рамка будет отсутствовать, а соответственно, не будет и заголовка рамки.

Рис. 11.3. Элемент управления Frame

Объекту Frame можно придать объемный вид, установив для свойства Appearance значение 1-3D. Если установить значение 0-Flat, то объект принимает плоский вид (рис. 11.3).

Для объекта Frame можно установить разные цвета для фона и заголовка рамки, используя свойства BackColor и ForeColor, соответственно.

Замечание

Более подробно элемент управления Frame был рассмотрен нами в главе 8.

Свойство Picture

Чтобы разместить в форме графическое изображение, не обязательно выбирать графические объекты. Можно просто воспользоваться свойством picture формы. Для вставки графического изображения в форму необходимо нажать

кнопку с тремя точками в свойстве picture, а затем в открывшемся диалоговом окне Load Picture (Загрузить изображение) (рис. 11.4) выбрать файл требуемого изображения.

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

Рис. 11.4. Диалоговое окно Load Picture поиска изображения для свойства Picture

Свойство picture доступно и в режиме выполнения приложения. Простым присвоением можно заменить или убрать изображение из формы.

Объекты для работы с изображениями

Для размещения в форме графических изображений используются объекты image и picture. Им соответствуют следующие значки на панели элементов управления:

Значок

Название

Создаваемый объект

Image

Image

PictureBox

Picture


 

Однако в качестве изображений, помещаемых в эти объекты, можно использовать только файлы определенных типов. Допустимые типы файлов изображений представлены в табл. 11.1.

Таблица 11.1. Допустимые типы файлов изображений для графических объектов

Описание файла

Тип файла (расширение)

Битовый растровый файл

bmp

Независимый растровый файл

dib

Файл значка

ico,cur

Метафайл

wmf

Расширенный метафайл

emf

Растровый файл

gif

Растровый сжатый файл

jpg, Jpeg


 

Изображение размещается в объекте image так же, как объект в форме, то есть при помощи свойства picture. Однако в отличие от размещения изображения непосредственно в форме, изображение в объекте image пропорционально изменяет свои размеры.

Изменением размера управляет свойство Stretch. Если это свойство имеет значение False, то объект image принимает размеры в соответствии с размером изображения. Если значение равно True, то размеры изображения изменяются в соответствии с размерами объекта.

В отличие от image, элемент управления picture может работать как полноценный контейнер. Он может содержать другие элементы управления, в нем можно рисовать, используя графические методы Line, circle, point, pset, или выводить текст, используя метод print.

Элемент управления picture обладает свойством visible. При этом все изображения, помещенные в picture, становятся видимыми или невидимыми в зависимости от установленного значения этого свойства. При помощи объекта picture можно организовать простую анимацию, используя метод PaintPicture.

Изображение в элемент управления picture загружается полностью. При этом если оно больше размеров picture, то видна только часть изображения, если меньше, — то изображение размещается в левом верхнем углу. Если установить для свойства AutoSize объекта picture значение True, то изображение будет пропорционально вписываться в объект picture.

Задание изображений

Как уже говорилось, определить графическое изображение в приложении можно как в режиме проектирования (режим Design Time), так и в режиме выполнения (режим Run Time).

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

1. Открыть окно Properties объекта.

2. Выбрать свойство picture.

3. Нажать кнопку с тремя точками в правом столбце свойства.

4. В открывшемся диалоговом окне Load Picture найти требуемый файл.

5. Дважды щелкнуть на файле мышью или установить на него курсор и нажать кнопку Открыть.

В режиме выполнения программы существует больше возможностей для определения изображения объекта. Изображение можно задать следующими способами:

Удаление изображений

Удаляется изображение из объекта очень просто. Для этого необходимо воспользоваться загрузкой в свойство Picture пустого значения:

Set Объект.Picture = LoadPicture("")

При этом изображение удаляется из объекта.

Графические методы

В дополнение к графическим элементам управления в Visual Basic 6 существует набор графических методов:

Метод

Назначение

Circle

Рисует окружность, дугу или эллипс

CIs

Очищает область вывода

Line

Рисует линии

PaintPicture

Рисует (загружает) изображение

Point

Возвращает цвет точки

Print

Выводит текст

Pset

Размещает точку


 

Замечание

Необходимо отметить, что метод Print предназначен для вывода текста и к графике имеет косвенное отношение. Тем не менее, мы рассмотрим его вместе с графическими методами, поскольку он используется совместно с другими методами графики для "рисования" текста в указанном объекте или совмещения текста и чистой графики.

В графических методах используются функции вычисления цвета RGB и QBColor. Рассмотрим сначала эти функции.

Функции цвета

Функция RGB возвращает числовое представление цвета (тип возвращаемого значения при этом long) в соответствии с интенсивностью трех цветовых составляющих: R (Red— красный), G (Green — зеленый) и В (Blue — синий). Интенсивность этих трех основных цветов задается шкалой чисел от О до 255. Синтаксис этой функции такой:

RGB (Red, Green, Blue)

где:

Для примера в табл. 11.2 показаны часто используемые цвета, разложенные по интенсивностям RGB-цветов.

Таблица 11.2. Цвета в RGB-представлении

Цвет

Интенсивность красного

Интенсивность зеленого

Интенсивность синего

Черный

0

0

0

Белый

255

255

255

Красный

255

0

0

Зеленый

0

255

0

Синий

0

0

255

Бирюзовый

0

255

255

Пурпурный

255

0

255

Желтый

255

255

0

Серый

192

192

192



Например, если вы хотите сделать фон формы бирюзовым, необходимо присвоить свойству BackColor формы следующее значение:

Form.BackColor = RGB (0,255,255)

Для удобства работы со стандартными цветами используется функция QBColor, которая возвращает числовое представление одного из 16 цветов, показанных в табл. 11.3.

Таблица 11.3. Цвета, возвращаемые функцией QBColor

Номер цвета

Цвет

0

Черный

1

Синий

2

Зеленый

3

Бирюзовый

4

Красный

5

Пурпурный

6

Желтый

7

Белый

8

Серый

9

Светло-синий (голубой)

10

Светло-зеленый (салатный)

11

Светло-бирюзовый

12

Светло-красный (алый)

13

Светло-пурпурный

14

Светло-желтый

15

Ярко-белый



Синтаксис этой функции выглядит очень просто:

QBColor (NumberColor)

где NumberColor — числовое значение (номер цвета), определяющее цвет (табл. 11.3).

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

Form.BackColor = QBColor(3)

Графические методы

Рассмотрим синтаксис графических методов.

Метод Circle

Метод circle используется следующим образом:

object.Circle [Step] (x, у), radius, [color, start, end, aspect]

где:

Метод Сls

С помощью метода Cls можно очистить форму или объект picture от текста и графики, созданных в нем программно. Синтаксис метода cis очень простой и выглядит так:

object.Cls

где object — объект, в котором применяется метод. Если параметр не указан, то по умолчанию используется форма.

Замечание

Необходимо помнить, что при применении этого метода свойства CurrentX и CurrentY выбранного объекта устанавливаются в 0.

Метод Line

Метод Line предназначен для рисования линий и имеет следующий синтаксис:

object.Line [Step] (x1, y1) [Step] - (x2, y2), [color], [B] [F]

где:

Метод PamtPicture

Метод paintpicture рисует (загружает) содержимое графических файлов имеющих расширение bmp, wmf, emf, cur, ico или dib, в формах или объектах типа picture. Метод имеет следующий синтаксис:

object.PaintPicture picture, xl, yl, width1, height1, x2, y2, width2, height2, opcode

где:

Для работы метода с изображениями, имеющими расширение BMP, необходимо использовать константы из набора RasterOp для установки режима вставки изображения. Эти константы описаны в табл. 11.4.

При помощи отрицательных значений ширины (widthi) и высоты (heightl) можно перевернуть изображение вертикально или горизонтально.

Таблица 11.4. Набор констант RasterOp для метода PaintPicture

Константа

Значение

Описание

vbDstInvert

&H00550009

Инвертирует указанное изображение

vbMergeCopy

&HOOCOOOCA

Объединяет рисунок и изображение-источник

vbMe где Paint

&HOOBB0226

Объединяет инвертированное изображение источника с указанным изображением, используя оператор Or

vbNotSrcCopy

&H00330008

Копирует инвертированное изображение-источник в указанное изображение

vbNotSrcEraae

&H001100A6

Инвертирует результат объединения указанного изображения и изображения-источника, используя оператор Or

vbPatCopy

&HOOF00021L

Копирует рисунок в указанное изображение

vbPatInvert

&H005A0049L

Объединяет указанное изображение с рисунком, используя оператор Xог

vbPatPaint

&HOOFBOA09L

Объединяет инвертированное изображение источника с рисунком, используя оператор Or. Объединяет результирующее выражение в этой операции с указанным изображением с помощью оператора Or

vbSrcAnd

&H008800C6

Объединяет пикселы указанного изображения источника, используя оператор And

vbSrcCopy

&HOOCC0020

Копирует изображение-источник в указанное изображение

vbSrcErase

&H00440328

Инвертирует указанное изображение и объединяет результат с изображением-источником с помощью оператора And

vbSrcInvert

&H00660046

Объединяет пикселы указанного изображения и изображения-источника, используя оператор Хог

vbSrcPaint

&HOOEE0086

Объединяет пикселы указанного изображения и изображения-источника с помощью оператора Or



Метод Point

Метод point возвращает цвет в палитре RGB указанной точки в форме или на объектах типа pictureBox. Синтаксис этого метода следующий:

object.Point (x, у)

где:

Метод Print

Метод print выводит (печатает) текст в указанный объект или окно Immediate. Синтаксис этого метода следующий:

object.Print [outputList]

где:

Список вывода outputList имеет определенный синтаксис. Этот список задается следующим образом:

(Spc(n) I Tab(n)} expression charpos

где:

Итак, при использовании синтаксиса метода print не указываются шрифт, его цвет, координаты вывода текста. Эти параметры вывода текста определяются следующими свойствами объекта, в который выводится текст:

Метод Pset

Метод Pset назначает цвет указанной точки объекта. Этот метод является обратным методу point. Синтаксис этого метода следующий:

object.Pset [Step] (x, у), [color]

где:

При использовании метода pset необходимо иметь в виду, что размер точки определяется толщиной объекта, то есть свойством объекта DrawWidth. Для толщины 1 это один пиксел, для толщины больше единицы — это область объекта с центром, имеющим указанные координаты. Способ рисования точки при этом определяется свойствами объекта DrawMode и DrowStyle.

Работа со шрифтами

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

Рис. 11.5. Диалоговое окно установки свойств шрифта

В диалоговом окне Font (Шрифт) можно назначить следующие свойства шрифта:

Для установки наименования шрифта используется список Шрифт диалогового окна. Чтобы установить начертание (полужирный, курсив, обычный), используется список Начертание. Размер шрифта можно установить в поле Размер вручную или выбрать значение из списка размеров. Для установки атрибутов зачеркнутый и подчеркнутый, необходимо использовать флажки Зачеркнутый и Подчеркнутый. Таблица кодировки набора символов назначается в раскрывающемся списке Набор символов.

Управление цветом

Управление цветом формы и элементов управления можно организовать, используя свойства ForeColor и BackColor. Свойство ForeCoior задает цвет текста, а BackColor устанавливает цвет фона.

В режиме проектирования приложения эти свойства можно установить в окне Properties (Свойства) объекта (рис. 11.6), вызвав диалоговое окно настройки цвета. Для этого необходимо выделить настраиваемое свойство и нажать на кнопку со стрелкой в правом столбце свойства. Как видно из рисунка, это диалоговое окно состоит из двух вкладок: Palette (Палитра) и System (Системные). На вкладке Palette можно установить произвольные цвета из палитры, на вкладке System можно выбрать цвет из списка цветовой схемы Windows, которая устанавливается в панели управления Windows вызовом окна настройки Свойства: Display. При использовании цветовой схемы необходимо иметь в виду, что при изменении настройки цветовой схемы Windows соответственно изменятся и цвета приложения.

Рис. 11.6. Диалоговое окно настройки цветов объекта

В режиме выполнения приложения свойства ForeColor и BackColor можно установить простым присвоением, используя функции цвета или встроенные константы Visual Basic 6, представленные в табл. 11.5.

Таблица 11.5. Набор констант Visual Basic 6 для управления цветом

Константа

Значение

Описание цвета

vbBlack

&HO

Черный

vbRed

&HFF

Красный

vbGreen

&HFFOO

Зеленый

vbYellow

&HFFFF

Желтый

vbBlue

&HFFOOOO

Голубой

vbMagenta

&HFFOOFF

Пурпурный

vbCyan

&HFFFFOO

Бирюзовый

vbWhite

&HFFFFFF

Белый


 

Анимационная графика

Анимационную графику будем рассматривать как средство для внесения разнообразия и привлекательности в пользовательский интерфейс. Примером такой анимации может служить процесс копирования файлов в системе Windows, когда на экране отображается живая картинка переноса листов из папки в папку. Не занимая больших ресурсов, анимация в таком исполнении делает интерфейс приложения более привлекательным, а в конечном итоге более конкурентоспособным и само приложение.

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

Массив элементов управления

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

Массив элементов управления создается при проектировании приложения. Для создания массива существуют следующие основные способы:

Переключение изображений

Самый простой способ анимации — переключение изображений. Рассмотрим это на примере. Создайте небольшое приложение, выполнив следующие действия:

1. Создайте новый стандартный проект. С этой целью выберите команду New Project (Создать новый проект) в меню File (Файл) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyGraphics. Для этого откройте окно свойств проекта, выбрав команду Projecti Properties (Свойства Project1) меню Project (Проект). После переименования проекта эта команда будет называться MyGraphics Properties.

3. Присвойте форме проекта имя FormForGraphics. В свойство caption формы введите заголовок Форма для работы с графикой.

4. Добавьте в форму кнопку управления типа commandBution, дважды щелкнув мышью кнопку CommandButton на панели элементов управления. Назовите эту кнопку cbcontrol и присвойте свойству Caption значение Изменить состояние. Созданная в форме кнопка cbcontrol будет служить для переключения изображений, выполняемых приложением MyGraphics по событию click этой кнопки.

5. Добавьте в форму три элемента управления типа picture и назовите их picRed, picYellow и picGreen. Вставьте В СВОЙСТВО Picture каждого объекта соответствующие цветам изображения светофора из каталога \Common\Graphics\Icons\Trafric. Свойство visible для всех трех элементов управления установите в состояние False.

6. Добавьте в форму объект типа image, в котором будет переключаться изображение, и назовите его imgStatus, при этом свойство picture этого объекта оставьте пустым. Свойство visible для данного элемента управления установите в состояние True.

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

Рис. 11.7. Вид приложения для переключения изображений

7. Откроите окно редактора и задайте следующий код:

Dim fIgEnd As Integer

Private Sub Form_Load()

fIgEnd = 0

imgStatus.Picture = picRed.Picture

FormForGraphics-Caption = "Светофор"

End Sub

Private Sub cbControl_Click ()

If imgStatus.Picture = picRed.Picture Then

imgStatus.Picture = picYellow.Picture

Elself imgStatus.Picture = picYellow.Picture Then

imgStatus.Picture = picGreen.Picture

Else

imgStatus.Picture = picGreen.Picture

fIgEnd = 1

End If

If imgStatus.Picture = picGreen.Picture And fIgEnd = 1 Then

imgStatus.Picture = picRed.Picture

fIgEnd = 0

End If

End Sub

8. Запустите приложение на выполнение. Нажатием кнопки Изменить состояние осуществляется последовательное переключение состояния светофора с помощью присвоения свойству picture объекта imgStatus нового значения.

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

Перемещение и переключение изображений

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

Для изучения перемещения и переключения изображений создадим небольшой проект MyGraphicsDay. Выполните следующие действия:

1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый проект) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyGraphicsDay. Откройте окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект). После переименования проекта эта команда будет называться MyGraphicsDay Properties.

3. Присвойте форме проекта имя FormForGraphics. В свойство caption формы введите заголовок Форма для работы с графикой.

4. Добавьте в форму кнопку управления типа commandButton, дважды щелкнув мышью кнопку ComniandBiitton на панели элементов управления. Назовите эту кнопку cbRun и присвойте свойству Caption значение Старт. Созданная в форме кнопка cbRun будет служить для запуска действий, выполняемых приложением MyGraphicsDay по событию click этой кнопки.

5. Добавьте в форму FomForGraphics еще одну такую же кнопку и назовите ее cbStop. Присвойте свойству caption значение Стоп. Эта кнопка будет служить для останова анимации и возврата приложения в исходное состояние.

6. При анимации, даже самой простой, требуется организовать изменение объектов во времени. Для задания отсчета интервалов времени служит объект типа таймер Timer. Добавьте его в форму с помощью кнопки

Timer на панели элементов управления. Этот объект будет вырабатывать управляющие сообщения для анимации. Используя свойство Name, присвойте таймеру имя tmrGraphicsTimer. При запуске приложения таймер невидим, поэтому о свойстве visible для этого объекта можно не задумываться. Свойство таймера Enabled установите в состояние False, а свойству interval присвойте значение 200.

Замечание

Более подробную информацию об объекте Timer вы можете найти в главе 8. Здесь лишь кратко напомним следующее. Таймер отсчитывает интервалы времени в миллисекундах, отрабатывая событие Timer. При этом минимальный интервал отсчета времени составляет 1, а максимальный — 65 535 миллисекунд, то есть максимально таймер может работать с интервалом чуть больше 1 минуты. Основные свойства объекта Timer — interval и Enabled. Свойство Interval определяет интервал отработки события Timer, свойство Enabled запускает или останавливает таймер. Если Enabled установлено в состояние True, таймер начинает отрабатывать событие Timer, если в состояние False — таймер находится в состоянии ожидания. При этом таймер с установленным при проектировании свойством Enabled в состояние True запускается сразу же после загрузки формы, в которой он находится.

7. Добавьте в форму элемент управления image. Назовите его imgSunMoon.

8. Добавьте в форму массив элементов управления типа Picture, состоящий из двух элементов. Для создания массива воспользуйтесь любым удобным для вас способом. Например, разместите в форме объект picture, дважды щелкнув мышью кнопку PictureBox на панели элементов управления. Затем скопируйте объект и вставьте его копию в форму. Объектам массива присвойте имя picSunMoon. В элемент массива, индекс которого равен 0 (свойство index), введите изображение солнца. В элемент массива, индекс которого равен 1, введите изображение месяца. Свойство visible для элементов массива установите в состояние False.

Полученное приложение показано на рис. 11.8.

Рис. 11.8. Вид приложения MyGraphicsDay

9. Откройте окно редактора и разместите в нем указанный ниже код:

Dim xAdd As Integer

Dim yAdd As Integer

Dim figSunMoon As Integer

Private Sub Form Load()

' "Смена дня и ночи"

xAdd = 100

yAdd = -100

figSunMoon = 1

xScaleSunMoon = ImgSunMoon.Width

FormForGraphics.Caption = "Смена дня и ночи"

End Sub

Private Sub cbRun_Click()

tmrGraphicsTimer.Enabled = True

xAdd = 100

yAdd = -100

figSunMoon = 1

ImgSunMoon.Picture = PicSunMoon(0).Picture

End Sub

Private Sub cbStop_Click()

tmrGraphicsTimer.Enabled = False

ImgSunMoon.Left = xScaleSunMoon / 2

ImgSunMoon.Top = FormForGraphics.ScaleHeight — 500

ImgSunMoon.Picture = PicSunMoon(0).Picture

End Sub

Private Sub tmrGraphicsTimer Timer()

ImgSunMoon.Left = ImgSunMoon.Left + xAdd

ImgSunMoon.Top = ImgSunMoon.Top + yAdd

If ImgSunMoon.Left > FormForGraphics.ScaleWidth / 2 — xScaleSunMoon / 2 And figSunMoon = 1 Then

yAdd = 100

End If

If ImgSunMoon.Left < FormForGraphics.ScaleWidth / 2 -xScaleSunMoon / 2 And figSunMoon = 0 Then

yAdd = 100

End If

If ImgSunMoon.Left > FormForGraphics.ScaleWidth Then

yAdd = -100

xAdd = -100

figSunMoon = 0

ImgSunMoon.Picture = PicSunMoon(1).Picture

ImgSunMoon.Left = FormForGraphics.ScaleWidth — 500

ImgSunMoon.Top = FormForGraphics.ScaleHeight — 500

End If

If ImgSunMoon.Left < xScaleSunMoon / 2 And figSunMoon = 0 Then

ImgSunMoon.Left = xScaleSunMoon / 2

ImgSunMoon.Top = FormForGraphics.ScaleHeight — 500

tmrGraphicsTimer.Enabled = False

End If

End Sub

10. Запустите приложение на выполнение. При нажатии кнопки Старт объект, напоминающий солнце, перемещается по форме и при достижении правого нижнего угла меняет изображение, после чего возвращается в исходную точку (рис. 11.9). Нажатие кнопки Стоп переводит приложение в исходное состояние.

Рис. 11.9. Вид приложения MyGraphicsDay при запуске

Совмещение изображения и текста

Иногда возникает необходимость совместить текст и изображение в объектах приложения. Для этого используется метод print, позволяющий выводить текст на объекте. Рассмотрим, как этот метод применяется на практике. Для создания приложения выполните следующие действия:

1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый проект) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyGraphObjects. Для этого откройте окно свойств проекта, выбрав команду Projecti Properties (Свойства Project I) из меню Project (Проект). После переименования проекта эта команда будет выглядеть как MyGraphObjects Properties.

3. Присвойте форме проекта имя FormForGraphics. В свойство caption формы введите заголовок Графические формы и методы.

4. Добавьте в форму кнопку управления типа conmandButton, дважды щелкнув мышью кнопку CommandButton ДЦ на панели элементов управления. Назовите эту кнопку cbstart и присвойте свойству caption значение Выполнить. Созданная в форме кнопка cbstart будет служить для отображения текста на графическом объекте по событию click этой кнопки.

5. Переименуйте форму проекта Formi в FormForGraphics и в свойство Caption введите заголовок окна Графические формы и методы.

6. Добавьте в форму элемент управления типа picture, дважды щелкнув мышью кнопку PictureBox на панели элементов управления. Назовите этот объект picpicture. В свойство picture объекта вставьте графическое изображение светофора из каталога \Common\Graphics\Icons\Traffic.

7. Введите в окно редактора небольшой код, указанный ниже:

Private Sub cbStart_Click()

picPicture.Print "Светофор" End Sub

8. Запустите приложение на выполнение. Нажмите кнопку Выполнить. На изображении появится надпись "Светофор" (рис. 11.10).

Рис. 11.10. Приложение с совмещением изображения и текста в режиме выполнения

Рис. 11.11. Приложение с назначением координат для текста

Можно поместить надпись под рисунком, указав координаты точки начала надписи на изображении (рис. 11.11). В этом случае введите в окно редактора следующий код:

Private Sub cbStart_Click()

picPicture.CurrentX = 100

picPicture.CurrentY = 400

picPicture.Print "Светофор"

End Sub

Элемент управления Animation

Элемент управления Animation позволяет использовать при анимации видеофайлы — специально подготовленные файлы с расширением avi, представляющие собой последовательный набор кадров (растровых изображений).

Для использования элемента управления Animation необходимо подключить к проекту библиотеку Microsoft Windows Common Control-2 6.0. После подключения этой библиотеки кпроекту на панели элементов управления появляется кнопка Animation. Вид элемента управления Animation, размещенного в форме, показан на рис. 11.12.

Рис. 11.12. Вид элемента управления Animation при проектировании приложения

Замечание

Следует еще раз обратить внимание на то, что для применения элемента управления Animation требуется видеофайл. В своем примере мы воспользуемся видеофайлом из каталога \Common\Graphics\Videos.

Основные методы элемента управления Animation, которые позволяют организовать просмотр видеофайлов, следующие:

Метод

Назначение

Open

Открывает видеофайл

Play

Запускает видеофайл на выполнение

Stop

Останавливает видеофайл

Close

Закрывает видеофайл


 

Метод play может иметь дополнительные аргументы:

Для изучения элемента управления Animation создадим приложение MyVideoAnimation. Выполните следующие действия:

1. Создайте новый стандартный проект. Выберите команду New Project (Создать новый проект) меню File (Файл) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyVideoAnimation. Для этого откроите окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект). После переименования проекта эта команда будет именоваться MyVideoAnimation Properties.

3. Присвойте форме проекта имя FormVideoAnimation. В свойство Caption формы введите заголовок Просмотр видеофайлов.

4. Подключите к проекту две библиотеки: Microsoft Common Dialog Control 6.0 и Microsoft Windows Common Control-2 6.0. Для этого в меню Project (Проект) выберите команду Components (Компоненты) и в открывшемся диалоговом окне установите соответствующие именам библиотек флажки.

Замечание

Библиотеку Microsoft Common Dialog Control 6.0 подключаем для создания в форме диалогового окна поиска видеофайлов на диске.

5. Добавьте в форму кнопку управления типа CommandButton, дважды щелкнув мышью кнопку CommandButton на панели элементов управления. Назовите эту кнопку cbRun и присвойте свойству caption значение Просмотр видеофайла. Созданная в форме кнопка cbRun предназначена для запуска видеофайла на просмотр по событию click этой кнопки.

6. Добавьте в форму FormForGraphics еще одну такую же кнопку и назовите ее cbStop. Присвойте свойству Caption значение Стоп. Эта кнопка будет служить для останова просмотра видеофайла.

7. Добавьте в форму элемент управления Animation, дважды щелкнув мышью кнопку Animation на панели элементов управления. Назовите его

anivideo.

8. Добавьте в форму элемент управления CommonDialog, дважды щелкнув мышью кнопку Common Dialog на панели элементов управления. Назовите созданный объект cdvideo. Вид созданного проекта показан на рис. 11.13.

9. Откройте окно редактора и введите следующий код:

Private Sub cbRun_Click()

cdvideo.Filter = "avi files (*.avi)¦*.avi"

cdVideo.ShowOpen

anivideo.Open cdVideo.FileName

anivideo.Play

End Sub

Private Sub cbStop_Click()

anivideo.Stop

End Sub

Private Sub Form Unload(Cancel As Integer)

anivideo.Close

End Sub

10. Запустите приложение на выполнение. При нажатии кнопки Просмотр видеофайла открывается диалоговое окно Открытие файла, позволяющее найти видеофайл. Найдите требуемый файл и нажмите кнопку Открыть. Видеофайл запускается на просмотр (рис. 11.14). Остановить просмотр можно нажатием кнопки Стоп.

Замечание

Для диалогового окна Открытие файла установлено свойство Filter, чтобы осуществить фильтрацию файлов с расширением avi.

Если метод play в этом примере использовать в следующем виде:

aniVideo.Play 3, 5, 10 то три раза будут прокручены кадры с 5 по 10.

Рис. 11.13. Вид приложения для просмотра видеофайлов

Рис. 11.14. Просмотр видеофайла в форме

назад | содержание | вперед

Hosting uCoz