Delphinin Formkeydown event i ile barkod okuyucudan gelen verileri alarak değişkene atmak istedim fakat ne yazkkı windows herhangi bir editorde doğru olarak gelen karakterler formkeydown ile okununca bir dunya hata oluyor. Öyleki program içerisinde o karakterleri olması gerekenler ile replace etmek dahi mümkün değil çünkü farkli karakterleri birden cok kullanıyor tek bir defa kullansa her klavye seti için dogru olanla replace edip düzeltirim.
Test etmek için bir QR barkod oluşturup içerisine tüm print edilir karakterleri yazdım Bunu notepad üzerinde iken ING klavye ile Barkod okuyucuyu hid klavye olarak tanınmış vaziyete iken okutunca aşagıdaki dogru karakter dizgesi oluşuyor (Barkoda da aynen bunları koydum).
(bu arada barkod okuyucu da ING klavye düzenine göre set edilmiş durumda)
<>"!'^+-*~%&/()=?_,.:;\1234567890qwertyuopasdfghjklizxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM (Olması gereken doğru karakter dizesi)
Ama bunu Formkeydown ile karakter karakter okutunca
¼¾Þ1Þ6»½8À57¿90»¿½¼¾ººÜ1234567890QWERTYUOPASDFGHJKLIZXCVBNMQWERTYUIOPASDFGHJKLZXCVBNM (ING klavye ile )
Bu sekilde geliyor Turkçe klavye seti ile tam şenlik oluşuyor
¿ÜÞ1Þ6½ß8À57¾90½¾ß¿Üºº¼1234567890QWERTYUOPASDFGHJKLIZXCVBNMQWERTYUIOPASDFGHJKLZXCVBNM
ve bir de Formkeydown ile okuyunca küçük harfleri hiç vermiyor hepsine uppercase muamelesi yapıyor sanki klavyede birileri shifte basmıs gibi.
delphi 10.4 kullanıyorum VCL ile ve win 10 kullanarak yaptıgım test sonucu bu
Ayrıca Burada verilen bir örnekte denedim WMINPUT ile rawinput örneginde de sonuc tamamen aynı cıktı yani formkeydown ile aynı karakterler oradan da geliyor.
HID barkod okuyucu bilgilerini klavye bufferinden dogru olarak almanın bir yolu varmı
Aynı barkod okuyucuyu Usb com emülatörü ile comport dan okutursam bütün karakterlerr doğru geliyor. Yani windows kendisi okuyup bir editöre gönderirse herşey dögru ama onu biz okursak ve bir değişkene atmak istersek bir dünya saçmalik oluşuyor.
Bu konu hakkında önerisi olan arkadasların yardımlarını rica edeceğim
Simdiden tesekkür ederim iyi günler dilerim
Formkeydown ile gelen hatalı karakterler
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Formkeydown ile gelen hatalı karakterler
Unicode olayindan kaynaklandigini düsünüyorum. Delphi 7‘de char 1 byte yer kaplarken, kullandigin sürümde char 2 byte yer kapliyor.
kıdemsiz üye