AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

QR Code Schreiben - Lesen

Ein Thema von juniorA · begonnen am 14. Feb 2017 · letzter Beitrag vom 23. Feb 2017
Antwort Antwort
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: QR Code Schreiben - Lesen

  Alt 21. Feb 2017, 10:57
Danke für das schnelle Feedback,

Bei den Reader handelt es sich um einen NETUM Handheld Made in China.
Die Sache mit den virtuellen COM Port hört sich für mich als Einsteiger gewaltig an, da ich da keine Erfahrung habe. Auf einer anderen Seite fand ich auch ein ganz andere witzige Lösung. Die sah so aus, dass auf das Label am Anfang und Ende eine Kennung gedruckt wird. Wenn am Tasturpuffer die Kennung ankommt wird die ganze Eingabe umgeleitet und mit der Endekennung zurückgestellt. Ist für mich aber auch Neuland und ich müsste mir soetwas erst bauen. Hat da schon jemand ein Beispiel?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#2

AW: QR Code Schreiben - Lesen

  Alt 21. Feb 2017, 12:03
AssignFile, TFileStream, oder halt MSDN-Library durchsuchenCreateFile auf die Datei 'COM1' und schon hat man Zugriff auf den COM-Port 1.
Dann mit Read und Write kann man Befehle an den Reader senden oder eben den Barcode und Statussignale auslesen. (meistens gefolgt/abschlossen von eimem Zeilenumbruch #13)

Komponenten ala Bei Google suchenTComPort stellen einem da schönere/einfachere/bessere Möglichkeiten bereit.
Vorallem liest der im Hintergrund über einen Thread permanent den Port aus und sagt dir, wenn neue Daten reinkommen.
Und er kapselt die ControllAPIs bezüglich BAUD-Rate usw.
https://msdn.microsoft.com/de-de/lib.../aa363201.aspx

Ohne eigenes Setting werden die Standard-Einstellungen des Windows für diesen COM-Port verwendet.


Den Reader und die Befehle kann man also auch problemlos mit einem Terminal Programm testen.
Bei Google suchencom terminal
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Feb 2017 um 12:06 Uhr)
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: QR Code Schreiben - Lesen

  Alt 21. Feb 2017, 16:29
wie bekomme ich eigentlich mit, auf welcher COM Schnittsteller sich der Barcodescanner eingenistet hat? Der hängt ja an einer der vielen USB Schnittstellen.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
981 Beiträge
 
Delphi 6 Professional
 
#4

AW: QR Code Schreiben - Lesen

  Alt 21. Feb 2017, 18:06
Hmm..

Man kann es über die ComPort-Geschichte machen..

Oder nutzt die HID-Möglichkeit..

Hierfür nen Edit auf die Form..
Im OnKeyDown auf #13 prüfen..
und wenn #13 dann Edit.text verwenden und anschließend wieder löschen für den nächsten Barcode..

Somit kann eigentlich jeder USB-Scanner verwendet werden, ob 1D oder 2D..

Fällt dieser aus, kann man den Text (unterhalb des BC mit ausdrucken) aus den Barcode auch von Hand eingeben und mit Enter abschließen.
Somit sogar ein Abfallkonzept vorhanden.

Und alles ohne sich mit der notwendigen Konfiguration (Com-Port, Baudrate, ext.) der verschiedenen Scanner herumschlagen zu müssen.

Ein weiterer Vorteil mit HID ist die Verwendung an ThinClients, wenn die Applikation in einer TherminalSession läuft.
Über die Tastatur-Eingabe gehts sogar damit.
Dann ist meist der ComPort-Scanner außen vor, da es (leider) immer noch ab und an Probleme mit dem Durchrouten in die Session gibt.
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: QR Code Schreiben - Lesen

  Alt 21. Feb 2017, 20:17
Solange wie ich ein Editfenster habe ist alles Ok. Da komme ich ja an den Text des Scanners ran.
Ohne Editfenster bekomme ich bei meinen Grundformular das KeyEreignis #13 noch mit aber wo finde ich dann den Text vom Scanner??? Wo wird der gebunkert?
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
981 Beiträge
 
Delphi 6 Professional
 
#6

AW: QR Code Schreiben - Lesen

  Alt 22. Feb 2017, 04:30
Solange wie ich ein Editfenster habe ist alles Ok. Da komme ich ja an den Text des Scanners ran.
Ohne Editfenster bekomme ich bei meinen Grundformular das KeyEreignis #13 noch mit aber wo finde ich dann den Text vom Scanner??? Wo wird der gebunkert?


'Gebunkert' wird ohne Edit gar nicht..
Das müsstest Du schon selber machen.

Beispiel:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    FBarcodeVal : string;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then begin

    // Verarbeite den Barcode

    // Alten Barcode löschen
    FBarcodeVal := '';
  end else begin
    FBarcodeVal := FBarcodeVal + Key;
  end;
end;

end.


Denke aber an 'KeyPreview' auf true setzen..
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: QR Code Schreiben - Lesen

  Alt 22. Feb 2017, 07:53
Danke für die Antwort.
Problem was aber dann besteht ist, wenn der Cursor gerade in einen anderen Editfeld steht, dass dort auch die aktuelle Eingabe vom Scanne auftaucht.
Alle anderen Eingabemöglichkeiten laufend zu sichern um diese dann wieder zu aktualisieren halte ich für nicht so glücklich.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1 : TEdit;
    Edit2 : TEdit;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
  private
     pufferstring : string;
  public
    { Public-Deklarationen }
  end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  pufferstring := '';
  edit1.Text := '';
  edit2.Text := '';
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    // Verarbeite den Barcode
    edit1.Text := pufferstring;
    edit1.Repaint;

    // Alten Barcode löschen
    pufferstring := '';
  end
  else pufferstring := pufferstring + key;
end;


end.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 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-2025 by Thomas Breitkreuz