- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Markera en bitmap Kategori: Grafik
Inlagt: 2005-05-19
Läst: 1002
Inlagt av: Staffan Berg
Beskrivning
Genom att lägga över en annan färg på en bitmap ser den ut att vara markerad. Använd denna procedur för att få ut den effekten.
Kod
procedure Highlight(aSource, ATarget: TBitmap; AColor: TColor); 
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; 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -