Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: el terminalinden gelen mesajı anlama  (Okunma sayısı 320 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı agurer

  • Yeni Üye
  • *
  • İleti: 9
  • Rep: +0/-0
el terminalinden gelen mesajı anlama
« : 27 Temmuz 2010 10:53:49 »
Selam Arkadaşlar,

Benim bir el terminali ile barkod okuyan bir uygulamam var. Uygulama düzgün çalışıyor.
Ancak Kullanıcı kursörün edit1 üzerinde olmasına dikkat etmesi gerekiyor.  Eğer kursör form üzerinde başka bir yerde ise terminalin okuma sesini duyup işlemi çalıştığını düşünüyor. Oysa kursör edit1 üzeride değilse uygulama çalımıyor ve okuma yapılmıyor.
Benim düşündüğüm; Terminal vasıtası ile gelen bir emri algılayıp set focus ile edit1 konuşlanmak. Bunu nasıl yapabilirim, yada başka bir yöntemi var mı?
Saygılarımla,

Çevrimdışı redcoder

  • Kıdemli Üye
  • *****
  • İleti: 253
  • Rep: +2/-0
  • Coder
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #1 : 27 Temmuz 2010 15:37:44 »
Uygulaman düzgün olarak çalışyor ise yapman gereken kullandığın component veya kod her neyse onun başlangıç noktasına ( Sinyal yakalama giriş noktasına ) Edit1.setfocus yazman yeterli. Bunu nasıl bulabilirim diyorsan Programını F7 veya Shift + F7 ile izlemeye al.

NOT : Forum kurallarını okumanı ve konu açarken aynı başlıktan tekrar açmamanı(Flood) rica ederim.
« Son Düzenleme: 27 Temmuz 2010 15:43:39 by redcoder »
Application.MessageBox('Zor yapılabilir?','Imkansız sadece zaman alır',0+32+0);

Çevrimdışı agurer

  • Yeni Üye
  • *
  • İleti: 9
  • Rep: +0/-0
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #2 : 28 Temmuz 2010 08:12:46 »
Öncelikle cevabınız için teşekkürler. 
Ayrıca Konu başlığını yanlış çetiğim için ikinci kez  yayınlamak zorunda kalmıştım. bu hatadan dolayı sizden ve tüm kullanıcılardan özür dilerim.
Konuma gelince; form üzerinde liste amaclı bir (update karşı korumalı) dbgridim var kullanıcı girdiği bilgileri görebilmek için bu dbgrid üzerinde gezinebiliyor. dbgrid`in onkeypress eventine edit1.SetFocus komutunu koydum. bu durumda el terminalinden gelen ilk deger kayboluyor. yani barkod üzerinden 1200063 gibi bir değer gelmesi gerekirken 200063 geliyor.
Herhangi bir component kullanmıyorum. elterminalı edit1 içine üzerine iken dogru bilgiyi getiriyor zaten. Amacım el terminalini tuşuna bastıgımda gelen bilgiyi alıp işleyebilmek.

Saygılarımla,

Çevrimdışı redcoder

  • Kıdemli Üye
  • *****
  • İleti: 253
  • Rep: +2/-0
  • Coder
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #3 : 28 Temmuz 2010 09:38:45 »
şİMDİ KONUYU BİRAZ DAHA AÇALIM VE ELTERMINALI dedığin olayı biraz daha açarsan daha sağlıklı bir çözüme kavusursun. Ayrıca Dbgrid Onkeypress eventine yazdığın kodları kontrol et belkide Edit1.clear v.s bir bilgi daha girmiş olabilirsin. Gelen bilgiyi alıp işleyebilmek için yapman gereken edit1 nesnesinin Change olayından faydalanmak.
Application.MessageBox('Zor yapılabilir?','Imkansız sadece zaman alır',0+32+0);

Çevrimdışı agurer

  • Yeni Üye
  • *
  • İleti: 9
  • Rep: +0/-0
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #4 : 28 Temmuz 2010 15:41:46 »
Selamlar,
El terminali, bildiğimiz market barkod okuyucusu PC nin klavye girişine paralel baglı line okuyucu üzerindeki tuşa basıldığında barkod üzerine kırmızı bir lıne ışık düşüyor ve okuduğunda bir ses veriyor.
DBGRID

Çevrimdışı agurer

  • Yeni Üye
  • *
  • İleti: 9
  • Rep: +0/-0
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #5 : 28 Temmuz 2010 15:45:19 »


DBGRID OnPressKey kodu;

procedure TForm2.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
edit1.SetFocus;
end;

bu durumda terminalden gelen bilginin ilk karekteri kayboluyur.




Çevrimdışı agurer

  • Yeni Üye
  • *
  • İleti: 9
  • Rep: +0/-0
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #6 : 28 Temmuz 2010 15:48:22 »
Edit1Change evekt kodu;

procedure TForm2.Edit1Change(Sender: TObject);
VAR
RSM:string;
begin
 if Length(Edit1.Text)=7 then
 BEGIN
 nKUTUK.Locate('KTBRK',Edit1.Text,[loCaseInsensitive]);
 RSM:='\\10.0.0.254\asb\DATA\VESIKA\'+TRIM(nKUTUK.FieldByName('KTADI').VALUE)+' '+TRIM(nKUTUK.FieldByName('KTSADI').VALUE)+'.jpg';
 if fileexists(RSM) then image1.Picture.LoadFromFile(RSM)
 else image1.Picture.LoadFromFile('\\10.0.0.254\asb\DATA\VESIKA\'+'BOS.jpg');
 END;
end;

Çevrimdışı redcoder

  • Kıdemli Üye
  • *****
  • İleti: 253
  • Rep: +2/-0
  • Coder
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #7 : 28 Temmuz 2010 16:09:11 »
if Length(Edit1.Text)=7
yukarıda demişsinki Edit1 içerisindeki değer 7 karakter ise bunları yap. Ama barkoddan gelen verinin uzunluğu doğru mu? Doğru ise

DBGRID OnPressKey kodu;

procedure TForm2.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
edit1.SetFocus;
end;

bu durumda terminalden gelen bilginin ilk karekteri kayboluyor demişsin ki edit1 nesnesinin Max durumunu ve Gelen veriyi kontrol et. El Terminali diyorsun ama forumda Türkiye dışı kullanıcılarda mevcut o nedenle El Terminalini açmanı istedim.
« Son Düzenleme: 28 Temmuz 2010 16:10:48 by redcoder »
Application.MessageBox('Zor yapılabilir?','Imkansız sadece zaman alır',0+32+0);

Çevrimdışı agurer

  • Yeni Üye
  • *
  • İleti: 9
  • Rep: +0/-0
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #8 : 29 Temmuz 2010 10:44:59 »
Herşey için teşekkürler.
Problemi; form üzerinde edit1 hariç, setfocus olabilecek objeleri kaldırarak çözdüm.
Ama barkod okuyucudan gelen bilgiye component kullanmadan nasıl ulaşabilecegimi henüz çözmüş değilim. Sonuçta programım artık doğru çalışıyor.

Çevrimdışı thelvaci

  • Kıdemli Üye
  • *****
  • İleti: 150
  • Rep: +2/-0
  • Cinsiyet: Bay
    • Delphi Programming
Ynt: el terminalinden gelen mesajı anlama
« Yanıtla #9 : 29 Temmuz 2010 10:47:23 »
 Eğer vaktiniz ve yeterince sabrınız var ise USB HID programlamanın derinliklerine bakabilirsiniz.

http://msdn.microsoft.com/en-us/library/ms645543