Поместите TImage (Image1) на форму и загрузите точечный рисунок 24-бита или 32-бита, поместите TButton (Button1) и запишите в событии кнопки OnClick:
procedure TForm1.Button1Click(Sender: TObject);
procedure FadeOut(const BMP: TImage; Pause: integer);
var
BytesPorScan : integer;
w,h : integer;
p : pByteArray;
counter : integer;
begin
{Это работает толькос 24 или 32 битными точечными рисунками}
If Not (BMP.Picture.Bitmap.PixelFormat
in [pf24Bit, pf32Bit])
then raise exception.create
('Error, bitmap format not supported.');
try
BytesPorScan:=
Abs(Integer(BMP.Picture.Bitmap.ScanLine[1])-
Integer(BMP.Picture.Bitmap.ScanLine[0])) ;
except
raise exception.create('Error');
end;
{Уменьшаем RGB для каждого пиксела}
for counter:= 1 to 256 do
begin
for h:= 0 to BMP.Picture.Bitmap.Height - 1 do
begin
P:=BMP.Picture.Bitmap.ScanLine[h];
for w:= 0 to BytesPorScan - 1 do
if P^[w] > 0 then P^[w]:= P^[w] - 1;
end;
Sleep(Pause) ;
BMP.Refresh;
end;
end; {procedure FadeOut}
begin {button1_click}
FadeOut(Image1, 5);
end;
Комментарии