home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / RedHat_She1841961192005.psc / VB / clsGradient.cls < prev    next >
Text File  |  2004-10-23  |  2KB  |  57 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsGradient"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Dim Red, Green, Blue
  15. Public Enum enumOrientation
  16.     Orientation_Horizontal = 0
  17.     Orientation_Vertical = 1
  18. End Enum
  19.  
  20. Public Function Gradient(Frm As Object, Orientation As enumOrientation, SClr As ColorConstants, EClr As ColorConstants)
  21. Frm.AutoRedraw = True: Frm.ScaleMode = 3 '2 is interesting,too
  22. Analyze (SClr): SRed = Red: SGreen = Green: SBlue = Blue
  23. Analyze (EClr): ERed = Red: EGreen = Green: EBlue = Blue
  24. DifR = ERed - SRed: DifG = EGreen - SGreen: DifB = EBlue - SBlue
  25. Select Case Orientation
  26.   Case Is = 0: Fora = Frm.ScaleHeight
  27.   Case Is = 1: Fora = Frm.ScaleWidth
  28. End Select
  29. For Yi = 0 To Fora
  30. SRed = SRed + (DifR / Fora): If SRed < 0 Then SRed = 0
  31. SGreen = SGreen + (DifG / Fora): If SGreen < 0 Then SGreen = 0
  32. SBlue = SBlue + (DifB / Fora): If SBlue < 0 Then SBlue = 0
  33. Select Case Orientation
  34.   Case Is = 0: Frm.Line (0, Yi)-(Frm.ScaleWidth, Yi), RGB(SRed, SGreen, SBlue), B
  35.   Case Is = 1: Frm.Line (Yi, 0)-(Yi, Frm.ScaleHeight), RGB(SRed, SGreen, SBlue), B
  36. End Select
  37. Next
  38. End Function
  39.  
  40. Public Function Analyze(CConst As ColorConstants)
  41. Dim rr, gr, br As Long
  42. rr = 1: gr = 256: br = 65536
  43. Dim rest As Long
  44. rest = CConst \ br
  45. Blue = rest
  46. CConst = CConst Mod br
  47. If Blue < 0 Then Blue = 0
  48. rest = CConst \ gr
  49. Green = rest
  50. CConst = CConst Mod gr
  51. If Green < 0 Then Green = 0
  52. rest = CConst \ rr
  53. Red = rest
  54. CConst = CConst Mod rr
  55. If Red < 0 Then Red = 0
  56. End Function
  57.