![]() |
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 |
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. |
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. |
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...). |
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. |
AW: QR-Code Komponente TQRBarcode
Problem mit Absturz der IDE ist bei mir (Delphi 2009) behoben (siehe
![]() |
AW: QR-Code Komponente TQRBarcode
Lädst Du die Komponente neu hoch? Oder hast Du sie schon neu hochgeladen?
|
AW: QR-Code Komponente TQRBarcode
Ist bereits geschehen.
|
AW: QR-Code Komponente TQRBarcode
danke!
|
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 |
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... |
AW: QR-Code Komponente TQRBarcode
code ja, aber eine kostenlose Komponente welche unter c++ builder 5 läuft habe ich leider nicht gefunden.
|
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 |
AW: QR-Code Komponente TQRBarcode
Zitat:
Delphi-Quellcode:
füllen und dann den QRCode generieren lassen? :gruebel:
QRText
|
AW: QR-Code Komponente TQRBarcode
Liste der Anhänge anzeigen (Anzahl: 2)
Demo im Anhang.
|
AW: QR-Code Komponente TQRBarcode
Hallo,
Da gibt es auch noch: DelphiZXingQRCode ![]() Grüsse, |
AW: QR-Code Komponente TQRBarcode
Wieder mal einen 2 Jahre alten Thread gekapert...
Erzeugen ist nicht das Problem... Sondern das erkennen... Mavarik |
AW: QR-Code Komponente TQRBarcode
|
AW: QR-Code Komponente TQRBarcode
Zitat:
|
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 22:51 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