Numaratör.net (İlk Çalışmam)

04/01/2016, 21:50

emir ustaoğlu

Merhaba

AccessTr.NET sayesinde Access konusunda hiç bir bilgim yok iken özellikle Sayın Atoz112 ve Ozanakkaya hocalarımın destekleriyle kendimi baya ilerlettiğimi düşünüyorum Hal böyle olunca bir de vb.net e el atmak istedim ve kurcalayarak internette araştırarak bişeyler öğrenmeye başladım. Tabi öğrenmem Access teki kodlama deneyimimden (amatörce)  altyapı olduğu için pek zor olmadı vb.net te yapmış olduğum ilk uygulamamı sizlerle paylaşıyorum. çalışmam geçtiğimiz aralık sonu malum defter tastik dönemi idi ve lazım oldu internetten bir tane buldum işimi gördü ancak neden ben yapmayım düşüncesi ile oluşturdum.
Ekte çalışmanın sadece exe sini veriyorum.
Kaynak kodta aşağıdaki gibi;
 Dim i As Integer = 0
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim ilksayi As Integer = CInt(TextBox1.Text)
        Dim sonsayi As Integer = CInt(TextBox2.Text)




        If CInt(TextBox1.Text) <= "0" Then
            MsgBox("İlk sayfa numarasını girmediniz", vbInformation, "Uyarı")
            TextBox1.Focus()
        ElseIf CInt(TextBox2.Text) <= "0" Then
            MsgBox("Son sayfa numarasını girmediniz.", vbInformation, "Uyarı")
            TextBox2.Focus()
        ElseIf CInt(TextBox2.Text) < CInt(TextBox1.Text) Then
            MsgBox("Son sayfa numarası ilk sayfa sunarasından küçük olamaz.", vbCritical, "Uyarı")
            TextBox2.Focus()
        Else
            Dim pdx As Integer
            For pdx = 1 To ComboBox1.Text
                Dim pd As New System.Drawing.Printing.PrintDocument
                AddHandler pd.PrintPage, AddressOf PrintDocument_PrintPage
                pd.Print()
            Next
        End If
    End Sub
    Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)




        Dim ilksayi As Integer = CInt(TextBox1.Text)
        Dim sonsayi As Integer = CInt(TextBox2.Text)
        Dim fark As Integer = sonsayi - ilksayi
        While i < fark + 1
            e.Graphics.DrawString((i + ilksayi).ToString, New Font("Cambria", 14, FontStyle.Bold), Brushes.Black, e.PageSettings.PaperSize.Width - 105, 45)




            i = i + 1
            Exit While
        End While
        If i < fark + 1 Then e.HasMorePages = True Else e.HasMorePages = False : i = 0
    End Sub




    Private Sub numarator_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox1.Text = "1"
        Button1.Enabled = False
    End Sub




    Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            TextBox2.Focus()
        End If
    End Sub




    Private Sub TextBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox2.KeyDown
        If e.KeyCode = Keys.Enter Then
            ComboBox1.Focus()
        End If
    End Sub




    Private Sub ComboBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            Button1.Focus()
        End If
    End Sub
    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
        Button1.Enabled = True
    End Sub

Program "6" haneli sayılara kadar sorunsuz bir şekilde döküm almakta sayfaya tam sığmaktadır. Kodları internetten bulduğum ve sayın Drummers in burada paylaşmış olduğu kodlar ile karıştırdım kodlamada sadece "3" haneli sayılar döküm alına bilmekteydi ve son rakam sayfanın çok sağında kalmaktaydı ben kodlarda düzenleme yaparak bu sorunu çözdüm.

Eğer yazı fontunu değiştirmek yada yazıları daha sola ve/veya daha aşağı almak isteyen olursa ilgili kod satırı;
e.Graphics.DrawString((i + ilksayi).ToString, New Font("Cambria", 14, FontStyle.Bold), Brushes.Black, e.PageSettings.PaperSize.Width - 105, 45)
PrintDocument satırı altındaki kodta bulunan ilgili yerleri değiştirerek yapabilirler.
Çoğu kişi biliyordur ancak benim gibi yeni vb.net e başlayanlar için kod içindeki "105" sayısı sağ taraftan olan uzaklık dahada uzaklaştırmak için büyütmek yakınlaştırmak için küçültmek gerekir, "45" sayısı yukarıdan olan uzaklıktır daha da aşağı indirmek için büyütmek yukarı çıkartmak için küçültmek gerekir.
Saygılarımla

Ek olarak;
Visual Basic.Net hakkında daha fazla bilgi edinmek ve öğrenmek istiyorum bunun için nereden başlamalıyım veya tavsiye edebileceğiniz bir kaynak/kitap var mı ?
Teşekkürler.

[attachment=24167]
04/01/2016, 21:59

ozguryasin

Hocam Paylaşım için Teşekkürler.
05/01/2016, 11:30

alpeki99

Eğer uzun vadede düşünüyorsan vb.net yerine c# a geçiş yap. Hem kaynak olarak c# sınırsız hem de microsoft'un ileride vb.net desteğini keseceğine dair söylentiler var. Mesela şu aralar Asp.Net 5 MVC 6 için proje vb.net için oluşturulamıyor. Belki stabil sürüm çıkınca olabilir ancak şimdilik gözüken yok gibi.

Şu anda masaüstü program kodluyorsunuz ancak yarın bir gün web sitesi ihtiyacınız olunca asp.net ile kodlama imkanınız olacak. Yine android veya iphone için program yazmak isterseniz yine yapabileceksiniz ancak göreceğiniz gibi kaynakların %90 ı c# ile. Gerçi converter.telerik.com gibi c# kodunu vb.net e çeviren siteler var ancak en güzeli yine c#
05/01/2016, 11:42

emir ustaoğlu

(05/01/2016, 11:30)alpeki99 yazdı: Şu anda masaüstü program kodluyorsunuz ancak yarın bir gün web sitesi ihtiyacınız olunca asp.net ile kodlama imkanınız olacak. Yine android veya iphone için program yazmak isterseniz yine yapabileceksiniz ancak göreceğiniz gibi kaynakların %90 ı c# ile. Gerçi converter.telerik.com gibi c# kodunu vb.net e çeviren siteler var ancak en güzeli yine c#
Tavsiyeniz için teşekkürler. Dediğiniz gibi c# üzerine çok fazla kaynak var en basit örneği olarak formları iç içe açmak için kullanılan kontainerparents(sanırım buydu adı
Kod:
form1.MdiParent = Me
kodu için 3 saat internette vb.net için araştırma yaptım diye bilirim Ancak C# bana çok karışık geldi bir kodu bitiriyorsun ";" işareti ile ama vb.net te "End Sub" ifadesi ekleniyor ve daha net diye düşünüyorum dediğiniz gibi şuan sadece masaüstü programı kodluyorum(kodlamaya çalışıyorum Sizin tavsiyeniz üzerine bugün akşam C# üzerine de araştırma yapacağım
son olarak bana tavsiye edebileceğiniz her iki kodlama içinde "C#/vb.net" bir kaynak/kitap var mı ? yada bu işe tam anlamıyla nereden başlamak doğru olur.
Değerli yorumlarınız ve tavsiyeleriniz için teşekkür ederim.
05/01/2016, 14:15

alpeki99

C# ta her satırın sonunda ; var bir de kodlar { } arasına yazılıyor bunlarda aslında farktan sayılmaz. Kitap tavsiye edemiyorum çünkü kitaplar öğrendikten sonra işe yarar
Kitapları alın elinizin altında olsun ama asıl iş sizde bitecek. Takıldığınız yeri buraya veya asıl alanı bu olan forumlara sorun ama öncesinde internet üzerinde arama yapın bulduğunuz herşeyi deneyin. Yapamasanız bile bunlar size tecrübe olacak sonraki zamanda karşılaşacağınız sorunlar için temel oluşturmuş olacaksınız.