Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выцветающий экран [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. Делать ему "выцветание" :) и на свою форму(во весь экран) рисовать


Наверх

Титульная страница Поиск, карта сайта Написать письмо