بابک زواری
چهارشنبه 28 اردیبهشت 1384, 20:17 عصر
بیکار بودم این کد نظرم رو جلب کرد با خودم گفتم با دوستان هم سفره بشیم
'All Gradient Method Are Availble Here.
'
'
'
'
Option Explicit
Private Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As Long
Public OffsetX As Long
Public OffsetY As Long
Public Enum CSFadeTypes
CSFadeNone
CSFadeLeft2Right
CSFadeRight2Left
CSFadeTop2Bottom
CSFadeBottom2Top
CSFadeCircleIn
CSFadeCircleOut
CSFadeRectangleIn
CSFadeRectangleOut
End Enum
Public Sub Fade(ByVal newFadeType As CSFadeTypes, newForm As Object, Optional ByVal FromColor As OLE_COLOR = vbBlue, Optional ByVal ToColor As OLE_COLOR = vbBlack)
Dim i As Integer
Dim FadeColor As OLE_COLOR
Dim FadeStep As Long
Dim oldMouse As MousePointerConstants
oldMouse = Screen.MousePointer
Screen.MousePointer = vbHourglass
Call RealizePalette(newForm.hdc)
newForm.AutoRedraw = True
newForm.DrawWidth = 3
Select Case (newFadeType)
Case CSFadeTypes.CSFadeLeft2Right
newForm.Scale (0, 0)-(256, 1)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.BackColor = IIf(OffsetX <= 0, ToColor, FromColor)
For i = 0 To 255
newForm.Line (i + OffsetX, 0)-(i + OffsetX + 1, 1), FadeColor, BF
FadeColor = FadeColor + FadeStep
Next i
Case CSFadeTypes.CSFadeRight2Left
Fade CSFadeLeft2Right, newForm, ToColor, FromColor
Case CSFadeTypes.CSFadeTop2Bottom
newForm.Scale (0, 0)-(1, 256)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.BackColor = IIf(OffsetY <= 0, ToColor, FromColor)
For i = 0 To 255
newForm.Line (0, i + OffsetY)-(1, i + OffsetY + 1), FadeColor, BF
FadeColor = FadeColor + FadeStep
Next i
Case CSFadeTypes.CSFadeBottom2Top
Fade CSFadeTop2Bottom, newForm, ToColor, FromColor
Case CSFadeTypes.CSFadeCircleIn
newForm.Scale (0, 0)-(256, 256)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.FillStyle = vbFSSolid
newForm.BackColor = FadeColor
For i = 255 To 0 Step -1
newForm.FillColor = FadeColor
newForm.Circle (127 + OffsetX, 127 + OffsetY), (i + 1), FadeColor
FadeColor = FadeColor + FadeStep
Next i
newForm.FillStyle = vbFSTransparent
Case CSFadeTypes.CSFadeCircleOut
Fade CSFadeCircleIn, newForm, ToColor, FromColor
Case CSFadeTypes.CSFadeRectangleIn
newForm.Scale (0, 0)-(256, 256)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.FillStyle = vbFSSolid
newForm.BackColor = FadeColor
For i = 0 To 127
newForm.FillColor = FadeColor
newForm.Line (i + OffsetX, i + OffsetY)-Step(256 - (i * 2), 256 - (i * 2)), FadeColor, BF
FadeColor = FadeColor + (FadeStep * 2)
Next i
newForm.FillStyle = vbFSTransparent
Case CSFadeTypes.CSFadeRectangleOut
Fade CSFadeRectangleIn, newForm, ToColor, FromColor
End Select
newForm.AutoRedraw = False
Screen.MousePointer = oldMouse
End Sub
'All Gradient Method Are Availble Here.
'
'
'
'
Option Explicit
Private Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As Long
Public OffsetX As Long
Public OffsetY As Long
Public Enum CSFadeTypes
CSFadeNone
CSFadeLeft2Right
CSFadeRight2Left
CSFadeTop2Bottom
CSFadeBottom2Top
CSFadeCircleIn
CSFadeCircleOut
CSFadeRectangleIn
CSFadeRectangleOut
End Enum
Public Sub Fade(ByVal newFadeType As CSFadeTypes, newForm As Object, Optional ByVal FromColor As OLE_COLOR = vbBlue, Optional ByVal ToColor As OLE_COLOR = vbBlack)
Dim i As Integer
Dim FadeColor As OLE_COLOR
Dim FadeStep As Long
Dim oldMouse As MousePointerConstants
oldMouse = Screen.MousePointer
Screen.MousePointer = vbHourglass
Call RealizePalette(newForm.hdc)
newForm.AutoRedraw = True
newForm.DrawWidth = 3
Select Case (newFadeType)
Case CSFadeTypes.CSFadeLeft2Right
newForm.Scale (0, 0)-(256, 1)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.BackColor = IIf(OffsetX <= 0, ToColor, FromColor)
For i = 0 To 255
newForm.Line (i + OffsetX, 0)-(i + OffsetX + 1, 1), FadeColor, BF
FadeColor = FadeColor + FadeStep
Next i
Case CSFadeTypes.CSFadeRight2Left
Fade CSFadeLeft2Right, newForm, ToColor, FromColor
Case CSFadeTypes.CSFadeTop2Bottom
newForm.Scale (0, 0)-(1, 256)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.BackColor = IIf(OffsetY <= 0, ToColor, FromColor)
For i = 0 To 255
newForm.Line (0, i + OffsetY)-(1, i + OffsetY + 1), FadeColor, BF
FadeColor = FadeColor + FadeStep
Next i
Case CSFadeTypes.CSFadeBottom2Top
Fade CSFadeTop2Bottom, newForm, ToColor, FromColor
Case CSFadeTypes.CSFadeCircleIn
newForm.Scale (0, 0)-(256, 256)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.FillStyle = vbFSSolid
newForm.BackColor = FadeColor
For i = 255 To 0 Step -1
newForm.FillColor = FadeColor
newForm.Circle (127 + OffsetX, 127 + OffsetY), (i + 1), FadeColor
FadeColor = FadeColor + FadeStep
Next i
newForm.FillStyle = vbFSTransparent
Case CSFadeTypes.CSFadeCircleOut
Fade CSFadeCircleIn, newForm, ToColor, FromColor
Case CSFadeTypes.CSFadeRectangleIn
newForm.Scale (0, 0)-(256, 256)
FadeColor = FromColor
FadeStep = ((ToColor - FromColor) \ 255)
newForm.FillStyle = vbFSSolid
newForm.BackColor = FadeColor
For i = 0 To 127
newForm.FillColor = FadeColor
newForm.Line (i + OffsetX, i + OffsetY)-Step(256 - (i * 2), 256 - (i * 2)), FadeColor, BF
FadeColor = FadeColor + (FadeStep * 2)
Next i
newForm.FillStyle = vbFSTransparent
Case CSFadeTypes.CSFadeRectangleOut
Fade CSFadeRectangleIn, newForm, ToColor, FromColor
End Select
newForm.AutoRedraw = False
Screen.MousePointer = oldMouse
End Sub