Makale Özeti

Yıl 2002. Visual Studio .Net, Framework ve dilleriyle tanıştığım yıl. İlk yaptığım programlardan biri. Daha doğrusu ödev demeliydim. Yeni başlayanlar için çok ideal..

Makale

Bir yazılımcının ilk ödevi: Hesap Makinesi

 

Yıl 2002. Visual Studio .Net, Framework ve dilleriyle tanıştığım yıl. İlk yaptığım programlardan biri. Daha doğrusu ödev demeliydim. Yeni başlayanlar için çok ideal..

 

Program hususunda çok açıklama yapmıycam zira kod açıklamaları zaten satırların arasında yazılı olacak. Yalnız bir windows programı olduğunu, başlıktan da anlaşıldığı gibi visual basic .net ile yazıldığını ve çalışması için .net framework’ün bilgisayarınızda yüklü olması gerektiğini belirtmek isterim.

Programın tasarımı aşağıda gördüğünüz gibi;

 

 

 


Textbox ve Button kontrolleri dışında hiçbirşey yok. Aşağıda kodlar yer almakta. Çok iyi takip ederseniz ilk okuyuşunuzda anlamanız mümkün. Açıklamalarıda sürekli olarak altlarında olacak. Kolay gelsin..

 

 

   
'formun load, yani açılış esnasında gerçekleştirilen eylemleri burada

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

        'd isminde bir değişken tanımladım

        'bu değişkenin tipi double yani tam,kesirli ve ondalık sayılarıları tanimlayabiliyor

        Dim d As Double

        'bir for döngüsü kurdum

        'bu döngü formun açılışın saydamdan belirgine olmasını sağlayacak

        For d = 0 To 1 - 0.1 Step +0.1

            'd'nin degerini 0 olarak tanimladim

            'her 0.1'lik artışta sistemi 5 salise durduruyorumki saydamlık anlaşılsın

            System.Threading.Thread.Sleep(50)

            'burada uygulama 2 iş birden yapabilir hale geliyor

            Application.DoEvents()

            'opacity yani saydamlık derecesini d değişkenine atadım

            Me.Opacity = d

            'programı yeniledim

            'böylece program açılırken en saydamdan en donuk hale geldi

            Me.Refresh()

        Next d

    End Sub

 

    '3 tane değişken tanımladım

    'islemsecildi değişkeni boolean(evet/hayır) olarak seçtim ve

    'varsayılan olarak "hayır" değerini verdim

    Private islemsecildi As Boolean = False

    'sayi değişkenine sayı değerlerini tutması için double değeri verdim

    Private sayi As Double

    'islem degiskenine metin degeri tutacagi icin string degeri verdim

    Private islem As String

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click, Button10.Click

        'üzerinde rakam yazan tüm buttonlardan herhangi birine tıklandığında

        'yapılacak işlemleri belirtiyoruz

        If Not islemsecildi Then

            txtsayi.Text &= sender.text

        Else

            'islemsecildinin degeri varsa

            'sayı olarak senderdaki sayıyı atıyoruz

            txtsayi.Text = sender.text

            'daha sonra tekrar islemsecildiyi false olarka belirtiyoruz

            'yani ilk haline döndürüyoruz

            islemsecildi = False

        End If

    End Sub

Private Sub btncarp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncarp.Click, btnbol.Click, btncikar.Click, btntopla.Click

        'çarp, böl, topla yada çıkar buttonlarına basıldığında

        'islem değişkeni çağrımızı yapacağımız sendera işi gönderecek

        islem = sender.text

        'bunu bir try catch kontrolüyle gerçekleştiriyoruz

        Try

            'sayımız, textboxda yazan sayı

            sayi = txtsayi.Text

            'boolean değerli işlemsecildi değişkenimize evet değeri atıyoruz

            islemsecildi = True

        Catch ex As Exception

            'işlem yapıldığında aksi bir durum oluşursa hata mesajı yayınlanacak

            MsgBox("Sayı düzgün formatta girilmedi")

        Finally

            'son olarak işlem düzgün olarak tamamlandığında

            'sayı yazan yer ve sayı hafızası temizlenecek

            txtsayi.Text = ""

            txtsayi.Focus()

        End Try

    End Sub

 

   

Private Sub btnesit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnesit.Click

        'üzerinde eşittir yazılı buttona basıldıktan sonra bir select case döngüsüyle

        'eşittirden önce çarpı denildiyse çarpıcak, bölü dediyse bölünecek vs..

        Select Case islem

            Case "*"

                sayi *= txtsayi.Text

            Case "/"

                sayi /= txtsayi.Text

            Case "-"

                sayi -= txtsayi.Text

            Case "+"

                sayi += txtsayi.Text

        End Select

        'döngü bittiğinde sayı, textboxa yazdırılacak

        txtsayi.Text = sayi

    End Sub

 

   
Private Sub btntemizle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntemizle.Click

        'üzerinde c yazan temizle butonuyla hem textboxı boşaltıyoruz

        'hemde hafızadaki sayıyı sıfırlıyoruz

        sayi = 0

        islemsecildi = False

        txtsayi.Text = ""

        txtsayi.Focus()

End Sub

 

Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkapa.Click

        'kapat buttonuna tıklandığında nasıl form açılırken en saydamdan

        'en donuğa geliyorsa bundada aynısı oluyor

        'dolayısıyla kod açıklamalarını tekrar yazmıyorum

        Dim d As Double

        For d = 1 To 0 + 0.2 Step -0.2

            System.Threading.Thread.Sleep(50)

            Application.DoEvents()

            Me.Opacity = d

            Me.Refresh()

        Next d

        'burada programı kapatıyoruz

        Environment.Exit(0)

    End Sub

 






Private
Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

 

        'programın güzel özelliklerinden biri mouse kullanmadan da rakamların girilebileceği

        'ancak numpad değerlerinin sadece pclerde çalışacağını, laptoplarda olmayacağını belirteyim

        Select Case e.KeyCode

            'klavyeden 0'a basıldığında textboxa rakamı yazacak

            'diğer tuşlalarda da aynı işlem gerçekleşecek

            Case Keys.NumPad0

                txtsayi.Text = 0

            Case Keys.NumPad1

                txtsayi.Text = 1

            Case Keys.NumPad2

                txtsayi.Text = 2

            Case Keys.NumPad3

                txtsayi.Text = 3

            Case Keys.NumPad4

                txtsayi.Text = 4

            Case Keys.NumPad5

                txtsayi.Text = 5

            Case Keys.NumPad6

                txtsayi.Text = 6

            Case Keys.NumPad7

                txtsayi.Text = 7

            Case Keys.NumPad8

                txtsayi.Text = 8

            Case Keys.NumPad9

                txtsayi.Text = 9

        End Select

    End Sub

End Class

 

 

 

Bundan sonraki makalem yine bir yazılımcının ilk ödevleri arasında yer alan bir program olacak.

 

 

Farklı makalelerde tekrar görüşmek üzere.

 

Yağız GÖNÜLER

yagizgonuler@gmail.com