Ver Mensaje Individual
  #2  
Antiguo 22-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Puedes usar el componete TColorDialog que se encuentra en la paleta de componentes "Dialogs".

Aqui un ejemplo creandolo sobre la marcha
Código Delphi [-]
var
  StrColor: string;
begin
  with TColorDialog.Create(self) do
  try
    if Execute then
    begin
      StrColor:= IntToHex(Color,6);
      Edit1.Text:= StrColor;
    end;
  finally
    Free;
  end;
end;

Para volverlo a utilizar
Código Delphi [-]
var
  MiColor: TColor;
begin
  MiColor:= StrToIntDef('$'+Edit1.Text,0);
end;

Podemos darle otra vuelta de tuerca, si queremos que sea compatible con los colores utilizados en html, tenemos que intercambiar la posicion del color rojo con la del azul.

Algo asi:
Código Delphi [-]
function ColorToStr(Color: TColor): string;
begin
  Result:= IntToHex(Color,6);
  Result:= Copy(Result,5,2) + Copy(Result,3,2) + Copy(Result,1,2);
end;

function StrToColor(Color: string): TColor;
begin
  Color:= Copy(Color,5,2) + Copy(Color,3,2) + Copy(Color,1,2);
  Result:= StrToIntDef('$'+Color,0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  StrColor: string;
begin
  with TColorDialog.Create(self) do
  try
    if Execute then
    begin
      StrColor:= ColorToStr(Color);
      Edit1.Text:= StrColor;
    end;
  finally
    Free;
  end;
end;
Responder Con Cita