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;