Delphi World - Затемнить или осветлить цвет
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Затемнить или осветлить цвет

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

// Takes a TColor and returns either the lighter or darker color, depending on 
// the supplied integer (percentage of original to add or subtract) 
// I don't know if this is 100% correct - I did it away from my computer. 

function TMainForm.ChangeColor(InputColor: TColor; Lighten: Boolean; n: Extended): TColor;
 var
   r,g,b: extended;
 begin
   // Grab RGB values 
  r := GetRValue(InputColor);
   g := GetGValue(InputColor);
   b := GetBValue(InputColor);
   // Do the operation 
  if Lighten = True then
   begin
     r := r+((r/255)*100);
     g := g+((g/255)*100);
     b := b+((b/255)*100);
   end else
   begin
     r := r-((r/255)*100);
     g := g-((g/255)*100);
     b := b-((b/255)*100);
   end;
   // Check whether result is in range 
  if r > 255 then r := 255;
   if r < 0 then r := 0;
   if g > 255 then g := 255;
   if g < 0 then g := 0;
   if b > 255 then b := 255;
   if b < 0 then b := 0;
   // Send it out 
  Result := RGB(byte(Round(r)),byte(Round(g)),byte(Round(b)));
 end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования