Autor Tema: Efecto degradado en Forms y Picture (CODE)  (Leído 2760 veces)

0 Usuarios y 1 Visitante están viendo este tema.

xmbeat

  • Kilobyte
  • **
  • Mensajes: 84
  • Reputación: +3/-1
  • la vida no tiene sentido sin Dios
    • Ver Perfil
Efecto degradado en Forms y Picture (CODE)
« en: Febrero 01, 2010, 08:38:40 pm »
Bueno este es un code que hice hace tiempo para hacer degradado de un Color a otro. es el que uso todavia en mis controles de usuario y demas, se que leandro hizo algo muy parecido a esto pero de cualquier forma lo pongo para que lo tengan.

Código: [Seleccionar]
'By xmbeat
Private Function Color(Col As Long) As Integer()
Const B As Long = 65536 'constante que es el resultado de 256 al Cuadrado
Const G As Long = 256
Dim elRGB(2) As Integer
Col = Abs(Col)
elRGB(0) = Col \ B
elRGB(1) = (Col Mod B) \ G
elRGB(2) = (Col Mod B) Mod G
Color = elRGB
End Function

Sub Gradient(Formulario As Object, Inicio As OLE_COLOR, Final As OLE_COLOR, Optional Min As Long = 0, Optional _
Max As Long = 256)
With Formulario
.AutoRedraw = True

Dim I As Integer
Dim Ini() As Integer
Dim Fin() As Integer
Dim Dif As Double
Dim Ant As Long
Dim R As Double, G As Double, B As Double

On Error Resume Next
Ant = .ScaleHeight
.ScaleHeight = 256
Ini = Color(Inicio)
Fin = Color(Final)
Dif = Max - Min

R = Ini(0): G = Ini(1): B = Ini(2)

For I = Min To Max
R = R + ((Fin(0) - Ini(0)) / Dif)
G = G + ((Fin(1) - Ini(1)) / Dif)
B = B + ((Fin(2) - Ini(2)) / Dif)
Formulario.Line (0, I)-(.ScaleWidth, I + 1), RGB(R, G, B), BF

Next I

.ScaleHeight = Ant
End With
End Sub



Private Sub Form_Resize()
Gradient Me, RGB(150, 150, 150), vbBlack, , 128
Gradient Me, vbBlack, RGB(50, 50, 50), 128
End Sub

« última modificación: Febrero 03, 2010, 03:07:47 pm por xmbeat »
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Efecto degradado en Forms y Picture (CODE)
« Respuesta #1 en: Febrero 01, 2010, 10:48:16 pm »
Buen aporte xmbeat...!
Miguel Núñez.