Delphi-PRAXiS
Seite 1 von 2  1 2      

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.
Seite 1 von 2  1 2      

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