![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выцветающий экран [D5, WinXP]
dzugaru © (2005-09-08 01:36:00)Господа, возникла необходимость сделать изображение на экране "выцветающим" (как в winXP, при завершении работы)
Не подскажете, как это можно реализовать?
programania (2005-09-10 23:17:00) [1]Выцветание экрана
program delColor;{$R-,S-}
uses Graphics, forms, SysUtils, windows, Classes;
const
f=254; //чем меньше тем быстрее
var
ce:tCanvas;
x,y,h,w,i,j,x1,c:integer;
b:Graphics.tBitmap;
s :pbytearray;
begin
ce:=tCanvas.create;
ce.Handle:=GetDC(0);
h:=screen.height; w:=screen.width;
b:=Graphics.tBitMap.create; b.pixelformat:=pf24bit; b.width:=w; b.height:=h;
b.canvas.copyRect(rect(0,0,w,h),ce,rect(0,0,w,h));
for c:=1 to 100 do begin
for y:=1 to h-1 do begin
s:=b.ScanLine[y];
x1:=0;
for x:=1 to w-1 do begin
i:=(s[x1]+s[x1+1]+s[x1+2]) div 3;
s[x1]:=i+(s[x1]-i)*f div 256; inc(x1);
s[x1]:=i+(s[x1]-i)*f div 256; inc(x1);
s[x1]:=i+(s[x1]-i)*f div 256; inc(x1);
end;
end;
ce.draw(0,0,b);
end;
halt;
end.
vrem (2005-09-09 17:09:00) [2]1. Сделать снимок экрана
2. Делать ему "выцветание" :) и на свою форму(во весь экран) рисовать