Für "normale" Zeichen ist auch eher OnKeyPress zuständig. Dabei muss Dir klar sein, dass jedes Zeichen einzeln reinkommt. Du brauchst also einen "Speicher" für die bereits empfangenen Zeichen an den Du dann anhängst. Beispiel:
Delphi-Quellcode:
//------------------------------------------------------------------------
procedure TfrmLSchein.dbgLsPosKeyPress(Sender: TObject; var Key: Char);
//------------------------------------------------------------------------
// Für die Eingabe der EPos-Nummer über Barcode
//------------------------------------------------------------------------
begin
// wenn nicht innerhalb einer Sekunde alles kommt, handelt es sich um eine manuelle Eingabe...
if SecondsBetween(now, dtEposInputStart) > 1 then
begin
// ... also löschen
sEposNr := '';
dtEposInputStart := now;
end;
case key of // Gültige Zeichen, anhängen
'0'..'9' : sEposNr := sEposNr+Key;
else
sEposNr := '';
end;
end;
Die Variablen sEposNr und dtEposInputStart sind im private Teil des Formulares enthalten:
Delphi-Quellcode:
private
{ Private-Deklarationen }
sEposNr : string;
dtEposInputStart : TDateTime;
Iregdnwann kommt ja (auch vom Scanner) ein Return, und dann kannst Du die gesammelte Zeichenfolge weiterverarbeiten.