Bir yazılımcının 3. ödevi: ScreenSaver

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:54

Aslında not defteri uygulamasıyla bu uygulama arasında kararsız kalmıştım ancak baktım ki not defteri uygulamasında farklı kaynaklarda bolca örnek var. Ekran koruyucusu daha çok ilgi çeker diye hemen hazırlıklara başladım.

 

Tasarım olarak ne kullanacağız diye merak ediyorsunuzdur mutlaka. Cevap veriyorum: Form. Ancak bu formun birkaç özelliği olacak. Bu özellikleri veremezseniz yada vermeyi unutursanız ekran koruyucusundan cevap alamazsınız.

 

Maddeler halinde kullanacağımız formun özelliklerini veriyorum:

 

-Forecolor, Backcolor: Black (Arka plan ve font rengi siyah ayarlanıyor)

-Tranceparencykey: Transparent (Transparan olacak)

-WindowState: Maximized (Form ekranı kaplayacak şekilde ayarlanıyor)

-Opacity: %20 (Şeffaflık yüzde yirmi olarak ayarlanıyor)

-FormBorderStyle: None (Border kabul etmiyoruz)

-AutoScaleMode: Inherit

 

 

Bu özellikler yoluyla formumuz simsiyah olacak ve hiçbir özelliği bulunmayacak. Zaten ekran koruyucusu da çalıştığında ekranımız simsiyah olacak. Bir anlık panikle korkmayınız bu durumdan J

 


Formun görünümünü buraya eklememe gerek yok zira simsiyah bir kutu düşünün aynısı. Görüntü olarak kötü duracağından eklemiyorum.

 


Evet artık kodlara geçiyorum ve burada yine her zaman olduğu gibi “kodların açıklamaları satır aralarında” diyorum. Tıpkı diğer tüm makalelerimde olduğu gibi.

 




'point; x ve y koordinatlarıyla belirlenen nokta objesidir

Dim pnt As New Point

'burada ise yazı tipimizi belirtiyoruz

Dim YaziTipi() As String = {"Times New Roman", "Tahoma", "Verdana", "Arial"}

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'formun açılışındaki daha doğrusu ekran koruyucusunun aktif hale geçtiği zamanda olacak eylemler

pnt.X = MousePosition.X

pnt.Y = MousePosition.Y 'ilk mouseun ilk standart degerlerını tutuyor

Windows.Forms.Cursor.Hide() 'kursoru gızler

End Sub

 




Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove

' math namespace MATEMATİK

'ABS yuvarlama ıslemını yapıyor

If Math.Abs(pnt.X - e.X) > 6 Or Math.Abs(pnt.Y - e.Y) > 6 Then

Me.Close()

End If

'böylece ekran koruyucusu aktifken mouse hareket ettirildiğinde ekran koruyucumuz kapanıyor

End Sub

 

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

'herhangi bir tuşa basıldığında da formumuz yani ekran koruyucumuz kapanıyor

Me.Close()

End Sub

 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Static SayacEfekt As Integer ' bir değişken oluşturarak,sayının tutulması saglanıyor

SayacEfekt += 1 'Timer her calıstıgında sayacı bır arttırıyor

If SayacEfekt = 200 Then

SayacEfekt = 50 'sayac 200 olmuşsa onu tekrar 50 yapıyor

End If

 

If SayacEfekt > 20 Then 'sayac 20 den buyukse

'İŞLEMLER YAPILACAK

'----------------------------

Dim grf As Graphics = Me.CreateGraphics

Dim rnd As New Random 'random değer üretmek için

Dim fnt As New Font(YaziTipi(rnd.Next(YaziTipi.Length)), rnd.Next(8, 42))

Dim brs As New SolidBrush(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255), rnd.Next(255)))

'-----------

ElseIf SayacEfekt <= 20 Then '20 den kucukse 20 den az calısmısa

If Me.Opacity <= 100 Then 'formun goruntü yanı şeffaflık sevıyesı

Me.Opacity += 0.1 'her calıstıgında formu daha gorunur hale getırıyor

End If

End If

End Sub

End Class

 

Umarım 3 seriden oluşan bu makale dizisi işe yarar olmuştur. Ödev aşamasındaki ve uzmanlık yolundaki tüm yazılımcı adayları için ideal örnekler olduğuna inanıyorum. Herkese kolay gelsin, iyi ödevler ve bol şanslar.

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Articles | Software | Windows

Yorumlar

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.
Sitedeki kod ve tasarım değişiklikleri ise Yağız Gönüler tarafından geliştirilmiştir.
2008 © www.yagizgonuler.com

Anket

Yazılım geliştirirken en keyif aldığınız alan hangisi?




Sonuçlar

Son Yorumlar

Comment RSS

Calendar

<<  Kasım 2008  >>
PaSaÇaPeCuCuPa
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Yazıları geniş takvimde göster

Ne Dinliyorum?

Şevval Sam - Ben Seni Sevduğumi (18 saat önce)
Şevval Sam - Oy Benim Sevduceğim (18 saat önce)
Şevval Sam - Giresun Karsilamasi (18 saat önce)
Şevval Sam - Karardı Karadeniz (18 saat önce)
Şevval Sam - Potbori (18 saat önce)
Şevval Sam - Ahmedum (19 saat önce)
Şevval Sam - Çayeli'nden Oteye/Menşure (19 saat önce)
Şevval Sam - Dertliyim Kederliyim (19 saat önce)
Şevval Sam - Bu Dünya Bir Pencere (19 saat önce)
Şevval Sam - Ander Sevdaluk (19 saat önce)

Ne Okuyorum?

Haftanın Sözü



"Savaşlara ait kitaplar kütüphanemin en güzel eserleridir. Yorgunluğumu gidermeye çalıştığım zamanlarda okuduğum ve bana en çok zevk veren kitaplardır. "

Napolyon Bonapart
(1769-1821)

Ziyaretçi Sayısı

Ziyaretçi Sayısı