![]() | |
Bir yazılımcının 3. ödevi: ScreenSaver | 04.07.2008 16:02:00 |
| Kategori : Visual Basic .NET Özet : İlk ve 2.ödevlerden sonra genelde bizlerden Windows’da yer alan farklı bir uygulamanın aynısını yapmamız istenir. Ekran koruyucusu yapıyoruz.. | |
Bir yazılımcının 3. ödevi: ScreenSaver
İlk ve 2.ödevlerden sonra genelde bizlerden Windows’da yer alan farklı bir uygulamanın aynısını yapmamız istenir. Ekran koruyucusu yapıyoruz..
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
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
' 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
Programı şuradan indirebilirsiniz: www.yagizgonuler.com/works/screensaver.zip
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. Farklı makalelerde tekrar görüşmek üzere.
Yağız GÖNÜLER
| |
Yazgelistir.com | |