Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
LCL
»
[SOLVED] QRCode component
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Interesting article about...
by
Bogen85
[
Today
at 02:46:39 pm]
Common File Dialogs Have ...
by
rvk
[
Today
at 02:39:17 pm]
Specializing a generic of...
by
ALLIGATOR
[
Today
at 02:36:52 pm]
How make the GUI as one p...
by
Hartmut
[
Today
at 02:09:59 pm]
Button opens terminal (Li...
by
Hartmut
[
Today
at 02:01:52 pm]
[SOLVED] Classic objects ...
by
Warfley
[
Today
at 01:46:08 pm]
Starting a program with h...
by
Hartmut
[
Today
at 01:41:23 pm]
DBGrid editing control
by
silvercoder70
[
Today
at 12:43:29 pm]
TSynCompletion filtering ...
by
Martin_fr
[
Today
at 12:08:45 pm]
IFS Fractals: Iterating t...
by
Joanna from IRC
[
Today
at 11:41:26 am]
Unwanted additional line ...
by
CM630
[
Today
at 08:55:13 am]
How to copy file to web
by
TRon
[
Today
at 07:56:04 am]
Animated GIF's and Lazaru...
by
Aruna
[
Today
at 05:44:42 am]
TCheckGroup Child Alignme...
by
dsiders
[
Today
at 05:34:14 am]
MainMenu: How to use the ...
by
rich2014
[
Today
at 02:45:31 am]
Lazarus for Windows on aa...
by
msintle
[
Today
at 02:33:01 am]
Q: Debug a plugin DLL - c...
by
440bx
[
Today
at 02:23:27 am]
[Solved] Dumb SQLite ques...
by
dsiders
[
Today
at 12:44:26 am]
SDL2 Fit image rotation b...
by
bobihot
[December 13, 2024, 10:31:27 pm]
[Solved] Crosshair error ...
by
Marq01
[December 13, 2024, 09:55:14 pm]
What is the history of di...
by
mika
[December 13, 2024, 09:49:59 pm]
fpweb documentation do no...
by
Sniper
[December 13, 2024, 09:02:16 pm]
Managed pointers
by
jksmithiii
[December 13, 2024, 08:42:29 pm]
[Solved] Debug a plugin D...
by
d7_2_laz
[December 13, 2024, 05:27:48 pm]
SAVE StringGrid to PDF
by
seghele0
[December 13, 2024, 05:19:19 pm]
« previous
next »
Print
Pages: [
1
]
2
Author
Topic: [SOLVED] QRCode component (Read 2492 times)
Pe3s
Hero Member
Posts: 574
[SOLVED] QRCode component
«
on:
September 23, 2023, 07:42:30 am »
Hello forum members, I have a question: are there any other components than LazBarcodes with more options?
«
Last Edit: September 24, 2023, 11:59:56 am by Pe3s
»
Logged
wp
Hero Member
Posts: 12476
Re: QRCode component
«
Reply #1 on:
September 23, 2023, 11:48:17 am »
Be more specific. What in particular is missing?
Logged
Pe3s
Hero Member
Posts: 574
Re: QRCode component
«
Reply #2 on:
September 23, 2023, 01:18:45 pm »
@wp, I can't make a business card in LazBarcode unless I don't know how to do it
Logged
wp
Hero Member
Posts: 12476
Re: QRCode component
«
Reply #3 on:
September 23, 2023, 05:04:05 pm »
You mean you want to add a QRcode to a business card file for printing? You better use the barcode component in LazReport, because it saves you some steps.
But the effort to do this without LazReport is not so big. Just some scaling to correct for the differences in resolutions. As for the barcode, there is a method PaintToCanvas which allows you to draw the barcode directly on the canvas of the printer.
See attached demo which prints a business card in multiple copies from the screen to a sheet of paper.
Logged
Pe3s
Hero Member
Posts: 574
Re: QRCode component
«
Reply #4 on:
September 23, 2023, 05:08:24 pm »
@wp, I meant a business card in the form of a qrcode
- First name Last Name
-address
-Phone number
Logged
wp
Hero Member
Posts: 12476
Re: QRCode component
«
Reply #5 on:
September 23, 2023, 05:24:59 pm »
That's what's in the sample project. The QRCode on the business code contains the information in the other fields. Just assign the text to the text property of the barcode:
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
FormCreate
(
Sender
:
TObject
)
;
begin
BarcodeQR1
.
Text
:
=
'Donald Duck'
+
LineEnding
+
'1234 Main Street, Duck Town'
+
LineEnding
+
'phone: +12 / 34 56 78 90'
+
LineEnding
+
'mail: donald.duck@duckmail.org'
;
end
;
Logged
Pe3s
Hero Member
Posts: 574
Re: QRCode component
«
Reply #6 on:
September 23, 2023, 07:32:14 pm »
Is it possible to set the Contact mode so that, for example, the phone can save contacts?
Logged
wp
Hero Member
Posts: 12476
Re: QRCode component
«
Reply #7 on:
September 23, 2023, 11:14:33 pm »
I don't know what you mean. LazBarcode is just for displaying barcodes...
Logged
Fibonacci
Hero Member
Posts: 615
Internal Error Hunter
Re: QRCode component
«
Reply #8 on:
September 23, 2023, 11:51:07 pm »
For low level QR code you can look here: (@wp helped me with this)
https://forum.lazarus.freepascal.org/index.php/topic,64635
What you are looking for is just vCard. QRCode contains just text/binary data, vCard format looks like this:
Code: Pascal
[Select]
[+]
[-]
BEGIN
:
VCARD
VERSION
:
4.0
FN
:
Simon Perreault
N
:
Perreault
;
Simon
;;;
ing
.
jr
,
M
.
Sc
.
BDAY
:
--
0203
GENDER
:
M
EMAIL
;
TYPE
=
work
:
simon
.
perreault
@
viagenie
.
ca
END
:
VCARD
So I passed this vCard to QRCode generator like this:
Code: Pascal
[Select]
[+]
[-]
TEXT_STRING
:
=
''
+
'BEGIN:VCARD'
+
LineEnding
+
'VERSION:4.0'
+
LineEnding
+
'FN:Simon Perreault'
+
LineEnding
+
'N:Perreault;Simon;;;ing. jr,M.Sc.'
+
LineEnding
+
'BDAY:--0203'
+
LineEnding
+
'GENDER:M'
+
LineEnding
+
'EMAIL;TYPE=work:simon.perreault@viagenie.ca'
+
LineEnding
+
'END:VCARD'
+
LineEnding
;
And the result you can see in the attachment
More info about vCard format:
https://en.wikipedia.org/wiki/VCard
BTW. You can still scan the QR in the attachment, despite not the best quality and small size, and it works
«
Last Edit: September 24, 2023, 12:06:59 am by Fibonacci
»
Logged
Pe3s
Hero Member
Posts: 574
Re: QRCode component
«
Reply #9 on:
September 24, 2023, 11:59:42 am »
@wp, @Fibonacci, Thank you for your help, big beer
Logged
Pe3s
Hero Member
Posts: 574
Re: [SOLVED] QRCode component
«
Reply #10 on:
September 25, 2023, 09:43:39 pm »
One more question why vcard does not show the memo contents in the next lines, only in the first one.
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
Button1Click
(
Sender
:
TObject
)
;
begin
BarcodeQR1
.
Text
:
=
''
+
'BEGIN:VCARD'
+
LineEnding
+
'VERSION:3.0'
+
LineEnding
+
'N:'
+
Edit1
.
Text
+
LineEnding
+
'ORG:'
+
Edit2
.
Text
+
LineEnding
+
'ADR:'
+
Edit3
.
Text
+
LineEnding
+
'TEL:'
+
Edit4
.
Text
+
LineEnding
+
'EMAIL:'
+
Edit5
.
Text
+
LineEnding
+
'NOTE:'
+
Memo1
.
Lines
.
Text
+
LineEnding
+
'END:VCARD'
;
end
;
Logged
Fibonacci
Hero Member
Posts: 615
Internal Error Hunter
Re: [SOLVED] QRCode component
«
Reply #11 on:
September 25, 2023, 09:50:58 pm »
Sorry I'm on the phone now so I can't test, but, put another memo on your form and set it's text property to text property of this qrcode component, then you will see what vCard you generated. It's probably invalid.
Logged
Pe3s
Hero Member
Posts: 574
Re: [SOLVED] QRCode component
«
Reply #12 on:
September 25, 2023, 10:01:08 pm »
qrcode only generates the first line in the memo, if we add subsequent lines to the memo it does not
Logged
wp
Hero Member
Posts: 12476
Re: [SOLVED] QRCode component
«
Reply #13 on:
September 25, 2023, 10:55:30 pm »
Quote from: Pe3s on September 25, 2023, 10:01:08 pm
qrcode only generates the first line in the memo, if we add subsequent lines to the memo it does not
IIRC you must replace the lineendings in the memo by '\n'
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
Button1Click
(
Sender
:
TObject
)
;
begin
BarcodeQR1
.
Text
:
=
''
+
'BEGIN:VCARD'
+
LineEnding
+
'VERSION:3.0'
+
LineEnding
+
'N:'
+
Edit1
.
Text
+
LineEnding
+
'ORG:'
+
Edit2
.
Text
+
LineEnding
+
'ADR:'
+
Edit3
.
Text
+
LineEnding
+
'TEL:'
+
Edit4
.
Text
+
LineEnding
+
'EMAIL:'
+
Edit5
.
Text
+
LineEnding
+
'NOTE:'
+
StringReplace
(
Memo1
.
Lines
.
Text
,
LineEnding
,
'\n'
,
[
rfReplaceAll
]
)
+
LineEnding
+
'END:VCARD'
;
end
;
Logged
Fibonacci
Hero Member
Posts: 615
Internal Error Hunter
Re: [SOLVED] QRCode component
«
Reply #14 on:
September 26, 2023, 10:18:23 am »
Yes, I was trying to force him to see it himself
Each line in the vCard must begin with a known keyword, field type
Code: C
[Select]
[+]
[-]
BEGIN
:
VCARD
VERSION
:
3.0
NOTE
:
Line
1
\nLine
2
\nLine
3
END
:
VCARD
He probably had something like this:
Code: C
[Select]
[+]
[-]
BEGIN
:
VCARD
VERSION
:
3.0
NOTE
:
Line
1
Line
2
# invalid
Line
3
# invalid
END
:
VCARD
Logged
Print
Pages: [
1
]
2
« previous
next »
Lazarus
»
Forum
»
Programming
»
LCL
»
[SOLVED] QRCode component
TinyPortal
© 2005-2018