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.
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
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;
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ı: 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ı: Şö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
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
  4 İşlem - PDF Çalışma Sayfası Hazırlama Frrst 0 239 25-08-2023, Saat: 09:58
Son Yorum: Frrst
  text bölüp edit1, edit2, edit3 .... atma erdogan 6 977 16-02-2023, Saat: 11:52
Son Yorum: erdogan
  İşlem Yapılırken "Lütfen Bekleyiniz" Yazısı OZCANK 21 11.000 25-11-2022, Saat: 19:09
Son Yorum: Hayati
  Inno Setup Ugrade Yapma Frrst 1 430 22-10-2022, Saat: 17:35
Son Yorum: berk06
  Matematiksel İşlem apachi2006 8 2.223 20-03-2022, Saat: 16:31
Son Yorum: apachi2006



Konuyu Okuyanlar: 1 Ziyaretçi