Bilirsiniz analog cihazlarda kucuk kucuk adreslemek icin kullanılan swichler vardır buda onunla ilgili işimizi kolaylaştıracak bir uygulama ben bunu elle de veririm dersiniz ama hataya yer yok iş hayatında...
Kısaca işlem şu 7 adet swich var ki ben bunlara kutucuk ( Checkbox ) diyorum ilk kutucuk işaretli ise adres1 oluyor, 2. işaretli ise 2 oluyor ve dziliyor ard arda....
1. kutucuk sayı değeri = 1
2. kutucuk sayı değeri = 2
3. kutucuk sayı değeri = 4
4. kutucuk sayı değeri = 8
5. kutucuk sayı değeri = 16
6. kutucuk sayı değeri = 32
7. kutucuk sayı değeri = 64
bunlarla ayrı ayrı işaretlendiğinde 127 değerine kadar ulaşabiliyoruz her tıkladığımzda bize adreslemeyi ve bunun sonucunda ki sayı değerini gorebilyoruz. sonra dedim ki textbox girdiğim sayıyı otomatik olarak adreslesin guzel bir duşunce gibi geldi ve başladık kodlamaya....
ilk olarak tanımlamalarımız
Public Class Form1
Dim deger As Integer
Dim ch1, ch2, ch3, ch4, ch5, ch6, ch7 As Integer
Dim TxtHsp As Integer
ve daha sonra ise tıklanan kutucuğun sayı değerini arttırması ve azaltması işlemleri
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
ch1 = 1 ‘ Checbox sayı değeri
If Me.CheckBox1.Checked = True Then
Me.CheckBox1.Location = New System.Drawing.Point(60, 25) ‘ Checkboxın Koordinatlarını vererek form icindeki duzenini ayarlıyoruz…
deger = deger + ch1 ‘ Checbox sayı değerini toplam değere ekliyoruz.
ElseIf Me.CheckBox1.Checked = False Then
Me.CheckBox1.Location = New System.Drawing.Point(60, 35)
deger = deger - ch1
End If
Me.Label1.Text = deger
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
ch2 = 2
If Me.CheckBox2.Checked = True Then
Me.CheckBox2.Location = New System.Drawing.Point(81, 25)
deger = deger + ch2
ElseIf Me.CheckBox2.Checked = False Then
Me.CheckBox2.Location = New System.Drawing.Point(81, 35)
deger = deger - ch2
End If
Me.Label1.Text = deger
End Sub
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
ch3 = 4
If Me.CheckBox3.Checked = True Then
Me.CheckBox3.Location = New System.Drawing.Point(102, 25)
deger = deger + ch3
ElseIf Me.CheckBox3.Checked = False Then
Me.CheckBox3.Location = New System.Drawing.Point(102, 35)
deger = deger - ch3
End If
Me.Label1.Text = deger
End Sub
Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged
ch4 = 8
If Me.CheckBox4.Checked = True Then
Me.CheckBox4.Location = New System.Drawing.Point(123, 25)
deger = deger + ch4
ElseIf Me.CheckBox4.Checked = False Then
Me.CheckBox4.Location = New System.Drawing.Point(123, 35)
deger = deger - ch4
End If
Me.Label1.Text = deger
End Sub
Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged
ch5 = 16
If Me.CheckBox5.Checked = True Then
Me.CheckBox5.Location = New System.Drawing.Point(144, 25)
deger = deger + ch5
ElseIf Me.CheckBox5.Checked = False Then
Me.CheckBox5.Location = New System.Drawing.Point(144, 35)
deger = deger - ch5
End If
Me.Label1.Text = deger
End Sub
Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged
ch6 = 32
If Me.CheckBox6.Checked = True Then
Me.CheckBox6.Location = New System.Drawing.Point(165, 25)
deger = deger + ch6
ElseIf Me.CheckBox6.Checked = False Then
Me.CheckBox6.Location = New System.Drawing.Point(165, 35)
deger = deger - ch6
End If
Me.Label1.Text = deger
End Sub
Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox7.CheckedChanged
ch7 = 64
If Me.CheckBox7.Checked = True Then
Me.CheckBox7.Location = New System.Drawing.Point(186, 25)
deger = deger + ch7
ElseIf Me.CheckBox7.Checked = False Then
Me.CheckBox7.Location = New System.Drawing.Point(186, 35)
deger = deger - ch7
End If
Me.Label1.Text = deger
End Sub
Form Load olayımız...
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
deger = 0
End Sub
ve şimdi textbox değiştiğinde kontrolumuz ile peşisıra gelen yonlendirmelerimzi
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Not Me.TextBox1.Text = "" Then
If Me.TextBox1.Text < 1 Or Me.TextBox1.Text > 127 Then
MessageBox.Show("1 ile 127 Arasında Bir Rakam Giriniz...", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.TextBox1.Text = "127"
End If
sıfırla()
hesapla()
Else
sıfırla()
deger = 0
Me.Label1.Text = "0"
End If
End Sub
ve en civcivli bolumumuz olan text e girilen veriyi hesaplayan kod gerci parcalanırsa daha az yer kaplardı ama bu seferlik boyle olsun...
'bu kısımı tırnaklar la anlatamıyorum ama şoyle ozetleyelim x olan sayımızı olabilecek en buyuk sayıdan cıkarıyoruz ki bir seferde en buyuk rakam 64 dur sonra ki işlemlerimizde cıkan sonuctan geriye doğru tek tek kontrol ediyoruz eğer sıradaki rakamdan buyuk ise cıkarıyoruz boylece bu işlem bizi sonuca goturuyor
Sub hesapla()
Dim x As Integer
TxtHsp = Me.TextBox1.Text
If TxtHsp >= 64 Then
TxtHsp = TxtHsp - 64
Me.CheckBox7.Checked = True
For x = 0 To 6
If TxtHsp >= 32 Then
Me.CheckBox6.Checked = True
TxtHsp = TxtHsp - 32
ElseIf TxtHsp >= 16 Then
Me.CheckBox5.Checked = True
TxtHsp = TxtHsp - 16
ElseIf TxtHsp >= 8 Then
Me.CheckBox4.Checked = True
TxtHsp = TxtHsp - 8
ElseIf TxtHsp >= 4 Then
Me.CheckBox3.Checked = True
TxtHsp = TxtHsp - 4
ElseIf TxtHsp >= 2 Then
Me.CheckBox2.Checked = True
TxtHsp = TxtHsp - 2
ElseIf TxtHsp >= 1 Then
Me.CheckBox1.Checked = True
TxtHsp = TxtHsp - 1
ElseIf TxtHsp >= 0 Then
Exit Sub
End If
Next
Else
For x = 0 To 6
If TxtHsp >= 32 Then
Me.CheckBox6.Checked = True
TxtHsp = TxtHsp - 32
ElseIf TxtHsp >= 16 Then
Me.CheckBox5.Checked = True
TxtHsp = TxtHsp - 16
ElseIf TxtHsp >= 8 Then
Me.CheckBox4.Checked = True
TxtHsp = TxtHsp - 8
ElseIf TxtHsp >= 4 Then
Me.CheckBox3.Checked = True
TxtHsp = TxtHsp - 4
ElseIf TxtHsp >= 2 Then
Me.CheckBox2.Checked = True
TxtHsp = TxtHsp - 2
ElseIf TxtHsp >= 1 Then
Me.CheckBox1.Checked = True
TxtHsp = TxtHsp - 1
ElseIf TxtHsp >= 0 Then
Exit Sub
End If
Next
End If
End Sub
burada da her sayı girildiğinde sayı ustune sayı eklemesin diye kutucuk sıfırlayıcılarımız

Sub sıfırla()
Me.CheckBox1.Checked = False
Me.CheckBox2.Checked = False
Me.CheckBox3.Checked = False
Me.CheckBox4.Checked = False
Me.CheckBox5.Checked = False
Me.CheckBox6.Checked = False
Me.CheckBox7.Checked = False
End Sub
End Class
Guzel değişik bir calışma oldu gereksiz gibi gorune bilir ama bazılarımız icin gereksiz değil. hepinize iyi kodlamalar dileğiyle...
Not: Alıntıdır
__________________