Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие по VB_6.doc
Скачиваний:
21
Добавлен:
24.12.2018
Размер:
3.17 Mб
Скачать

Опции функции Формат

Константа

Описание

VbCFText

текст

VbCFBitmap

растровое изображение (*.bmp)

VbCFMetaFile

метафайл(*.Wmf)

VbCFFMetaFile

расширенный метафайл(*.EMF)

VbCFDIB

независимое от устройства растровое изображение(*.dib)

VbCFPalette

цветовая палитра

VbCFRtf

файл в формате*.rtf

Метод GetData() – восстанавливает данные из объекта.

Синтаксис: Объект.GetData [,формат]

Метод GetFormat – возвращает логическое значение, подтверждающее, хранятся ли в объекте данные указанного формата.

Синтаксис: Объект.GetFormat[,формат]

Пример 4.15. Анимационное перемещение изображения, содержащегося в элементе управления Image1.Picture в элемент управления Image2.Picture (рис.4.6.):

Private Sub Command1_Click()

Dim i As Integer, j As Long

Clipboard.Clear

Clipboard.SetData Image1.Picture, vbCFBitmap

For i = 1 To 300

Image2.Left = 1000 + i * 20

Image2.Top = 480 + i * 20

For j = 1 To 100000: Next j

Image2.Picture = Clipboard.GetData()

Next i

End Sub

Анимация посредством присвоения значения свойства одного графического объекта другому

Пример 4.16. “Светофор”

Другой способ анимации состоит в присваивании значения свойства Picture одного графического элемента управления другому.

На форме (рис. 4.7.) Расположен. “светофор”. На форму помещены семь элементов управления PictureBox или Image. Первый, второй и третий элементы содержат круги зеленого, желтого и красного цвета, соответственно (круги соответствующего цвета можно нарисовать в программе Paint и сохранить в отдельных файлах). Четвертый элемент пустой. Через установленные интервалы времени рисунок из элементов Picture1, Picture2, Picture3, Picture4 перемещается в элементы Picture5, Picture6, Picture7. Элементы 1- 4 можно сделать невидимыми.

Private Sub Form_Click()

Dim i As Integer, ltime As Single

For i = 1 To 10

ltime = Timer()

' пауза

While Timer() - ltime < 1: Wend

Picture6.Picture = Picture4.Picture

Picture7.Picture = Picture4.Picture

Picture5.Picture = Picture1.Picture

ltime = Timer()

'пауза

While Timer() - ltime < 0.5: Wend

Picture5.Picture = Picture4.Picture

Picture6.Picture = Picture2.Picture

ltime = Timer()

'пауза

While Timer - ltime < 1: Wend

Picture6.Picture = Picture4.Picture

Picture7.Picture = Picture3.Picture

Next i

End Sub

Пример 4.17.. Радар

Private Sub Form_Click()

Const Pi = 3.14159

Const Alfa = 50

Dim x As Integer, y As Integer, r As Integer

Dim xNach As Single, xKon As Single, nCount As Integer

Dim i As Integer, j As Integer, A As Integer

‘Рисуем окружность в центре формы

x = Me.ScaleWidth / 2

y = Me.ScaleHeight / 2

r = x / 2

Me.FillStyle = vbSolid 'без окантовки

Me.DrawMode = vbCopyPen ' взаимодействие с цветом

Me.FillStyle = vbFSTransparent 'прозрачный

Me.Circle (x, y), r

'рисуем сектор радара

Me.DrawMode = vbXorPen ' исключающее или

Me.FillColor = vbGreen 'QBColor(5)

Me.FillStyle = vbSolid 'без окантовки

nach:

For i = 0 To 360

xNach = i

xKon = i + Alfa

If xKon > 360 Then xKon = xKon - 360

Me.Caption = "Дуга" & Alfa & "градусов с началом в" & i

Me.Circle (x, y), r, , -xNach * Pi / 180, -xKon * Pi / 180

For j = 1 To 15000: A = A: Next j

DoEvents

Me.Circle (x, y), r, , -xNach * Pi / 180, -xKon * Pi / 180

Next i

GoTo nach

Me.Caption = "Конец программы"

End Sub