AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte RedeemerQR: QR-Code-Encoder-Klasse für Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

RedeemerQR: QR-Code-Encoder-Klasse für Delphi

Ein Thema von Redeemer · begonnen am 17. Jan 2020 · letzter Beitrag vom 20. Apr 2022
Antwort Antwort
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.018 Beiträge
 
Delphi 2009 Professional
 
#1

RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 17. Jan 2020, 23:50
Nach diesem Thread hab ich mir überlegt, dass es seltsam ist, dass Leute 3 Seiten mit DLLs rumeiern, statt so'n Ding einfach mal eben selbst zu schreiben. Also hab ich Donnerstag und Freitag nach Feierabend mal schnell eine nahezu komplette Klasse aus dem Boden gestampft. 100% Delphi. Es fehlt an sich nichts Wichtiges:
  • Kanji werden nicht unterstützt, braucht in Europa keiner. Könnte man mal irgendwann nachtragen, dafür müsste ich mich aber mit Shift JIS auseinandersetzen, was dem zugrundeliegt.
  • ECI (Extended Channel Interpretation) fehlt, gibt kaum Decoder dafür. Gehört zudem nicht unbedingt in die Klasse, da man die ECI-Daten auch als Eingabe übergeben kann.
  • Automatische Aufteilung der Eingabe auf mehrere Streams mit jeweils unterschiedlicher Kodierung ist nicht implementiert. Würde was bringen, wenn abschnittsweise nur Ziffern oder abschnittsweise nur Großbuchstaben/Ziffern vorkommen.
Zugrunde liegt meine TRedeemerInheriablePNG, die ich gerne für neue Grafikformate nutze (sie teilt TPNGImage.CreateFromBlank in die Methoden Create und den Rest). LoadFromStream hätte man durch etwas Sinnvolles überschreiben können, am Ende sorgt das wohl für mehr Probleme mit Zeichensätzen. Die Klasse akzeptiert als Eingabedaten ausschließlich einen RawByteString, der Nutzer muss sich über die Daten also selbst Gedanken machen. Nach dem Standard von 2005 soll man Latin-1 nutzen, UTF-8 ist nicht offiziell unterstützt.

Delphi-Quellcode:
var
  QR: TRedeemerQR;
begin
  QR := TRedeemerQR.Create();
  try
    QR.LoadFromString(AnsiString(Edit1.Text), TQRECLevel(ComboBox1.ItemIndex));
    Image1.Picture.Assign(QR);
  finally
    QR.Free();
  end;
Es ist auch eine Klasse enthalten, mit der man allgemein Bitfelder zeichnen kann.

Zur Implementation genutzte Informationen:
- http://www.swetake.com/qrcode/qr1_en.html (allgemeines Verfahren)
- https://www.thonky.com/qr-code-tutorial/introduction (Maskenbewertung und die meisten Konstanten)
- https://en.wikiversity.org/wiki/Reed...al_information (einige weitere Konstanten und Infos über das Interleaving mehrerer auch unterschiedlich großer Reed-Solomon-Blöcke)

GITHUB-PROJEKT
DOWNLOAD (enthält auch eine EXE-Demo und deren Sourcecode)
Miniaturansicht angehängter Grafiken
qr.png  
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer (14. Jul 2022 um 14:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 18. Jan 2020, 09:16
Das finde ich jetzt einen interessanten Zufall. Vorgestern hatte ich die Idee, als kleines Gimmick in einem Projekt einen QR-Code anzeigen zu lassen (nichts wildes, nur eine URL), und -schwupps- kommt hier der Code dafür.

Aber eine Frage dann: Über eine kurze Suche bin ich bereits über dieses Topic in der DP auf dieses Projekt gestoßen, was ja gegen Ende auch in dem von dir verlinkten Topic verlinkt wird. Kannst du (da du dich mit der Materie jetzt auskennst) kurz die Unterschiede bzw. Vor- und Nachteile erläutern? Eine dll scheint man in beiden Fällen nicht zu benötigen.

(Bisher ist das bei mir nur eine spinnerte Idee, viel Aufwand möchte ich in diese Funktion nicht reinstecken ...)
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.367 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 18. Jan 2020, 09:55
Wichtig wäre noch eine Lizenzangabe. Die Zint Bibliothek verwendet z.B. die Apache Lizenz, die andere hier in der DP vorgestellte Bibliothek (die wir aktuell nutzen) die MPL. Beide Bibliotheken können also auch kommerziell bzw. in Projekten mit der gleichen Lizenz eingesetzt werden.

Wie sieht das hier aus?

Ansonsten sieht das Projekt gut aus und der Quelltext recht übersichtlich.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.018 Beiträge
 
Delphi 2009 Professional
 
#4

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 18. Jan 2020, 17:38
Aber eine Frage dann: Über eine kurze Suche bin ich bereits über dieses Topic in der DP auf dieses Projekt gestoßen, was ja gegen Ende auch in dem von dir verlinkten Topic verlinkt wird. Kannst du (da du dich mit der Materie jetzt auskennst) kurz die Unterschiede bzw. Vor- und Nachteile erläutern? Eine dll scheint man in beiden Fällen nicht zu benötigen.[/I]
Ich hatte den Thread so verstanden, dass das jeweils nur Header sind. Im Prinzip sind die beiden Projekte somit doppelt. Mein Ansatz ist eher minimalistisch (dürfte deutlcih geringe Auswirkungen auf die Anwendungsgröße haben) und vielleicht ist
der Quelltext recht übersichtlich.
Das finde ich nämlich bei ZINT sehr schlimm.

Dadurch, dass es schon was Vergleichbares gibt, ist natürlich der Sinn des Projekts geringer, aber ich finde es gerade sehr interessant, dass ich im ZINT-Quelltext immer wieder Stellen finde, die meinem Ansatz sehr ähnlich sehen, obwohl ich mir bis jetzt noch nie Quelltext über QR-Codes angesehen habe und somit einfach so von mir aus programmiert habe, wie ich die Doku verstanden habe.

Da meinem Quelltext nichts zugrunde liegt, veröffentliche ich ihn hiermit unter WTFPL.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
jsp

Registriert seit: 9. Aug 2003
50 Beiträge
 
#5

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 24. Jan 2020, 08:25
Hallo Janni

ich möchte mich an dieser Stelle für deinen Code bedanken
Hat mir viel Arbeit gespart, und macht für unsere Zwecke alles perfekt.
Das Feierabendbierchen hast Du dir redlich verdient

Gruss, Jörn
  Mit Zitat antworten Zitat
TSchnuckenbock

Registriert seit: 20. Jul 2017
Ort: Lüneburger Heide
66 Beiträge
 
Delphi XE5 Professional
 
#6

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 24. Jan 2020, 11:41
Schönes Projekt.

Allerdings würde ich bei Veröffentlichung immer Kommentare mit emotional geprägter Wortwahl vorher elemenieren.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.018 Beiträge
 
Delphi 2009 Professional
 
#7

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 14. Mär 2022, 20:55
Das Projekt ist jetzt auf Github.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.855 Beiträge
 
Delphi 12 Athens
 
#8

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 15. Mär 2022, 17:05
Super! Danke für's Onlien stellen. Kann man vielleicht mal gebrauchen.
Du könntest es, um seine Verbreitung zu fördern, auch nich hier einstellen:
https://getitnow.embarcadero.com/submit/

Einfach Formular ausfüllen und in den darauf folgenden Tagen sollte es Online sein...
...ich hab' da schon drei Sachen drin...

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 15. Apr 2022, 22:56
Hi zusammen.

Diese Klasse ist super.

Leider bin ich mit meiner Software noch auf Delphi 2006 unterwegs und habe deshalb natürlich Probleme, die Klasse zum Laufen zu bekommen.

Meine Frage wäre, was alles getan werden muss, um sie auch mit älteren Delphis zum Laufen zu bekommen?

Danke
Michael

EDIT: Bin jetzt dabei, eine DLL für den Aufruf aus meinem Programm zu bauen. Der Aufruf funktioniert auch soweit ich die DLL mit Delphi 10.4 Version 27 aufrufe. Beim Aufruf aus Delphi 2006 bekomme ich eine Zugriffsverletzung beim Aufruf der Funktion.

Geändert von Michael Habbe (18. Apr 2022 um 16:54 Uhr)
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
257 Beiträge
 
Delphi XE5 Professional
 
#10

AW: RedeemerQR: QR-Code-Encoder-Klasse für Delphi

  Alt 20. Apr 2022, 07:14
Das Problem hatte ich auch:

Hi zusammen.
Diese Klasse ist super.

Leider bin ich mit meiner Software noch auf Delphi 2006 unterwegs und habe deshalb natürlich Probleme, die Klasse zum Laufen zu bekommen.
Aber: ich habe ein bisschen gesucht und irgendwer hatte sich tatsächlich die Mühe gemacht das sogar auf D6 zu porten. Ich kann mich leider nicht mehr daran erinnern, wo ich es gefunden habe. Wenn du es nicht findest kannst du mir einfach eine PM schicken, dann sende ich dir mal die D6 Version
Dirk
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:23 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