![]() |
Barcodeleser mit TEdit Feld
Hallo zusammen
folgende Frage: Ich habe ein TEdit Feld dieses Feld wird an einen Barcodeleser angeschlossen. Dieser Barcodeleser soll nach dem Lesen des Barcodes eine Procedur ausführen. In welchem Ereignis soll man das am besten platzieren? Ich kann den Barcodeleser so programmieren, dass er am Schluss einen CR oder Tab sendet. Wie wird dies aber im entsprechenden Ereignis ermittelt? Vielen Dank für Eure Input's! Grüsse vom Bodensee, hoffentlich bald wieder mal schöneres Wetter.... :-(( |
Re: Barcodeleser mit TEdit Feld
Das dürfte
![]() |
Re: Barcodeleser mit TEdit Feld
danke.
wieso der onkeydown und nicht der keypress? Was ist da genau der Unterschied? Vielen Dank! |
Re: Barcodeleser mit TEdit Feld
Dazwischen wird IMHO TranslateMessage aufgerufen.
Das heißt, aus der gedrückten Taste 65 (A) wird erstmal nachgeschaut ob Umschalt gedrückt ist, wenn ja kommt ein #65 ('A') raus, ansonsten ein #97 ('a'). Das heißt in OnKeyPress hat man den Char, der ins Edit kommen würde und in OnKeyDown den virtuellen Tastencode (nachzuschlagen unter ![]() |
Re: Barcodeleser mit TEdit Feld
danke vielmals. soeben probiert und passt.
habe eben noch nicht viel mit Tastaurabfragen gemacht! |
Re: Barcodeleser mit TEdit Feld
[OT]
Mich würd dabei interessieren, wie man ein Editfeld an einen Scanner anschließt :shock: Zitat:
|
Re: Barcodeleser mit TEdit Feld
ernste frage? wenn ja: der scanner schleift sich normalerweise in die tastatur rein ('Hook' auf die PS/2-Leitung ;) ) und gibt dir astreine tastatur-events, die dann im edit landen.
|
Re: Barcodeleser mit TEdit Feld
Ich würde das mit dem Event OnExit machen.
Dies ist viel bequemer als mit OnKeyDown oder OnKeyPress. Wenn der Scanner ein Tab sendet, wird das Feld ja automatisch verlassen und OnExit ausgelöst. In diesem Event verarbeitest du die Daten und springt wieder ins Eingabefeld zurück (aber nur, wenn im Feld ein Inhalt drin war!!).
Delphi-Quellcode:
procedure TForm1.Edit1OnExit(sender:TObject);
var scancode : string; begin scancode := TEdit(Sender).Text; if scancode <>'' then begin VerarbeiteDaten(scancode); TEdit(Sender).SetFocus; // zurück aufs Eingabefeld end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz