PDA

Ver la Versión Completa : Cambiar los colores de algunos componentes


santiago14
03-06-2016, 02:23:33
Buenas, estoy haciendo un sistema.
El propietario a contratado unos diseñadores gráficos para que le den "un mejor" aspecto al sistema. Lo han logrado. Ahora bien, a mí me toca cambiar los colores y demás para que los formularios queden como ellos los han diseñado.

El tema es que se me está haciendo difícil la tarea. Me pasaron los colores en Hex y resulta que no son iguales cuando los pongo en la propiedad Color de, por ejemplo, el form, de ahí que $0008B4AE es para ellos una gama de verde y a mí me sale una cosa medio amarilla.
Bueno, eso sería pedirle a estos tipos que me pasen los colores en formato RGB, tal vez eso solucione el drama.
La otra cuestión es que no puedo cambiar los colores de algunos lugares de los componentes. Por ejemplo el ComboBox, ellos han cambiado solamente el color del botón que despliega la lista, y la propiedad Color que tengo cambia el color del interior, y así.
También tienen un degradee en los botones, cambiaron el color de los botones del scroll de las grillas y los bordes de los componentes (por ejemplo el TEdit)
Ah, y esos bordes son redondeados.

Pregunta, ¿cómo puedo manipular los componentes un poco para meter los colores que necesito? ¿Y redondear los bordes?
Lo mas complicado es el asunto de los colores, puesto que los tipos de letras y los tamaños no son un problema.

Tengo los componentes JEDI por ahí, ¿habrá algunos que me ayuden en mi causa?

Bueno, muchas gracias.

ecfisa
03-06-2016, 03:55:55
Hola.

No olvides que es una consulta por hilo, de la guía de estilo:

12. Solo se permite una pregunta por hilo, es una cuestión de simplicidad y objetividad en las respuestas y facilita las búsquedas.


Si te referis a redondear las esquinas: show controls with rounded corners? (http://www.swissdelphicenter.com/torry/showcode.php?id=921).

En una ocasión Neftali había mencionado un enlace a una alternativa que no logro encontrar ahora, si lo hago te lo agrego.

Saludos :)

roman
03-06-2016, 04:01:54
Un color como $0008B4AE me imagino que está en formto RGB (R=08, G=B4, B= AE) aunque no sé para qué son los dos 0 iniciales. Éstos los pedes pasar a la funciín RGB de Dephi como hexadecimales: RGB($08, $B4, $AE) para obtener el valor que debes asignar a la propiedad Color. Lo acabo de probar en HTML y sí es un tono de verde :)

LineComment Saludos

ecfisa
03-06-2016, 04:02:15
No pude encontrar el hilo pero había guardado el enlace en marcadores, era este: Alternativas a los skins (http://cgarcia.blogspot.com.ar/2006/03/alternativas-los-skins.html).

Saludos :)

Edito: Usando: Color := $8B4AE, también obtengo un tono similar al verde oliva.

Delphius
03-06-2016, 06:16:58
Eso no es RGB! Hay un byte más muchachos! Y eso significa que uno de ellos es el canal alpha. Hay varios formatos: BGRA, RGBA, ARGB.

Si no se aclara ese punto, dificil avanzar. Puede que sea como apunta ecfisa y sugiera que se trate de ARGB... ¡o una simple coincidencia!

roman
03-06-2016, 08:38:41
Así es, puede ser el canal alfa, pero estando en cero... Pero, tienes razón, mientras no sepamos más no podemos decir gran cosa. De todas formas, parece que esos diseñadores se pensaron que estaban diseñando un sitio web y no una aplicación de escritorio ;)

LineComment Saludos

Neftali [Germán.Estévez]
03-06-2016, 10:12:34
Para el tema de los colores hay infinidad de utilidades que e pueden ayudar.

Yo en concreto, uso a menudo una llamada ColorPic (http://www.iconico.com/colorpic/) que te muestra cualquier color en varias codificaciones.

http://s26.postimg.org/e3wtgv7d5/Captura_2016_06_03_at_10_12_56.png

En delphi tienes la correspondencia (cambiando el orden)

http://s26.postimg.org/a4zly1iq1/Captura_2016_06_03_at_10_11_42.png

Neftali [Germán.Estévez]
03-06-2016, 10:24:24
Pregunta, ¿cómo puedo manipular los componentes un poco para meter los colores que necesito? ¿Y redondear los bordes?
Lo mas complicado es el asunto de los colores, puesto que los tipos de letras y los tamaños no son un problema.


Para este tema, aunque ya te han pasado algunos links, te recomiendo que revises soluciones ya programadas, porque el tema del "pintado" de los componentes no es algo simple y trivial. Es un tema complicado; Los mensajes DRAW y PAINT -relacionados- son delicados de tocar y si no se tiene claro lo que se está haciendo, se pueden generar muchos problemas.

No comentas la versión de delphi que usas.

* Una opción es utilizar (si puedes) una de las últimas versiones de delphi, que soportan estilos.
* La otra es revisar alguno de los paquetes comerciales que hay para skins (que son todos de pago). AlphaSkins, Almdev, Link-rank, TMS, sunisoft,...

santiago14
03-06-2016, 13:02:14
Gracias a todos.
Había olvidado eso de hacer una sola pregunta por Hilo. Lo tendré en cuenta.
Uso Delphi 7.

Santiago.

ecfisa
03-06-2016, 13:10:35
Hola Santiago.

Encontre unos componentes (freeware+source) que trae un combobox que permite el cambio de color del arrow down button : ALListBox v.4.02 (http://torry.net/pages.php?s=76).
También trae demos ejecutables, así que podes revisar el comportamiento antes de instalarlos.

Saludos :)

santiago14
03-06-2016, 14:56:03
Hola Santiago.

Encontre unos componentes (freeware+source) que trae un combobox que permite el cambio de color del arrow down button : ALListBox v.4.02 (http://torry.net/pages.php?s=76).
También trae demos ejecutables, así que podes revisar el comportamiento antes de instalarlos.

Saludos :)

Mil gracias compañero. Los reviso y aviso.

santiago14
03-06-2016, 21:17:05
Para el tema de los colores hay infinidad de utilidades que e pueden ayudar.

Yo en concreto, uso a menudo una llamada ColorPic (http://www.iconico.com/colorpic/) que te muestra cualquier color en varias codificaciones.

http://s26.postimg.org/e3wtgv7d5/Captura_2016_06_03_at_10_12_56.png

En delphi tienes la correspondencia (cambiando el orden)

http://s26.postimg.org/a4zly1iq1/Captura_2016_06_03_at_10_11_42.png

Tenías razón, hay que dar vuelta los valores y la cosa pinta mejor.
Por ejemplo: DED2B4 que me enviaron los diseñadores es para Delphi (7 y XE5) #00B4D2DE, hay que cambiar los HEX del final por los primeros.
Bueno, con eso ya estoy mas cerca.

Muchas gracias.

santiago14
03-06-2016, 21:18:08
Hola Santiago.

Encontre unos componentes (freeware+source) que trae un combobox que permite el cambio de color del arrow down button : ALListBox v.4.02 (http://torry.net/pages.php?s=76).
También trae demos ejecutables, así que podes revisar el comportamiento antes de instalarlos.

Saludos :)

Estoy viendo los componentes, los he descargado pero me están dando varios errores al momento de la instalación.
Voy a seguir insistiendo y comento.

Santiago.

Delphius
04-06-2016, 01:33:30
Tenías razón, hay que dar vuelta los valores y la cosa pinta mejor.
Por ejemplo: DED2B4 que me enviaron los diseñadores es para Delphi (7 y XE5) #00B4D2DE, hay que cambiar los HEX del final por los primeros.
Bueno, con eso ya estoy mas cerca.

Muchas gracias.

Por lo que dices, eso sugiere que el formato es ABGR. Pero que yo recuerde, este no existe.
Lo extraño es que Lazarus también muestra el color así. Recién caigo en la idea. No le había prestado antención.

Aunque ahora que lo pienso, ¿no será que esto está dado en orden de bytes? Ahí tendría sentido... a lo que nosotros llamamos coloquialmente RGBA internamente la máquina debe hacer esto: MSB -- ABGR -- LSB. Por tanto en la parte más baja estará el rojo y en la más alta el canal alfa. Tengo entendido que este es el orden que sigue el formato PNG, y que incluso en el que trabaja OpenGL.
Lo que no sabría decir es si esto también se ve afectado por el endianness.

Saludos,