InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Листинг для ActiveX Control "ZigZag"



Option Explicit
Private Motion As Integer
Public Enum constBorderStyle

Нет = 0
Окантовка = 1

End Enum
'Event Declarations:
Event Click()
Event DblClick()
Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Event CaptionClick()
Private Sub MoveZigZag()

Select Case Motion
Case 1

lblCaption.Move lblCaption.Left - 50, lblCaption.Top - 50
If lblCaption.Left <= 0 Then

Motion = 2
ElseIf lblCaption.Top <= 0 Then
Motion = 4

End If

Case 2

lblCaption.Move lblCaption.Left + 50, lblCaption.Top - 50
If lblCaption.Left >= (UserControl.Width - lblCaption.Width) Then

Motion = 1

ElseIf lblCaption.Top <= 0 Then

Motion = 3

End If

Case 3

lblCaption.Move lblCaption.Left + 50, lblCaption.Top + 50
If lblCaption.Left >= (UserControl.Width - lblCaption.Width) Then

Motion = 4

ElseIf lblCaption.Top >= (UserControl.Height - lblCaption.Height) Then

Motion = 2

End If

Case 4

lblCaption.Move lblCaption.Left - 50, lblCaption.Top + 50
If lblCaption.Left <= 0 Then

Motion = 3

ElseIf lblCaption.Top >= (UserControl.Height - lblCaption.Height) Then

Motion = 1

End If

End Select

End Sub

Public Property Get BackColor() As OLE_COLOR

BackColor = UserControl.BackColor

End Property

Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR)

UserControl.BackColor() = New_BackColor
PropertyChanged "BackColor"

End Property

Public Property Get ForeColor() As OLE_COLOR

ForeColor = lblCaption.ForeColor

End Property

Public Property Let ForeColor(ByVal New_ForeColor As OLE_COLOR)

lblCaption.ForeColor() = New_ForeColor
PropertyChanged "ForeColor"

End Property

Public Property Get Font() As Font

Set Font = lblCaption.Font

End Property

Public Property Set Font(ByVal New_Font As Font)

Set lblCaption.Font = New_Font
PropertyChanged "Font"

End Property

Public Property Get BorderStyle() As constBorderStyle

BorderStyle = UserControl.BorderStyle

End Property

Public Property Let BorderStyle(ByVal New_BorderStyle As constBorderStyle)

UserControl.BorderStyle() = New_BorderStyle
PropertyChanged "BorderStyle"

End Property

Private Sub Timer1_Timer()

MoveZigZag

End Sub

Private Sub UserControl_Click()

RaiseEvent Click

End Sub

Private Sub UserControl_DblClick()

RaiseEvent DblClick

End Sub

Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

RaiseEvent MouseDown(Button, Shift, X, Y)

End Sub

Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

RaiseEvent MouseMove(Button, Shift, X, Y)

End Sub

Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

RaiseEvent MouseUp(Button, Shift, X, Y)

End Sub

Public Property Get Caption() As String

Caption = lblCaption.Caption

End Property

Public Property Let Caption(ByVal New_Caption As String)

lblCaption.Caption() = New_Caption
PropertyChanged "Caption"

End Property

Public Property Get Interval() As Long

Interval = Timer1.Interval

End Property

Public Property Let Interval(ByVal New_Interval As Long)

Timer1.Interval() = New_Interval
PropertyChanged "Interval"

End Property

Public Property Get TimerOn() As Boolean

TimerOn = Timer1.Enabled

End Property

Public Property Let TimerOn(ByVal New_TimerOn As Boolean)

Timer1.Enabled() = New_TimerOn
PropertyChanged "TimerOn"

End Property

Private Sub lblCaption_Click()

RaiseEvent CaptionClick

End Sub

'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

UserControl.BackColor = PropBag.ReadProperty("BackColor", &H8000000F)
lblCaption.ForeColor = PropBag.ReadProperty("ForeColor", &H80000012)
Set lblCaption.Font = PropBag.ReadProperty("Font", Ambient.Font)
UserControl.BorderStyle = PropBag.ReadProperty("BorderStyle", 0)
lblCaption.Caption = PropBag.ReadProperty("Caption", "ZigZag")
Timer1.Interval = PropBag.ReadProperty("Interval", 0)
Timer1.Enabled = PropBag.ReadProperty("TimerOn", True)

End Sub

Private Sub UserControl_Resize()

lblCaption.Move (UserControl.Width - lblCaption.Width) / 2, (UserControl.Height _ - lblCaption.Height) / 2
Motion = 1

End Sub

'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

Call PropBag.WriteProperty("BackColor", UserControl.BackColor, &H8000000F)
Call PropBag.WriteProperty("ForeColor", lblCaption.ForeColor, &H80000012)
Call PropBag.WriteProperty("Font", lblCaption.Font, Ambient.Font)
Call PropBag.WriteProperty("BorderStyle", UserControl.BorderStyle, 0)
Call PropBag.WriteProperty("Caption", lblCaption.Caption, "ZigZag")
Call PropBag.WriteProperty("Interval", Timer1.Interval, 0)
Call PropBag.WriteProperty("TimerOn", Timer1.Enabled, True)

End Sub


Автор и координатор проекта: Михаил Пинкус  
Дизайн: Tangram Design Studio