Dos funciones útiles

29/09/2003 - 01:33 por Jorge Pérez | Informe spam
Dos funciones útiles para programadores Web. Le permiten convertir colores
RGB a colores HTML. La primera de ellas se adaptó de una función expuesta
por Luis María Guayán en PortalFox.

Uso:

? GetHtmlColor( ThisForm.BackColor )

Function GetHtmlColor( nColor )
**************************

Local cHTMLColor, i, cTemp

Store "" To m.cHTMLColor, m.cTemp

For i = 1 To 3

m.cTemp = DecToHex( Val( Transform( nColor % 256, "999" )))
m.nColor= Int( m.nColor / 256 )

m.cHtmlColor = m.cHtmlColor + m.cTemp

EndFor

Return "#" + m.cHtmlColor

EndFunc

Function DecToHex( nRgbPart )
**************************

Local cChar, cAdd, nResult1, nResult2

Store "" To m.cChar, m.cAdd

If m.nRgbPart < 16

If m.nRgbPart > 9
m.cChar = Chr( 65 + ( m.nRgbPart - 10))
Else
m.cChar = Alltrim( Transform( m.nRgbPart ))
EndIf

Else

Do While .T.

m.cAdd = ""
m.nResult1 = Mod( m.nRgbPart, 16 )
m.nResult2 = Int( m.nRgbPart / 16 )
m.nRgbPart = m.nRgbPart - ( m.nResult2 * 16 )

If m.nResult2 > 9
m.cAdd = Chr( 65 + ( m.nResult2 - 10 ))
Else
m.cAdd = Alltrim( Transform( m.nResult2 ))
EndIf

m.cChar = m.cAdd + m.cChar

If m.nResult1 < 16

If m.nResult1 > 9
m.cAdd = Chr( 65 + ( m.nResult1 - 10 ))
Else
m.cAdd = Alltrim( Transform( m.nResult1 ))
EndIf

m.cChar = m.cChar + m.cAdd

Exit

EndIf

EndDo

EndIf

Return m.cChar

EndFunc

Cordial saludo,
Jorge Pérez
 

Leer las respuestas

#1 Luis María Guayán
29/09/2003 - 02:35 | Informe spam
Una función similar (y de menos líneas) esta en PortalFox:

Convertir el número de color a un formato válido para HTML
Enviado por: Luis María Guayán
http://www.portalfox.com/article.php?sidS4

También Jorge Mota publicó en PortalFox una función partiendo de la anterior:

Conocer el Codigo RGB y Hexadecimal de un color (de algun punto de la pantalla)
Enviado por: Jorge_Mota
http://www.portalfox.com/article.php?sidv9


Luis María Guayán
Tucumán, Argentina
__________________
SysOp de PortalFox
www.PortalFox.com
Microsoft VFP MVP
__________________


"Jorge Pérez" escribió en el mensaje
news:
Dos funciones útiles para programadores Web. Le permiten convertir colores
RGB a colores HTML. La primera de ellas se adaptó de una función expuesta
por Luis María Guayán en PortalFox.

Uso:

? GetHtmlColor( ThisForm.BackColor )

Function GetHtmlColor( nColor )
**************************

Local cHTMLColor, i, cTemp

Store "" To m.cHTMLColor, m.cTemp

For i = 1 To 3

m.cTemp = DecToHex( Val( Transform( nColor % 256, "999" )))
m.nColor= Int( m.nColor / 256 )

m.cHtmlColor = m.cHtmlColor + m.cTemp

EndFor

Return "#" + m.cHtmlColor

EndFunc

Function DecToHex( nRgbPart )
**************************

Local cChar, cAdd, nResult1, nResult2

Store "" To m.cChar, m.cAdd

If m.nRgbPart < 16

If m.nRgbPart > 9
m.cChar = Chr( 65 + ( m.nRgbPart - 10))
Else
m.cChar = Alltrim( Transform( m.nRgbPart ))
EndIf

Else

Do While .T.

m.cAdd = ""
m.nResult1 = Mod( m.nRgbPart, 16 )
m.nResult2 = Int( m.nRgbPart / 16 )
m.nRgbPart = m.nRgbPart - ( m.nResult2 * 16 )

If m.nResult2 > 9
m.cAdd = Chr( 65 + ( m.nResult2 - 10 ))
Else
m.cAdd = Alltrim( Transform( m.nResult2 ))
EndIf

m.cChar = m.cAdd + m.cChar

If m.nResult1 < 16

If m.nResult1 > 9
m.cAdd = Chr( 65 + ( m.nResult1 - 10 ))
Else
m.cAdd = Alltrim( Transform( m.nResult1 ))
EndIf

m.cChar = m.cChar + m.cAdd

Exit

EndIf

EndDo

EndIf

Return m.cChar

EndFunc

Cordial saludo,
Jorge Pérez



Preguntas similares