Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2006
dicatek dicatek is offline
Miembro
 
Registrado: jun 2006
Posts: 46
Poder: 0
dicatek Va por buen camino
Ahí va el ultimo problema que me he encontrado,

ahora he echo la siguiente opción para que al mismo tiempo que se escoge un color, este quede mostrado en una TLabel con el siguiente código:

Código Delphi [-]
procedure TfrmPrincipal.Image4Click(Sender: TObject);
var
dlg: TColorDialog;
begin
with TColorDialog.Create(self) do
  try
    if Execute then
    begin
      StrColor:= ColorToStr(Color);
      EdColormenu.Text:= StrColor;
      MiColor:= StrToIntDef('$'+edColormenu.Text,0);
      Label1.Font.Color := MiColor;
    end;
  finally
    Free;
  end;

Lo que me sucede es que el color que me muestra, no es el que hemos escogido.
He estado probando y creo que sucede porque Delphi para escoger colores usa el otro sentido y por eso no me lo escoge bien.

Como podria hacer para solucionar ese problema?

Gracias!
Responder Con Cita
  #2  
Antiguo 13-07-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
En tu código esta usando la función ColorToStr, supongo que es la misma que he colocado en este mismo hilo, si no es así corrígeme. Como apreciaras la función intercambia los valores de rojo y azul para ajustarse al estándar, así que para volver a obtener el color original no puedes usar directamente IntToStrDef sino que debes usar la función StrToColor que vuelve a colocar el rojo y el azul en su sitio. Aprovecho para hacer unos retoques a la función:

Código Delphi [-]
function StrToColor(Color: string): TColor;
begin
  while length(Color) < 6 do
    Color:= '0' + Color;
  Color:= Copy(Color,5,2) + Copy(Color,3,2) + Copy(Color,1,2);
  Result:= StrToIntDef('$'+Color,0);
end;


Quedando el codigo de la siguiente manera:
Código Delphi [-]
  with TColorDialog.Create(self) do
  try
    if Execute then
    begin
      StrColor:= ColorToStr(Color);
      EdColormenu.Text:= StrColor;
      MiColor:= StrToColor(edColormenu.Text);
      Label1.Font.Color := MiColor;
    end;
  finally
    Free;
  end;
Responder Con Cita
  #3  
Antiguo 13-07-2006
dicatek dicatek is offline
Miembro
 
Registrado: jun 2006
Posts: 46
Poder: 0
dicatek Va por buen camino
Ok Guay! Creo que ya está solucionado.

Una cosa , si no es pedir mucho...ya que casi me he limitado a ir siguiendo tus conocimientos...(algunas cosas sí las entendido) estos ultimos retoques que dices haber echo. En realidad que es, y para que lo has retocado?

Una vez mas...gracias!
Responder Con Cita
  #4  
Antiguo 13-07-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por dicatek
En realidad que es, y para que lo has retocado?
Es solo para asegurarnos de que la cadena de texto tiene al menos 6 caracteres, rellenando con ceros a la izquierda si es necesario. Piensa que si un usuario quiere introducir manualmente el valor de un color, por ejemplo el azul 0000FF, puede caer en la tentación de no escribir los ceros pensando, erróneamente, que no tienen valor al encontrarse a la izquierda. Solo es por eso, si estamos seguros de que siempre se van a escribir las 6 cifras del color entonces podemos dejarlo como antes.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar paleta de colores de un TImage Drake C++ Builder 1 24-11-2011 00:43:53
Pasar de Hexadecimal a decimal chinchan C++ Builder 2 06-05-2006 14:26:07
Paleta de colores jdattoli Gráficos 7 03-06-2005 22:17:05
Asignar una paleta de 256 colores aromero Gráficos 0 29-10-2004 01:28:45
de Hexadecimal a Decimal Carlos A Ortega Varios 1 04-08-2003 22:14:56


La franja horaria es GMT +2. Ahora son las 07:36:06.


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