elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Transformacion de un Color A otro sin el uso de API's
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Transformacion de un Color A otro sin el uso de API's  (Leído 2,571 veces)
xmbeat92

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Transformacion de un Color A otro sin el uso de API's
« en: 5 Febrero 2010, 03:50 am »

bien este es un code que uso en mis controles de usuario o en forms para hacerlo mas vistoso. publique hace algunos dias esto en el foro de leandro ascierto, y sabiendo que gran parte de usuarios del foro de leandro esta aqui pues lo cuelgo aqui ademas que tenia dos errores minimos y aqui presento la mini actualizacion. el code lo pueden editar para que se pueda hacer el degradado de forma horizontal o circular, alli esta la idea.

Código:
'By xmbeat
'to foro.elhacker.net/programacion VB

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)
'aqui pueden usar el OleTranslateColor para usar los colores del sistema _
pero no lo use para no contradecir el titulo del post
elRGB(2) = Col \ B 'hacemos la operacion inversa de la funcion RGB()
elRGB(1) = (Col Mod B) \ G
elRGB(0) = (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
'min es donde empezará a pintar y Max es donde terminará de hacerlo
Dim I As Integer
Dim Ini() As Integer
Dim Fin() As Integer
Dim Dif As Long
Dim Ant As Long
Dim R As Byte, G As Byte, B As Byte

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

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

Next I

.ScaleHeight = Ant
End With
End Sub



Private Sub Form_Resize()
Const Text0 As String = "By Xmbeat"
Gradient Me, RGB(80, 80, 80), vbBlack, , 100
Gradient Me, vbBlack, RGB(10, 19, 50), 100
Me.FontSize = 24
Me.FontBold = True
Me.CurrentY = (Me.ScaleHeight - Me.TextHeight(Text0)) / 2
Me.CurrentX = (Me.ScaleWidth - Me.TextWidth(Text0)) / 2
Me.ForeColor = vbWhite
Print Text0
End Sub



aqui el link del otro post:
http://www.leandroascierto.com.ar/foro/index.php?topic=150.0
espero la bienvenida a este foro.


« Última modificación: 5 Febrero 2010, 03:55 am por xmbeat92 » En línea

El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein
EddyW

Desconectado Desconectado

Mensajes: 187



Ver Perfil WWW
Re: Transformacion de un Color A otro sin el uso de API's
« Respuesta #1 en: 5 Febrero 2010, 04:17 am »

Esta muy bueno ;)

Algo así hice hace tiempo, para un Form..

SaluDOS!!!
PD: Bienvenido!!! ;D


En línea

Sm0kes

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: Transformacion de un Color A otro sin el uso de API's
« Respuesta #2 en: 5 Febrero 2010, 04:43 am »

Genial esto esta bueno se mira cool el degradado pa una app xD..... Salu2s
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Transformacion de un Color A otro sin el uso de API's
« Respuesta #3 en: 5 Febrero 2010, 15:12 pm »

Va la 2da vez que veo esto, ya lo vi de BlackZeroX cuando "optimizaba" un codigo.

Porque usan un Integer?  "Dim elRGB(2) As Integer" el valor de retorno tiene que ser en bytes...
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
xmbeat92

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Re: Transformacion de un Color A otro sin el uso de API's
« Respuesta #4 en: 7 Febrero 2010, 01:46 am »

Va la 2da vez que veo esto, ya lo vi de BlackZeroX cuando "optimizaba" un codigo.

Porque usan un Integer?  "Dim elRGB(2) As Integer" el valor de retorno tiene que ser en bytes...
si eso fue algo que se me paso sin querer, claro que lo pueden modificar, eso no es mucho de trascendecia
En línea

El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein
xmbeat92

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Re: Transformacion de un Color A otro sin el uso de API's
« Respuesta #5 en: 9 Febrero 2010, 03:00 am »

bueno ademas estuve checkando y la funcion rgb que viene el visual, pide paramentros integer, bueno eso no es pretexto, pero ademas es mejor comerese 3 bytes para poder sumarles y restarles numeros sin que ocurra un error
En línea

El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Transformacion de un Color A otro sin el uso de API's
« Respuesta #6 en: 9 Febrero 2010, 08:15 am »

bueno ademas estuve checkando y la funcion rgb que viene el visual, pide paramentros integer, bueno eso no es pretexto, pero ademas es mejor comerese 3 bytes para poder sumarles y restarles numeros sin que ocurra un error

por eso yo también lo declare en integer jem

Nota: Casi nos pega cobein xS

En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
COMPRO TRANSFORMACION(desde c a c++) O COMPOSICION DE UN PROGRAMA C++
Programación C/C++
wolvex 1 1,814 Último mensaje 11 Enero 2013, 16:08 pm
por 0xDani
Homografía o transformación automática OpenCV/Cimg C++
Programación C/C++
Superplay 1 2,819 Último mensaje 28 Mayo 2014, 00:15 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines