bonjour
bon je pense vraiment à ça, c'est à dire comment valider le code à entrer et l'ajout du caractére #13 (entrée) c'est la meilleur solution, je vais essayé ca si j'arrive biensûre car la programmation du douchette est un peu difficile
bonjour
bon je pense vraiment à ça, c'est à dire comment valider le code à entrer et l'ajout du caractére #13 (entrée) c'est la meilleur solution, je vais essayé ca si j'arrive biensûre car la programmation du douchette est un peu difficile
Normalement tu n'as qu'à lire des code à barres fournit par la documentation technique du lecteur.
En général :
1- tu as un code pour mettre en mode édition,
2- un code pour dire que tu veux rajouter 1,2 ou 3 caractères en suffixe,
3- X codes pour mettre le code hexadecimal du caractères CR (Parfois il est même déjà prévue dans la doc ce caractère)
4- puis un dernier code pour valider les changements.
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
bonjour
je suis entrain de créer mon application de codes à barres mais mon probléme c'est que je ne sais pas comment désactiver le clavier lors d'une lecture avec la douchette, je ne sais pas si je fais la désactivation directement sur le port du clavier 3F8, ou il y'a une autre méthode qui désactive les touches clavier car la premiére methode de désactivation du port clavier va aussi désactiver la douchette qui ets en Y avec le clavier
merci
A ma connaissance, tu ne peux pas bloquer le clavier, c'est les deux ou rien.
(sauf si tu enlèves le clavier )
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
+1 , j'ai cherché en vain , il n'y a pas moyen par contre l'inverse désactivé la douchette est possible sur certain modèle (mais on a jamais le bon )
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
salut
voici le code que j'ai utiliser qui m'affiche un code à bar en utilisant les unité du TBARCODE avec une timage placée sur une form et il fonctionne bien pour un seul code à barres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Barcode; type TForm1 = class(TForm) Button1: TButton; Image1: TImage; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure Barcode1Change(Sender: TObject); procedure Button1Click(Sender: TObject); private barcode1 : TAsBarcode; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses WinTypes, WinProcs, Printers, barcode2; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin barcode1 := TAsBarcode.Create(self); barcode1.Top := 50; barcode1.Left := 30; barcode1.Typ := bcCodePostNet; barcode1.Modul := 2; barcode1.Ratio := 2.0; barcode1.Height := 50; barcode1.OnChange := Self.Barcode1Change; end; procedure TForm1.Barcode1Change(Sender: TObject); begin Image1.Picture := nil; Barcode1.DrawBarcode(Image1.Canvas); end; procedure TForm1.Button1Click(Sender: TObject); begin barcode1.Typ:= TBarcodeType(14); //bccodeEAN13 barcode1.ShowText:=TBarcodeOption(1); Barcode1.Text := Edit1.Text; end; end.
mais si je veux que mes valeur reférences des codes à barres viennent d'une base de donnés il y'aura un probléme, j'ai placer un QRImage dans QRSubdetail connecter à la base et j'ai mis se code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Barcode, DB, ADODB; type TForm1 = class(TForm) Button1: TButton; Image1: TImage; Edit1: TEdit; ADOConnection1: TADOConnection; ADOTable1: TADOTable; ADOTable1ref: TWideStringField; ADOTable1titre: TWideStringField; ADOTable1auteur: TWideStringField; ADOTable1editeur: TWideStringField; ADOTable1mots_cle: TMemoField; ADOTable1ouvrage: TBooleanField; ADOTable1article: TBooleanField; ADOTable1memoire: TBooleanField; ADOTable1isbn: TWideStringField; ADOTable1code: TIntegerField; procedure FormCreate(Sender: TObject); procedure Barcode1Change(Sender: TObject); procedure Button1Click(Sender: TObject); private barcode1 : TAsBarcode; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses WinTypes, WinProcs, Printers, barcode2, Unit2; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin barcode1 := TAsBarcode.Create(self); barcode1.Top := 50; barcode1.Left := 30; barcode1.Typ := bcCodePostNet; barcode1.Modul := 2; barcode1.Ratio := 2.0; barcode1.Height := 50; barcode1.OnChange := Self.Barcode1Change; end; procedure TForm1.Barcode1Change(Sender: TObject); begin quickReport2.QRImage1.Picture := nil; Barcode1.DrawBarcode(QuickReport2.QRImage1.Canvas); end; procedure TForm1.Button1Click(Sender: TObject); begin barcode1.Typ:= TBarcodeType(14); //bccodeEAN13 barcode1.ShowText:=TBarcodeOption(1); QuickReport2.ADOTable1.first; while not QuickReport2.adotable1.Eof do begin Barcode1.Text := QuickReport2.adotable1.Fields[0].AsString; QuickReport2.adotable1.Next; end; QuickReport2.preview; end; end.
il y'a un affchage des codes selon le nombre des enregistrement (par exemple si j'ai 20 enregistrement il m'affiche 20 codes) mais le probléme c'est que tous les codes afficher sont celle du dernier enregistrement et j'ai toute essayer mais toujour même probléme
merci
Bonjour,
Il te faut afficher le code barre dans le canvas au moment de l'impression de chaque bande.
La tu dessines dans le vides sur tes 20 enreg, mais avant le Preview.
Du coup, au moment de l'édition (ou preview), c'est le dernier dessin qui est pris, sur tes 20 enregs...
Essaye de mettre ta mise à jour dans le 'BeforePrint' de ta bande, par exemple:
D'ailleurs tu pourrais très bien dessiner dans le canvas dans le beforeprint de la bande directement, au lieu de passer par l'évt du compo codebarre, mais si ca marche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure MonReport.MaBandeBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin Barcode1.Text := QuickReport2.adotable1.Fields[0].AsString; end;
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
bonjour
j'ai bien essayer dans le before print du qreport et ausssi du qsubdetail mais il ne fonctionne plus car il me faut un boucle pour lire les réferences dans la base (il peuvent dépasser les milles enregistrements), et si je fais le boucle (que se soit dans le beforeprint du quickreport ou du qrsubdetail)
il ne fonctionne plus, car parfois je dois imprimer en stocks par exemple si je veux imprimer une centaines de codes j'aurais le même probléme dans le beforeprint et si vous voyez d'autres solution je serais bien à l'écoute.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ADOTable1.first; while not adotable1.Eof do begin Barcode1.Text := adotable1.Fields[0].AsString; adotable1.Next; end;
merci
je crois qu'il te faut revoir comment fonctionne Quickreport !!!
dans le cas simple d'une édition d'un fichier pour des etiquettes code barre tu as besoin d'une bande détail (séparées en colonne si nécessaire) et c'est tout .
dans ta bande détail tu place ton composant code-barre (il n'est pas liable avec la bdd ?? genre TDBCodeBarre ?) . Dans ton cas dans l'évènement OnBeforePrint de la bande détail tu indique le texte du composant c'est tout .
Je n'ai pas tout suivi mais je ne comprends pas ces histoires de boucles , si quickreport est bien renseigné (dataset) il fait ça tout seul , comme un grand
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
salut!
je me permets de mettre mon grain de sel dans la discussion, ayant déja dû traiter ce problême.
je suis arrivé à la solution suivante.
l'interface clavier n'est pas vraiment utilisable pour un logiciel avec une interface de saisie, c'est un pis aller qui alourdit l'utilisation de l'interface, donc je suis parti sur une douchette en usb gérée comme un port com. (usb et com, série, c'est la meme chose pour la communication)
l'avantage, c'est qu'on peut mettre un process qui va faire la lecture et mettre à disposition du programme le code barre lu. un flag de disponibilité ou de derniere lecture permet de recuperer la valeur lue.
une excellente routine de controle du port série permettant d'arriver à ce résultat a été postée par farscape dans la faq Visual c++.
http://cpp.developpez.com/faq/vc/ind...WithSerialPort
il faut seulement s'assure que le matériel sera configuré pour fonctionner en communication série par port com.
pour l'impression des codes barres, j'ai repris le probléme à la base, devant aussi bien gerer des impressions sur matricielles epson que sur des imprimantes thermiques zebra ou des lasers.
pour les thermiques, le langage epl2 supporte parfaitement l'impression des codes barres et de tout ce qu'on peut avoir besoin d'imprimer.donc no problem.
pour les matricielles, je parle directement à l'imprimante en langage ESC/P2, ca marche trés bien. mais j'ai du creer une surcouche de gestion de scripts d'impression, mais bon, c'est plutot dédié comme solution, mais ca a l'avantage d'être trés fonctionnnel.
pour les lasers ou jet d'encre, j'ai carrement choisi l'option de recoder les systémes de géneration de codes barre en les dessinant via les mfc.
au moins, je suis complétement sûr de ce qui fonctionne ou pas.
et ca me permet aussi de les manipuler exactement comme je le veux.
j'ai trouvé une trés bonne documentation sur les codes barres ici.
http://grandzebu.net/informatique/codbar/codbar.htm
le gros avantage, c'est que cette methode fonctionne vraiment trés bien.
vala..
je cherche actuellement à pouvoir lire un code barre présent dans une image scannée. comme j'ai jamais fait de traitement d'image, je sais pas trop ou commencer, donc les pistes de dev interressantes seront les bienvenues.!
salut
tout d'abord je m'excuse pour le retard et l'abscence, bon je dois expliquer mon probléme pour être claire, donc pour la lecture et l'impression d'un seul code à barre je n'ai aucun probléme c'est bien réaliser mais le probléme c'est lors de l'impression d'un ensemble de codes à barres, c'est dans une page ou plusieur pages je dois imprimer plusieurs codes à barres ou une selection de plusieurs codes selectionner par l'utilisateur:
feuille:
_______________________________________________________________
code1 .......................................................................code2
code3 .......................................................................code4
code5........................................................................code6
code7.......................................................................code8
_______________________________________________________________
mais evec les qreport je n'ai trouver aucune solution et j'ai bien essayer beaucoup de solutions mais pour afficher ou impromer plusieur codes dans une même page ou plusieurs pages je n'arrivais plus car j'ai une base ou il y'a des milliers de codes de livres et par exemple si l'utilisateur veut imprimer une ensemble de codes sur une/des feuilles puis la couper en des etiquettes et les coller sur les livre, pour moi je n'arrive plus à réaliser ca mais pour un seul code c'est faisable mais pour plus d'un codes pas de solution et il y'a
si-dessus les codes que j'ai utilisé
merci
surement c'est faisable, comment tu fait toi?
qui a la Patience et le courage de faire sa ,
pourquoi en a fabriqué des imprimante à code à barre alors???
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager