На панели "лежит" TLabel. Контрастность цвета подбирается для неё в зависимости от цвета панели.
Код:
function ContrastColor(Color : TColor) : TColor;
var
R, G, B : Byte;
begin
R := GetRValue(Color);
G := GetGValue(Color);
B := GetBValue(Color);
if (R < 128) then
R := 255
else
R := 0;
if (G < 128) then
G := 255
else
G := 0;
if (B < 128) then
B := 255
else
B := 0;
Result := RGB(R, G, B);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
Panel1.Color := ColorDialog1.Color;
Label1.Font.Color := ContrastColor(ColorDialog1.Color);
end;
end;