Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Screen Saver

Screen saverlar belli bir süre hiç bir olay yapmazsak çalışan programlardır. Bu screen saverları yazan belli başlı programlar yoktur.
İlk önce formumuzun windows statetini wsMaximized yapın. Sonrada formun color bölümünü clblack (siyah) yapın. Border style bölümünü bsnone yaptıktan sonra formla oynamamız bitecektir.

Şimdi kod bölümüne geçiyoruz

var
Form1: TForm1;
xyz,durum:boolean;
x1,x2,y1,y2:integer;

implementation

{$R *.DFM}
{$D SCRNSAVE <project1.scr>}

Formun kodunu yukardaki gibi yaptık tan sonra formun create, close ve keypress olaylarına geçiyoruz.

procedure TForm1.FormCreate(Sender: TObject);
begin
durum:=true; //x1,y1 'e bir kez değer atamak için kullanılacak
xyz:=true; //Sonsuz bir döngü yapmak için kullanılacak

end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
halt; //herhangi bir tuş takımına basıldığında program kapanacak
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
showcursor(true); //form kapatılırken mouse cursorunu görünür hale getir
end;

Bu işlemler tamamlandıktan sonra formun mousemove olayına geçiyoruz. Bu olayı mouse hareketlerini izlemek için kullanıcaz.

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin

if durum then begin //eğer durum true ise x1,y1 ve x2,y2 değişkenlerine değer atar
x1:=x;
y1:=y;
x2:=x;
y2:=y;
//şuan x1,x2'ye y1,y2'ye eşittir
durum:=false;
{ durum artık false olduğu için x1 ve y1 değişkenlerine bir daha değer girilmeyecektir}
end;

showcursor(false); //mouse cursorunu gizle
x2:=x; //yeni x değerini x2'ye aktar
y2:=y; //yeni y değerini y2'ye aktar

end;

Bu olayıda yazdıktan sonra yapmamız gereken tek şey istediğimiz döngü ve x1,x2'ye y1,y2'ye eşitmi diye kontrol etmek. Bunun içinde system bölümünde bir tane timer1 bileşenini formun üstüne yerleştirip aşağıdaki kodu girmek.

procedure TForm1.Timer1Timer(Sender: TObject);
var
r:trect; //formun boyutlarını öğrenmek için bir tane trect tipinde değişken oluştur
begin
r:=getclientrect; //formun boyutlarını al
if x1 <> x2 then halt; //x1,x2'ye eşit değilse programı kapat
if y1 <> y2 then halt; //y1,y2'ye eşit değilse programı kapat
while xyz do begin //sonsuz bir döngü başlat
application.ProcessMessages ; //formda gerçekleşen olayları takip et
canvas.pixels[random(r.right),random(r.Bottom)]:=rgb(random(255),random(255),random(255)); //rastgele yerlere rastgele sayılarde noktalar yerleştir
end;
end;

end;


Burda timer1'in interval değerini 1 yapın ve son olarakta project menüsünden options... bölümünü açın. Burda application sayfasını açın ve orda target file extension yazan yere scr yazın böylece compile ettiğiniz programın uzantısı scr olacaktır. Ve programı compile edip windows directory'sinin altına taşıyın bunları yaptıktan windows'un screen saver sayfasını açtığınızda screen saver listesinde programınızında olduğunu göreceksiniz.