Пока цвет текста был темный - он нормально смотрелся на стандартном светло-сером фоне.
Но вот уже светлый шрифт смотрелся уже не очень.
Решение нашлось довольно простое:
procedure TFontSelectDialog.FontChange(Sender: TObject);
var
Cl: TColor;
red, green, blue: Byte;
begin
pnlBackGround.Font.Assign(FEditedFont);
Cl := ColorToRGB(FEditedFont.Color);
red := Cl and $FF;
green := (CL shr 8) and $FF;
blue := (CL shr 16) and $FF;
Cl := clSilver;
if (1 - (0.299 * red + 0.587 * green + 0.114 * blue) / 255 < 0.5) then
// светлый шрифт
ChangeBrightness(Cl, 0.2)
else // темный шрифт
ChangeBrightness(Cl, 0.92);
pnlBackGround.Color := Cl;
end;
Комментариев нет:
Отправить комментарий