![]() | |
| | ||
![]() |
| | Seçenekler |
| | #1 |
| 'Klavyede basılan tuşları kontol ederek istediklerinize izin verip 'istemediklerinizi hiç basılmamaış gibi gösterebilirsiniz... 'Bunun için iki metot vardır. Bu dersimiz bunlardan ilki olan 'KeyPress özelliğidir. Şindi dersimize başlayalım 'Öncelikle standart bir proje oluşturun 'Sonra Aşağıdaki Nesneleri oluşturun 'Nesleri yerleştirmek için uğraşmanıza 'gerek yok onları kod ile ben halletim 'Command1 'Text1 'Text2 'text2 nin "Multiline" özelliğini "True" yaplım 'Option1 'Option2 'Option3 'Option4 'Not : Eğer bu konu hakkında bilginiz varsa buradan okumaya 'Devam edebilirsiniz. Ancak konu hakkında daha detaylı 'bilgi almak için bu dersin tamamını Visual Basic 'Projenizin içine kopyalayabilirsiniz. 'Burada okuduğunuz açıklamalar VB ile sorun çıkarmayacak şekilde 'yazılmış ve her satırın başında ' (VB açıklama başlangıcı işareti) 'Bulunmaktadır. Option Explicit Private Sub Command1_Click() 'içerikleri temizliyoruz Text1.Text = "" Text2.Text = "" End Sub Private Sub Form_Activate() 'Nesnelerin yerlerine yerleştiriyoruz Me.ScaleMode = 1 ' Twip Me.Width = 7485 Me.Height = 5250 Command1.Move 120, 180, 1815, 495 Option1.Move 2160, 180, 1215, 495 Option2.Move Option1.Left + 60 + 1215, 180, 1215, 495 Option3.Move Option2.Left + 60 + 1215, 180, 1215, 495 Option4.Move Option3.Left + 60 + 1215, 180, 1215, 495 Text1.Move 120, 780, 7095, 420 Text2.Move 120, 1320, 7095, 3375 End Sub Private Sub Form_Load() 'Başlangıç ayarlarını yapıyoruz. Command1.Caption = "Temizle" Command1_Click 'Olayı burada çağırarak sanki buraya yazılmış gibi işliyoruz Option1.Caption = "Hepsi" Option2.Caption = "Sayılar" Option3.Caption = "Büyük Harf" Option4.Caption = "Küçük Harf" Option3.Value = True 'Büyük harf seçili olasun End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) 'işlemler başlıyoruz If Option1.Value = True Then 'eğer hepsi seçili ise yapacak bir kontrol yok aslında 'Burası her şeyi yazdıracağı için aslında gerekyok 'Fakat ben açıklayıcı olsun diye burayı da yazdım ElseIf Option2.Value = True Then 'Eğer sayılar seçili ise If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 '48 ve 57 sayılara ait ascii kodlarıdır 'Bu sayılarda dahildir ElseIf Option3.Value = True Then 'Eğer büyük harf isteniyorsa 'Burada Fonksiyon çağırıyoruz KeyAscii = trkBuyuk(KeyAscii) Else 'Eğer küçük harf isteniyorsa 'Burası aslında 4 seçenek olan Küçük harf seçeneği 'Ancak biz daha önce büyün seçenek olasılıklarını 'yukarıda yazdığımız için buraya '"ElseIf Option4.Value = True Then" 'komutu yerine sadece "ELSE" yazıyoruz. 'Burada Fonksiyon çağırıyoruz KeyAscii = trkKucuk(KeyAscii) End If 'Burası yazdığımız harfin text2 içinde kodunu görmemizi 'sağlıyor ancak istenilen ile basılan tuşun farklı olması 'sonucunda bazı karakterleri biz 0 (sıfır) ladığımız için 'Text2 içine boş parantez "(" çıkmasını engellemek amaçlı 'olarak eğer boş ise yazmasın diyoruz If KeyAscii > 0 Then Text2.Text = Text2.Text & "(" & Chr(KeyAscii) & " : " & KeyAscii & ") " End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) KeyAscii = 0 MsgBox "Buraya Yazma izniniz yok", vbCritical Text1.SetFocus End Sub Private Function trkBuyuk(key As Integer) As Integer 'Burası bizim Büyük harfe dönüşüm sağlayan fonksiyonumuz 'Fonksiyonlarla ilgili bilginiz yoksa ileride o konu 'ile ilgili de bir ders vermeyi düşünüyorum 'Şimdilik buna kafa yormayınız.... 'Tükçe karakterlerin kodları aşağıdaki gibidir. '(Ç : 199) (Ş : 222) (Ğ : 208) (Ü : 220) (I : 73 ) (İ : 221) (Ö : 214) '(ç : 231) (ş : 254) (ğ : 240) (ü : 252) (ı : 253) (i : 105) (ö : 246) 'evet artık kodları karşılaştırmaya başlıyoruz.. 'Öncelikle Türkçe karekterleri karşılaştıralım. 'ancak onlar sıralı olmadıkları için Bunu tek tek 'Yapmamız gerekiyor. If key = 231 Then key = 199 ElseIf key = 254 Then key = 222 ElseIf key = 240 Then key = 208 ElseIf key = 252 Then key = 220 ElseIf key = 253 Then key = 73 ElseIf key = 105 Then key = 221 ElseIf key = 246 Then key = 214 'Burada türkçe karakterler bitti. 'Şimdi tükçe karakter içermeyen küçük harfleri 'Büyük yapalım Ancak bunlar için tektek uğraşmayacağız 'Çünkü her bir küçük harf büyük harf kodundan 32 sayı 'büyüktür. yani biz girilen küçük harf kodundan '32 sayı çıkarttığımızda o harfin büyük harf kodunu elde ederiz. 'işte yapılış şekli ElseIf key > 96 And key < 123 Then key = key - 32 'Şimdi sırada kullanıcı zaten büyük harflerle işlem yapıyorsa '(Bunlar Tükçe karakter içermeyen harfler oluyor) 'bu karakterlerde IF sorgulamasını sonlandırmak için 'koşulu yazıp içini boş bırakıyoruz 'Aslında burada "trkBuyuk = key" komutunu yazabilirdik ama 'bunu aşağıda yaptığımız için gerek yok ElseIf key > 64 And key < 91 Then 'BU SAYILAR BÜYÜK HARFLER OLUYOR 'Şimdi ise Tükçe karakterli büyük harflerin kontrolünü yapalım 'Ancak bunları yine tektek yapacağız çünkü bunlarda sıralı değil. ElseIf key = 199 Or key = 222 Or key = 208 _ Or key = 220 Or key = 73 Or key = 221 _ Or key = 214 Then 'BU SAYILAR TÜRKÇE BÜYÜK HARFLER OLUYOR 'Evet şimdiye kadar bütün olasılıkları gözden geçirdik. 'Artık bunların dışında kalan karakterler bizi ilgilendirmiyor. 'Bu nedenle Ascii kodu olarak 0 (sıfır) atıyoruz ve sanki o 'tuşa basılmamış gibi işlemi iptal ediyoruz. 'Bu bir anlamda tuşa basılmamış gibi davranmak oluyor Else key = 0 End If 'Koşuk işlemlerinden sonra her bir koşul değerlendirmesinde 'Atama yapmamak için bunu değerlendirmenin sonunda yapıyoruz 've işlem bitmiş oluyor 'Artık trkBuyuk değişkenine atanan sayı Bizim Ascii kodumuz oluyor trkBuyuk = key End Function 'Buradan kaldığımız yere geri dönüyoruz Private Function trkKucuk(key As Integer) As Integer 'Buranın içeriği buyuk olanın tersi olacak 'Sizler için bir alıştırma olması amacı ile 'burası boş bırakılmıştır. 'Eğer konu hakkında bilgiye sahip değilseniz 'Lütfen buraya yazılacak kodlar için biraz egzersiz 'yapın ve gerekli kodları yazın yukarıdaki açıklamalar 'sizlere yardımcı olacaktır. 'İnanıyorum ki mantığı kavradıktan sonra 'Bunu yapmak sizlere çok kolay gelecektir. 'İyi çalışmalar trkKucuk = key End Function | |
| | |
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu Başlatan | Forum | Cvpl | Son Mesaj |
| :) Bir sazan olayı | AnTiMiKRoP | Silinen Konular ve Mesajlar | 3 | 15.11.2008 06:43 |
| Bir Ergenekon Olayı Daha | eskiya-47 | Haber Arsivleri | 0 | 11.05.2008 16:23 |
| Bir Zoomlama Olayı | thesakirt | Silinen Konular ve Mesajlar | 2 | 01.05.2008 22:55 |
| Keypress olayı | burak25 | Programlama Dilleri | 11 | 14.04.2008 01:14 |
| Fenerbahçe olayı abarttı: 3-10 | kivancburcu | Spor Konulari Arsivi | 23 | 24.01.2008 21:10 |