Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2005
quake2420 quake2420 is offline
Miembro
 
Registrado: abr 2004
Posts: 28
Poder: 0
quake2420 Va por buen camino
problemas con el cuadro Color.Dialog

Hola amigos, a ver si esta duda que tengo se puede resolver...

Estoy intentando sacar el valor verdadero de un color dialog para luego insertar dicho valor en una hoja de estilo css.
Mi problema es con los colores herederos del rojo (marron ,naranja...) y con los azules(azul claro, magenta...).
Me explico,lo que hago es Usar la funcion:
l:=ColorToRGB(colordialog1.Color);
despues uso la funcion:
color:=IntToHex(l,6);
le añado el simbolo '#' para luego al ejecutar la css se pueda mostrar el color que hemos elegido pero cual es mi sorpresa que si eligo el color naranja y hago los pasos antes mencionado me muestra un color azul y viceversa me ocurre lo mismo.
A ver si sabeis por que puede ser
Gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 22-04-2005
igest2000 igest2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Oviedo
Posts: 47
Poder: 0
igest2000 Va por buen camino
Ese problema me sucedio a mi también. Y te explico, cuadno aplicas esas funciones te da los séis codigos hezadecimales para representar los colores, pero invertidos. Ahora mismo no me acuerdo exactamente pero en lugar de RGB en css tendrías que poner BGR. Yo solucione el problema creando una funcion que invertia los dos códigos hexadecimales que te comento que estaban cambiados, aunque ahora mismo no tengo aqui a mano el codigo.

Espero te sirva esto.
__________________
=================
El destino esta marcado
y ellos lo saben.
=================
Responder Con Cita
  #3  
Antiguo 20-05-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Yo tambien tengo un problema parecido al colorear las filas de un dbgrid, no hay manera de que me muestre el color que yo quiero. Por ejemplo le pongo este color --> #FFFF00 y me saca un azul chillon muy feo.
Alguien sabe como funciona esto de los colores el delphi ?

Los códigos de los colores los saco de aquí, nose si servirá --> http://www.webtaller.com/utilidades/...er/colores.php

Saludos
Responder Con Cita
  #4  
Antiguo 20-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
¿Donde utilizas el valor #FFFF00? ¿Puedes poner la linea de código donde lo usas?
Responder Con Cita
  #5  
Antiguo 20-05-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Lo uso aquí :

Código Delphi [-]
procedure TForm13.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
 clPaleGreen = Tcolor($CCFFCC);
 clPaleRed = TColor($CCCCFF);
 clPaleYellow= TColor($FFFF00);
begin
if column.Field.DataSet.FieldByName('HECHO').AsString='NO'
 then
  if (gdFocused in State)
   then dbgrid1.Canvas.brush.Color:=clblack
    else
     dbgrid1.Canvas.brush.Color:=clPalered;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);

if column.Field.DataSet.FieldByName('HECHO').AsString='SI'
then
  if (gdFocused in State)
   then dbgrid1.Canvas.brush.Color:=clblack
    else
     dbgrid1.Canvas.brush.Color:=clPaleGreen;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);

if column.Field.DataSet.FieldByName('PRIORIDAD').AsString='URGENTE'
then
  if (gdFocused in State)
   then dbgrid1.Canvas.brush.Color:=clblack
    else
     dbgrid1.Canvas.brush.Color:=clPaleYellow;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);

end;
Responder Con Cita
  #6  
Antiguo 20-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Bien, el problema esta aqui:
Código Delphi [-]
 clPaleGreen = Tcolor($CCFFCC);
 clPaleRed = TColor($CCCCFF);
 clPaleYellow= TColor($FFFF00);

En delphi, si haces ese tipo de asignación debes intercambiar el primer y ultimo byte para obtener el resultado que tu esperas. Es decir:
Código Delphi [-]
 clPaleGreen = Tcolor($CCFFCC);
 clPaleRed = TColor($FFCCCC);
 clPaleYellow= TColor($00FFFF);
Responder Con Cita
  #7  
Antiguo 20-05-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Gracias seoane, así si que funciona perfectamente.
Hay que ver que cosas más raras pasan cuando lo normal sería mantener el mismo código hexadecimal del color en delphi y que funcionara de la misma manera sin tener que cambiar nada.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:06:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi