Yorumları: 222
Konuları: 66
Kayıt Tarihi: 07-09-2016
Rep Puanı: 247
Acemi
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.
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030
Uzman
@
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.
Yorumları: 222
Konuları: 66
Kayıt Tarihi: 07-09-2016
Rep Puanı: 247
Acemi
aynı kart arka arkaya gelebilir ama, burada ki amaç hem yanlışlıkla kartı iki defa da okutmasın
Yorumları: 283
Konuları: 1
Kayıt Tarihi: 13-03-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.1
- Delphi XE7
- Delphi 7
Rep Puanı: 964
Acemi
kartı notepad'te okutuncada mı iki ID geliyor?
Yorumları: 222
Konuları: 66
Kayıt Tarihi: 07-09-2016
Rep Puanı: 247
Acemi
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;
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030
Uzman
22-08-2019, Saat: 18:14
(Son Düzenleme: 22-08-2019, Saat: 18:15, Düzenleyen: adelphiforumz.)
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.
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030
Uzman
22-08-2019, Saat: 19:07
(Son Düzenleme: 22-08-2019, Saat: 19:09, Düzenleyen: adelphiforumz.)
Bence biraz akış algoritmaları üzerinde dursanız iyi olur düşüncesindeyim.
Her zaman hazır kod bulamazsınız.
...
...
...
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.