Butonla Metin Kutusuna Sayı Yazdırma

1 2
06/06/2023, 10:58

hnakis

Sayın arkadaşlar. yapmaya çalıtığım şey hesap makinesi gibi butonla metin kutusuna sayı yazdırma. amcak örneğimde butonla metin kutusuna eklenen sayıların arasına imleçle seçip rakam ekleyebilmek. tüm hesap makinesi çalışmalarında da araya ekleme yapılmıyor.

örneğin;
metin kutusuna sırayla 12356 yazdığımızı varsayalım imleci 3 ile 5 in arasına seçip 4 yazabilmek. eklediğim ernekte 4 butonuna basınca sayıların sonuna (123564) yazılıyor.

saygılar.
09/06/2023, 14:58

berduş

peki bir defa seçtiniz ve eklediniz sonrasında tekrar bastığınızda en sona mı ekleyeceksiniz araya eklemeye devam mı edecek?
ayrıca neden 0 yerine 10 var 20 yazmak için önce 10 yazıp 1i silip 2 yazmak sorun olmaz mı?
09/06/2023, 15:55

berduş

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
09/06/2023, 16:57

hnakis

(09/06/2023, 14:58)berduş yazdı: peki bir defa seçtiniz ve eklediniz sonrasında tekrar bastığınızda en sona mı ekleyeceksiniz araya eklemeye devam mı edecek?
ayrıca neden 0 yerine 10 var 20 yazmak için önce 10 yazıp 1i silip 2 yazmak sorun olmaz mı?

Sayın berduş. Kimyasal formüllerde en fazla 10 kullanılır ki çok azdır. O yuzden 10 var. Ekleme olayına gelince Örneğin Ca(NO3)2 yazmak isterken oldu ya 3 sayısını atladık. O kısmı seçip ekleyebilmek gerekiyor. Yere seçip ilgili butona basınca sayıyı seçilen yere değil sona ekliyor. Seçilen yere eklemek gerek..
Aşağıda yazdığınız kodları bilgisayar başına oturunca deneyeceğim ve size geri bildirimde bulunacağım. Teşekkürler. Saygılar
09/06/2023, 17:21

berduş

rica ederim iyi  çalışmalar
Not: kimyasal formüllerde sanki 10dan büyük sayılar da vardı
mesela
glikozun formülü C6H12O6
yada
4-Metil 2 pentanol : C6H13OH
gibi
12/06/2023, 09:54

hnakis

(09/06/2023, 17:21)berduş yazdı: rica ederim iyi  çalışmalar
Not: kimyasal formüllerde sanki 10dan büyük sayılar da vardı
mesela
glikozun formülü C6H12O6
yada
4-Metil 2 pentanol : C6H13OH
gibi

sayın berduş;

evet doğru bazı kimyasallarda 10 , 11 vb sayılarda oluyor. ancak benim kullanıcaklarımda olmayabilir..

onu eklerim iyide olur.

özür dileyerek > Im/Tag özelliği xSayi nerden yapıcam. birde benim eklediğim dosyadaki tüm kodları silip sizin yazdığınız kodları mı ekliycem. bir önceki projem kafamı çok yorduğu için konuları algılamakta zorlanıyorum. kusura bakmayın.

eğer siz dosya üzerinde çalışma yaptıysanız ekleyebilirseniz kodları inceleyerek daha iyi kavrayabilirim sanırım. emeğinize sağlık.

saygılar
1 2