Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
edit1 change işlem yapma
#1
Arkadaşlar,

Edit text'e cihazdan kart okutuyorum kart id si edit change ile müşterileri bulup log ekliyor.

Cihaz çin malı bir cihaz neden anlamadım ama kartı iki defa okuyor id iki defa atıyor böylece bir işlemi iki defa yapıyor

ilk okumadan sonra 3 sn. beklesin öyle işlem yapsın bir zaman döngüsü ile  acaba bu konuda yardımcı olabilirmisiniz.

procedure TForm1.Edit1Change(Sender: TObject);
begin
    işlemler
end;


Teşekkürler.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#2
@erdogan zaman süresi kontrolü yerine aynı kart arka arkaya geliyorsa kabul etmesen daha pratik olmazmı
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
aynı kart arka arkaya gelebilir ama, burada ki amaç hem yanlışlıkla kartı iki defa da okutmasın
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#4
kartı notepad'te okutuncada mı iki ID geliyor?
Cevapla
#5
hayır gelmiyor tüm kod burası zaten

procedure TForm1.OnReceiveText(ASender: TObject; const Reader: IReader; ReaderId: Byte; const Data: WideString);
begin
EditKART_NO.Text := Data;
end;
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#6
global bir x : cardinal türünde değişken tanımla
bu değişkene OnReciveText altında x := gettickcount; ile değer ata
OnReciveText içerisinde
if (gettickcount - x) > 3000 /// bu değer milisaniye cinsindendir 3000 = 3 sn demek
begin
   EditKART_NO.Text := Data;
end;
şeklinde kullan 
Tabi şunuıda atlama aynı kart no ise zaman kontrolünü uygula
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#7
Şöyle bir denermısınız. madem ıkı defa gelıyor bızde ıkıye bolerızSmile
procedure TForm1.OnReceiveText(ASender: TObject; const Reader: IReader; ReaderId: Byte; const Data: WideString);
begin 
EditKART_NO.Text := Copy(Data, 1, length(data)/2); ; 
end;
Cevapla
#8
(22-08-2019, Saat: 18:14)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.global bir x : cardinal türünde değişken tanımla
bu değişkene OnReciveText altında x := gettickcount; ile değer ata
OnReciveText içerisinde
if (gettickcount - x) > 3000 /// bu değer milisaniye cinsindendir 3000 = 3 sn demek
begin
   EditKART_NO.Text := Data;
end;
şeklinde kullan 
Tabi şunuıda atlama aynı kart no ise zaman kontrolünü uygula

hocam bunu biraz detaylandırabilirmisin acaba

çok teşekkür ederim

(22-08-2019, Saat: 18:15)serdar Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Şöyle bir denermısınız. madem ıkı defa gelıyor bızde ıkıye bolerızSmile
procedure TForm1.OnReceiveText(ASender: TObject; const Reader: IReader; ReaderId: Byte; const Data: WideString);
begin 
EditKART_NO.Text := Copy(Data, 1, length(data)/2); ; 
end;

yani iki defa yazmıyor Smile
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#9
forma memo nesnesi koyup

procedure TForm1.OnReceiveText(ASender: TObject; const Reader: IReader; ReaderId: Byte; const Data: WideString);
begin 
  memo1.Lines.Insert(0,data);
end;
denermisin bakalım memo'ya nasıl gelecek
Cevapla
#10
Bence biraz akış algoritmaları üzerinde dursanız iyi olur düşüncesindeyim.
Her zaman hazır kod bulamazsınız. Idea

...
...
...

var
SonGelisZamani : Cardinal;
SonGelenKartNo : WideString;

implementation

{$R *.dfm}


procedure TForm1.OnReceiveText(ASender: TObject; const Reader: IReader; ReaderId: Byte; const Data: WideString);
begin
  if (Data = SonGelenKartNo) then
  begin
      if (GetTickCount - SonGelisZamani) > 3000 then
      begin
        EditKART_NO.Text := Data;
        SonGelenKartNo := Data;
        SonGelisZamani := GetTickCount;
      end;
  end
  else
  begin
      EditKART_NO.Text := Data;
      SonGelenKartNo := Data;
      SonGelisZamani := GetTickCount;
  end;
end;

...
...
...
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Label Change olayı harezmi 1 134 10-08-2019, Saat: 21:15
Son Yorum: mcuyan
  Dosya Adı ve İçeriğinde Arama Yapma dkadir 3 383 23-06-2019, Saat: 06:53
Son Yorum: dkadir
  İşlem Yapılırken "Lütfen Bekleyiniz" Yazısı OZCANK 4 500 21-04-2019, Saat: 17:42
Son Yorum: OZCANK
  Çözüldü-istenen işlem yükseltme gerekiyor hatası delphi7 sadikacar60 7 1.034 19-02-2019, Saat: 10:34
Son Yorum: sadikacar60
  Butonlarla Kategori ve AltKategori Yapma akissoftware 33 4.316 28-11-2018, Saat: 14:02
Son Yorum: Hayati



Konuyu Okuyanlar: 1 Ziyaretçi