Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   QR-Code Komponente TQRBarcode (https://www.delphipraxis.net/173262-qr-code-komponente-tqrbarcode.html)

key65 14. Feb 2013 13:48


QR-Code Komponente TQRBarcode
 
Liste der Anhänge anzeigen (Anzahl: 2)
Da ich nach einiger Suche nichts (kostenfreies) gefunden habe, um QR-Code nativ zu erstellen, habe ich mich entschlossen, eine eigene Komponente zu programmieren.
Das erste funktionierende Ergebnis wollte ich hier vorstellen.
Im Moment wird nur 8-bit-Encoding und ECC-Level H unterstützt.

Properties:
AutoVersion:
True: QR-Code-Version wird automatisch bestimmt
False: QR-Code-Version kann ab mindestens erforderlicher Version bis 40 eingestellt werden
Blur: QR-Code wird weichgezeichet (0..10)
Color0: Farbe für '0'-Bits
Color1: Farbe für '1'-Bits
QRImage: TImage, das den berechneten QR-Code enthält
QRBitmap: Berechneter QR-Code als Bitmap (ReadOnly)
QRBitmapEx: Berechneter QR-Code ('Dotted Mode')als Bitmap (ReadOnly)
Overlay: Bitmap, die in der Mitte des QR-Codes plaziert wird (z.B. für Logos)
QRText: Zu codierender Text
QuietZone: Größe des 'leeren' Bereichs um den QR-Code
ShowBorder:
True: Rahmen mit Farbe 'Color1' wird um den QR-Code gezeichnet
False: kein Rahmen
ShowOverlay:
True: Bitmap 'Overlay' wird in der Mitte des QR-Codes angezeigt
False: 'Overlay' wird nicht angezeigt
DottedQR:
True: '1'-Bits werden kreisförmig angezeigt
False: '1'-Bits werden normal angezeigt
ShowOverlayBorder:
True: Rahmen mit Farbe 'Color0' wird um die Overlay-Bitmap gezeichnet
False: kein Rahmen
Version: Lesen/Schreiben der verwendeten QR-Code-Version (1..40)
Zoom: Zoomfaktor für berechnete QR-Code-Bitmap

Methods:
GenerateQR: QR-Code neu berechnen

Events:
OnQRGenerated: QR-Code wurde berechnet

sx2008 14. Feb 2013 14:13

AW: QR-Code Komponente TQRBarcode
 
Ich würde die Komponente so umbauen, dass anstatt ein Bitmap und zusätzlich noch ein Image zu füllen
auf einen Canvas gezeichnet wird.

Dazu könnte man GenerateQR so erweitern:
Delphi-Quellcode:
procedure GenerateQR(x,y:Integer; canvas:TCanvas);

Das hat den Vorteil, dass man den QR-Code z.B. direkt auf dem
Canvas des Printer-Objekts an einer bestimmten Position ausgeben kann.

ConstantGardener 17. Feb 2013 09:24

AW: QR-Code Komponente TQRBarcode
 
Hallo Key65,

erstmal danke für diese Komponente. Funktioniert ganz gut! :thumb:

Leak't aber Memory wie wild.

---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:


13 - 20 bytes: TList x 1, UnicodeString x 48361
21 - 28 bytes: TBrush x 1, Unknown x 1
29 - 36 bytes: TPen x 1, TTouchManager x 1, TMargins x 1, TSizeConstraints x 1, Unknown x 2
37 - 44 bytes: TFont x 2
45 - 52 bytes: TPicture x 1
85 - 92 bytes: TStringList x 1509
101 - 108 bytes: TControlCanvas x 1
157 - 172 bytes: Unknown x 1
269 - 284 bytes: Unknown x 322
445 - 476 bytes: TImage x 1
573 - 620 bytes: Unknown x 1187

---------------------------
OK
---------------------------

Könntest du das noch beheben?


Edit:

Ok, ich hab mal selbst Hand angelegt. Ich habe das iImage.Create aus dem Constructor CREATE entfernt. Weiterhin habe ich in GenerateQRCode die TStringlist's im StringlistArray entsprechend freigegeben. Jetzt leakt er zumindest nicht mehr. Das Handling von QRImage solltest du evtl. auch ändern. Wenn man ein Image im OI zugeordnet hat und dann das Image selbst löscht schmiert die IDE (XE2) ab.

key65 26. Feb 2013 10:58

AW: QR-Code Komponente TQRBarcode
 
Hallo ConstantGardener,
danke für dein Feedback, habe deine Änderungen übernommen. Für das Problem mit dem zuweisen des Image und anschliessendem löschen habe ich (noch) keine Lösung. Unter Delphi 2009 verhält es sich leider auch so :cry: (Absturz IDE - Zugriffsverletzung bei Adresse...).

ConstantGardener 28. Feb 2013 10:33

AW: QR-Code Komponente TQRBarcode
 
Hallo Key65,

da nicht für. Ich suchte gerade eine neue Komponente für QRCodes und da kam deine mir gerade Recht. Btw. meine bisherige Wahl (Quiricol) hatte ich verworfen weil Sie auch Memory leakt. Da Sie aber in C++ geschrieben ist konnte ich da nichts machen. Da ist mir eine native Delphi-Lösung schon lieber. Also nochmal Danke.

ca cg.

key65 28. Feb 2013 10:43

AW: QR-Code Komponente TQRBarcode
 
Problem mit Absturz der IDE ist bei mir (Delphi 2009) behoben (siehe http://www.delphipraxis.net/173492-e...ml#post1205368).

ConstantGardener 28. Feb 2013 11:15

AW: QR-Code Komponente TQRBarcode
 
Lädst Du die Komponente neu hoch? Oder hast Du sie schon neu hochgeladen?

key65 28. Feb 2013 11:54

AW: QR-Code Komponente TQRBarcode
 
Ist bereits geschehen.

ConstantGardener 28. Feb 2013 19:24

AW: QR-Code Komponente TQRBarcode
 
danke!

drummer 15. Nov 2013 09:12

AW: QR-Code Komponente TQRBarcode
 
Hallo,

ich bin nutzer des C++ Builder 5. Gibt es eine fertige Version dieser Komponente, welche auch mit dem C++ builder Verison 5 funktioniert? Mit Delphi-Programmierung oder Komponentenerstellung bin ich leider gar nicht vertraut.

Helmut

Mavarik 15. Nov 2013 10:08

AW: QR-Code Komponente TQRBarcode
 
Für #C und C++ gibt es doch "haufenweise" Sourcecode für QRCode...

Für Delphi gibt gab es keinen Code zu finden...

Mavarik

PS.: Deswegen hab ich das auch selber programmiert...

drummer 15. Nov 2013 11:11

AW: QR-Code Komponente TQRBarcode
 
code ja, aber eine kostenlose Komponente welche unter c++ builder 5 läuft habe ich leider nicht gefunden.

capo 24. Apr 2015 11:13

AW: QR-Code Komponente TQRBarcode
 
Hallo,

mich würde interessieren wie ich mit der Komponente aus einer Adresse einen QR Code generieren kann?

LG
Grischa

Sir Rufo 24. Apr 2015 11:21

AW: QR-Code Komponente TQRBarcode
 
Zitat:

Zitat von capo (Beitrag 1299097)
mich würde interessieren wie ich mit der Komponente aus einer Adresse einen QR Code generieren kann?

Hmmm, die Eigenschaft
Delphi-Quellcode:
QRText
füllen und dann den QRCode generieren lassen? :gruebel:

hathor 24. Apr 2015 15:15

AW: QR-Code Komponente TQRBarcode
 
Liste der Anhänge anzeigen (Anzahl: 2)
Demo im Anhang.

HPW 24. Apr 2015 15:46

AW: QR-Code Komponente TQRBarcode
 
Hallo,

Da gibt es auch noch: DelphiZXingQRCode

http://www.debenu.com/open-source/delphizxingqrcode/

Grüsse,

Mavarik 25. Apr 2015 08:44

AW: QR-Code Komponente TQRBarcode
 
Wieder mal einen 2 Jahre alten Thread gekapert...

Erzeugen ist nicht das Problem...

Sondern das erkennen...

Mavarik

HPW 25. Apr 2015 09:57

AW: QR-Code Komponente TQRBarcode
 
Hallo,

Für erkennen vielleicht dies:

http://zbar.sourceforge.net/index.html

Grüsse

Mavarik 25. Apr 2015 20:48

AW: QR-Code Komponente TQRBarcode
 
Zitat:

Zitat von HPW (Beitrag 1299232)
Hallo,

Für erkennen vielleicht dies:

http://zbar.sourceforge.net/index.html

Grüsse

ja... aber selbst ist der Mann...

HJay 19. Jul 2015 11:09

AW: QR-Code Komponente TQRBarcode
 
@key65:

Tolle, einfach zu verwendende Komponente --super und vielen Dank!

Siehst du eine Möglichkeit, die Komponente um "alphanumerisch" zu erweitern? Das ergibt ja doch deutlich kleinere Barcodes und reicht für nahezu alle Fälle (Hyperlinks) aus.

Ich habe schon mal reingeschaut, aber wüsste jetzt nicht, wo du die ganzen Code-Tabellen her hast und wo man überall was anpassen müsste... Die Tabelle für die alphanumerische Kodierung habe ich und EncodeText() wäre leicht, aber MaxH und MaxBytesH und so weiter fehlen mir... wäre toll, wenn du Lust hättest...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 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