Would you like to make this site your homepage? It's fast and easy...
Yes, Please make this my home page!
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.