Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Edite Harf Girme
#1
Merhabalar. Editlere sadece harf girilmesini istiyorum kullandığım yöntem;

if ((UpCase(Key) < 'A') or (UpCase(Key) > 'Z')) then
  Key := #0;
end;

Bunu keypress yazıyorum oluyor, fakat yanlış bir şey yazılırsa silemiyorum yazılanları kabul etmiyor tekrardan yeni kayıt açmak zorunda kalıyorum. Çözümü nedir?
Don't fear the try!
WWW
Cevapla
#2
Yazdığınız kod zaten Delete tuşunu kabul ediyor olmalı. Geriye BackSpace kontrolü kalıyor. Onu da kodunuzda #8'i kontrol ederek sağlayabilirsiniz.

Delphi versionunu yazmamışsınız ama CharInSet fonksiyonu kullanmanızı tavsiye ederim:

if not CharInSet(Key, ['A'..'Z', 'a'..'z', #8]) then 
  Key := #0;
There's no place like 127.0.0.1
WWW
Cevapla
#3
(20-02-2017, Saat: 11:41)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlYazdığınız kod zaten Delete tuşunu kabul ediyor olmalı. Geriye BackSpace kontrolü kalıyor. Onu da kodunuzda #8'i kontrol ederek sağlayabilirsiniz.

Delphi versionunu yazmamışsınız ama CharInSet fonksiyonu kullanmanızı tavsiye ederim:

if not CharInSet(Key, ['A'..'Z', 'a'..'z', #8]) then 
  Key := #0;
Yardımınız için teşekkür ederim  Shy
Don't fear the try!
WWW
Cevapla
#4
(20-02-2017, Saat: 13:22)cudyfoster Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(20-02-2017, Saat: 11:41)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlYazdığınız kod zaten Delete tuşunu kabul ediyor olmalı. Geriye BackSpace kontrolü kalıyor. Onu da kodunuzda #8'i kontrol ederek sağlayabilirsiniz.

Delphi versionunu yazmamışsınız ama CharInSet fonksiyonu kullanmanızı tavsiye ederim:

if not CharInSet(Key, ['A'..'Z', 'a'..'z', #8]) then 
  Key := #0;
Yardımınız için teşekkür ederim  Shy

Şuan fark ettim de bunu yaptıktan sonra Türkçe karakter kullanamıyoruz sanırım. Ş ö ü gibi karakterleri kullanmama izin vermiyor
Don't fear the try!
WWW
Cevapla
#5
Yazılan kodu yorumlarsanız; Key ile neleri karşılaştırıyoruz çok açık. Bu listeye istediğiniz karakter(ler)i ekleyip çıkartmak size kalmış.
There's no place like 127.0.0.1
WWW
Cevapla
#6
@SimaWB Hocam, arkadaş istediği kadar o listeye Türkçe harf eklesin yine yazmaz. CharInSet fonksiyonunun UTF8 karakterleri için desteği yok maalesef. O yüzden Türkçe harfleri algılayamadığından dolayı bu kod parçasına AnsiString eklemek lazım. Ancak o zaman Türkçe ve/veya diğer harfleri anlayabilir. AnsiString ile Arapça harfleri bile kullanabilirsiniz.

@cudyfoster; aşağıdaki şekilde kullanırsanız Türkçe harf sorunu çözülmüş olarak kullanabilirsiniz :

If not CharinSet(AnsiString(Key)[1],['A'..'Z','a'..'z','Ş','ş','Ğ','ğ','İ','i','Ö','ö','Ç','ç','Ü','ü',#8]) then

    Key:=#0;

Faydalı olması dileğiyle, kKolay gelsin.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#7
(21-02-2017, Saat: 10:32)ramazan_t Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol@SimaWB Hocam, arkadaş istediği kadar o listeye Türkçe harf eklesin yine yazmaz. CharInSet fonksiyonunun UTF8 karakterleri için desteği yok maalesef. O yüzden Türkçe harfleri algılayamadığından dolayı bu kod parçasına AnsiString eklemek lazım. Ancak o zaman Türkçe ve/veya diğer harfleri anlayabilir. AnsiString ile Arapça harfleri bile kullanabilirsiniz.

@cudyfoster; aşağıdaki şekilde kullanırsanız Türkçe harf sorunu çözülmüş olarak kullanabilirsiniz :

If not CharinSet(AnsiString(Key)[1],['A'..'Z','a'..'z','Ş','ş','Ğ','ğ','İ','i','Ö','ö','Ç','ç','Ü','ü',#8]) then

    Key:=#0;

Faydalı olması dileğiyle, kKolay gelsin.

Yardımınız için teşekkür ederim tamda istediğim şekilde belirtmişsiniz  Shy
Don't fear the try!
WWW
Cevapla
#8
Rica ederim. Kolay gelsin.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#9
(21-02-2017, Saat: 10:32)ramazan_t Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol@SimaWB Hocam, arkadaş istediği kadar o listeye Türkçe harf eklesin yine yazmaz. CharInSet fonksiyonunun UTF8 karakterleri için desteği yok maalesef. O yüzden Türkçe harfleri algılayamadığından dolayı bu kod parçasına AnsiString eklemek lazım. Ancak o zaman Türkçe ve/veya diğer harfleri anlayabilir. AnsiString ile Arapça harfleri bile kullanabilirsiniz.

@cudyfoster; aşağıdaki şekilde kullanırsanız Türkçe harf sorunu çözülmüş olarak kullanabilirsiniz :

If not CharinSet(AnsiString(Key)[1],['A'..'Z','a'..'z','Ş','ş','Ğ','ğ','İ','i','Ö','ö','Ç','ç','Ü','ü',#8]) then

    Key:=#0;

Faydalı olması dileğiyle, kKolay gelsin.

Bilgilendirme için teşekkürler.

Unicode icâd oldu mertlik bozuldu Smile
There's no place like 127.0.0.1
WWW
Cevapla
#10
Alıntı:Bilgilendirme için teşekkürler.

Unicode icâd oldu mertlik bozuldu smile.png

Rica ederim Hocam, faydalı olabildiysek ne mutlu Smile

E.O.F.  (End Of Fun )
Rolleyes
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  İlk harf brs 3 241 09-02-2018, Saat: 19:45
Son Yorum: brs
  Listview den edite sürükle bırak dilo 2 441 17-06-2017, Saat: 00:10
Son Yorum: dilo



Konuyu Okuyanlar: 1 Ziyaretçi