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

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

{ 
Question: 
  Does anyone know of a way that I can achieve the same effect on a bitmap 
  that windows achieves when you single click on an icon on the desktop?  In 
  other words, I want to "sorta highlight" a bitmap and let the user know that 
  it's selected. 

Answer: 

  To me it appears as if the icons on my desktop are highlighted by overlaying 
  them with a certain color, so I guess the following routine is of use. 
}


 procedure Highlight(aSource, ATarget: TBitmap; AColor: TColor);
 //alters ASource to ATarget by making it appear as if 
//looked through 
//colored glass as given by AColor 
//ASource, ATarget must have been created. 
//Isn't as slow as it looks. 
//Physics courtesy of a post by K.H. Brenner 
var i, j: Integer;
   s, t: pRGBTriple;
   r, g, b: byte;
   cl: TColor;
 begin
   cl := ColorToRGB(AColor);
   r := GetRValue(cl);
   g := GetGValue(cl);
   b := GetBValue(cl);
   aSource.PixelFormat := pf24bit;
   ATarget.PixelFormat := pf24bit;
   ATarget.Width := aSource.Width;
   ATarget.Height := aSource.Height;
   for i := 0 to aSource.Height - 1 do
   begin
     s := ASource.Scanline[i];
     t := ATarget.Scanline[i];
     for j := 0 to aSource.Width - 1 do
     begin
       t^.rgbtBlue := (b * s^.rgbtBlue) div 255;
       t^.rgbtGreen := (g * s^.rgbtGreen) div 255;
       t^.rgbtRed := (r * s^.rgbtRed) div 255;
       inc(s);
       inc(t);
     end;
   end;
 end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования