AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte QR-Code Komponente TQRBarcode
Thema durchsuchen
Ansicht
Themen-Optionen

QR-Code Komponente TQRBarcode

Ein Thema von key65 · begonnen am 14. Feb 2013 · letzter Beitrag vom 19. Jul 2015
Antwort Antwort
Seite 1 von 2  1 2      
key65
Registriert seit: 8. Sep 2008
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
Miniaturansicht angehängter Grafiken
qr_demo.jpg  
Angehängte Dateien
Dateityp: rar QRBarcode.rar (38,6 KB, 760x aufgerufen)

Geändert von key65 (18. Apr 2013 um 15:00 Uhr)
 
Benutzerbild von sx2008
sx2008

 
Delphi 2007 Professional
 
#2
  Alt 14. Feb 2013, 15:13
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:
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.
  Mit Zitat antworten Zitat
ConstantGardener

 
Delphi 10.4 Sydney
 
#3
  Alt 17. Feb 2013, 10:24
Hallo Key65,

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

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.
Andreas Schachtner

Geändert von ConstantGardener (17. Feb 2013 um 11:12 Uhr)
  Mit Zitat antworten Zitat
key65
 
#4
  Alt 26. Feb 2013, 11:58
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 (Absturz IDE - Zugriffsverletzung bei Adresse...).
  Mit Zitat antworten Zitat
ConstantGardener

 
Delphi 10.4 Sydney
 
#5
  Alt 28. Feb 2013, 11:33
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.
Andreas Schachtner
  Mit Zitat antworten Zitat
key65
 
#6
  Alt 28. Feb 2013, 11:43
Problem mit Absturz der IDE ist bei mir (Delphi 2009) behoben (siehe http://www.delphipraxis.net/173492-e...ml#post1205368).
  Mit Zitat antworten Zitat
ConstantGardener

 
Delphi 10.4 Sydney
 
#7
  Alt 28. Feb 2013, 12:15
Lädst Du die Komponente neu hoch? Oder hast Du sie schon neu hochgeladen?
Andreas Schachtner
  Mit Zitat antworten Zitat
key65
 
#8
  Alt 28. Feb 2013, 12:54
Ist bereits geschehen.
  Mit Zitat antworten Zitat
ConstantGardener

 
Delphi 10.4 Sydney
 
#9
  Alt 28. Feb 2013, 20:24
danke!
Andreas Schachtner
  Mit Zitat antworten Zitat
drummer
 
#10
  Alt 15. Nov 2013, 10:12
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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:19 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