![]()  | 
![]() ![]() ![]() ![]()  | 
   
 | 
Получить цвет обратный указанномуDelphi , Графика и Игры , Цвета и ПалитраПолучить цвет обратный указанному
Оформил: DeeCo 
procedure EdBackColor(FontC: TColor; var EditableColor,
   ReadOnlyColor: TColor);
   // Calculate the luminance of the color using the simplified formula 
  //     luminance = 0.25*red + 0.625*green + 0.125*blue 
  // If greater than 0.5, use a dark background 
var
   R, G, B: Integer;
 begin
   R := GetRValue(FontC) * 2;
   G := GetGValue(FontC) * 5;
   B := GetBValue(FontC);
   if R + G + B < 1024 then
   begin
     EditableColor := clWhite;
     ReadOnlyColor := clSilver;
   end
   else
   begin
     EditableColor := clBlack;
     ReadOnlyColor := clDkGray;
   end;
 end;
Приведенный код на Delphi - процедура  Вот шаг за шагом, что код делает: 
 Расчет луминанса основан на предположении, что цвет с высоким луминансом (то есть светлый цвет) должен иметь темное фоновое изображение, а наоборот. Это общая техника, используемая в многих графических пользовательских интерфейсах для улучшения читаемости и доступности. Вот альтернативное решение с более современным и читаемым кодом: В этом варианте я использовал более описательные имена переменных, а также убрал ненужные точки с запятой. Логика осталась той же, что и в оригинальном коде, но теперь она более легко читается и понимается. Процедура EdBackColor возвращает цвета обратные указанному, используя формулу расчета луминанса и определяя светлый или темный фон в зависимости от результата. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш  :: Главная :: Цвета и Палитра :: 
  | 
||||
 ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007  | ||||