Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Scanner Steuerzeichen fehlen (https://www.delphipraxis.net/209198-scanner-steuerzeichen-fehlen.html)

bronstein84 8. Nov 2021 11:28

Scanner Steuerzeichen fehlen
 
Guten Tag,
ich habe einen Barcode mit Steuerzeichen RS, GS, EOT

Wenn ich diesen im NotPad++ einscanne werden diese auch angezeigt
Scanne ich diese in ein TEdit sind die Zeichen nicht da

Wollte den Text trennen, sl.count ist aber immer eins:
Code:
procedure TfrmMain.Edit12KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  tmpStr: String;
  sl: TStringList;
  I: Integer;
begin
  if Key = 13  then //Return
  begin
    sl := TStringList.Create;
    sl.StrictDelimiter := true;
    sl.Delimiter := #29;
    sl.DelimitedText := Edit1.Text;

Nehme ich den eingesannten Code aus NotePad++ und füge diesen via Copy and Paste in das TEdit Feld erscheinen die Daten


Zusammengefasst direktes einscannen in TEdit geht nicht. Scannen in NotePad++ und dann in das TEdit einfügen geht

Jemand eine Idee, der Scanner ist via USB angeschlossen und verhält sich eigentlich ja nur wie eine Tastatur

himitsu 8. Nov 2021 14:01

AW: Scanner Steuerzeichen fehlen
 
Diese Zeichen ControlCodes sind halt unsichtbar.

Es gibt Programme, welche diese Chars durch "sichtbare" Zeichen ersetzen und das dann anzeigen,
bzw. es gibt Fonts, welche dort sichtbare Zeichen definiert haben.

Für die "Anzeige" kann man sowas auch selber machen
Delphi-Quellcode:
sl.Text := ReplaceStr(sl.Text, #$04, #$2404); // EOT

https://www.unicode.org/charts/PDF/U0000.pdf = C0 Controls and Basic Latin
https://www.unicode.org/charts/PDF/U2400.pdf = Control Pictures


Delphi-Quellcode:
for var i := 0 to 32 do S := ReplaceStr(S, Char(i), Char(2400+i));

Wobei man z.B. für Space und NewLine auch alternative Zeichen verfügbar hätte.

HolgerX 8. Nov 2021 19:43

AW: Scanner Steuerzeichen fehlen
 
Hmm..

Zum Testen für Dich:

Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key < $32 then begin // Sichtbare Zeichen beginnen i.R. beim Leerzeichen
    Edit1.Text := Edit1.Text + '#' + IntToHex(key,2);
    Key := 0;            // Damit nicht eventuell ein weiteres Zeichen angehängt wird
  end;
end;
Damit werden Steuerzeichen als Hexwert mit '#' davor im Edit eingetragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz