aslında ilk 2 işleme gerek yok
3, 4 ve 5 teki kodları ekledikten sonra
sayı düğmelerini seçip tıklandığında olayına
=xHesapla() yazmanız yeterli
dosyada yapılanlar
1 - sayı düğmeleri için tek tek yordam yazmak yerine hepsi için ortak tek yordam kullandım.
bunun için;
- sayı düğmelerinin Im/Tag özelliği xSayi
- form açıldığında olayına düğmelere yordamı atayan fonksiyon eklendi
Not: tek yordam olduğu için sayı düğmelerine eklenen diğer kodlar silindi
2 - form açıldığında olayı
Private Sub Form_Open(Cancel As Integer) ' <<== eklenen
Dim ctl As Control
' rakamların Im/Tag özelliği xSayi olacak
For Each ctl In Me
If ctl.Tag = "xSayi" Then ctl.OnClick = "=xHesapla()"
Next ctl
End Sub
3 - sayı düğmeleri için ortak fonksiyon
Public Function xHesapla() ' <<== eklenen
If KlmYer > 0 Then
Me.kelime.Value = Left(Me.kelime.Value, KlmYer) & Me.ActiveControl.Caption & Mid(Me.kelime.Value, KlmYer + 1)
KlmYer = KlmYer + Len(ActiveControl.Caption & "")
Else
Me.kelime.Value = Me.kelime.Value & Me.ActiveControl.Caption
End If
End Function
4 - formun en başına imlecin nerede olduğunu gösteren
KlmYer değişkeni eklendi.
Public KlmYer As Integer ' <<== eklenen
5 -
kelime metin kutusunun çıkıldığında olayına imlecin nerde olduğunu değişkene atayan yordam eklendi
Private Sub kelime_Exit(Cancel As Integer) ' <<== eklenen
KlmYer = Me.kelime.SelStart
End Sub