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
IRC channel
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
What is the meaning of TF...
by
Hartmut
[
Today
at 11:17:32 am]
BGRABitmap - showcase -
by
Mongkey
[
Today
at 11:14:36 am]
Patt - a small ball bounc...
by
thehay95
[
Today
at 11:06:17 am]
jwabcrypt unit is missing
by
Thaddy
[
Today
at 11:01:41 am]
Windows API and wide/unic...
by
marcov
[
Today
at 10:49:07 am]
BGRA Controls Install Lat...
by
paweld
[
Today
at 10:39:51 am]
Huge problem with open fi...
by
dseligo
[
Today
at 10:09:29 am]
[SOLVED] TPanel slider po...
by
Thaddy
[
Today
at 09:21:09 am]
Sleep forever
by
Thaddy
[
Today
at 08:51:02 am]
Lazarus corrupted my enti...
by
Martin_fr
[
Today
at 08:50:09 am]
GUI for ChatGPT (yarvis)
by
Thaddy
[
Today
at 07:46:19 am]
TFileStream.ReadAnsiStrin...
by
simone
[
Today
at 07:37:09 am]
Lazarus IDE Windows "stuc...
by
Tony Stone
[
Today
at 01:47:54 am]
Lazarus Install PI5 Bookw...
by
TRon
[
Today
at 01:21:23 am]
[SOLVED] Does using TTime...
by
EganSolo
[November 28, 2023, 11:38:26 pm]
TPath enhancements (Issue...
by
Bart
[November 28, 2023, 10:53:15 pm]
Why cannot this be inline...
by
ASerge
[November 28, 2023, 09:37:57 pm]
Anyone interested in test...
by
PascalDragon
[November 28, 2023, 09:23:21 pm]
[SOLVED]Diferences in Gen...
by
janasoft
[November 28, 2023, 09:05:14 pm]
Projects written in old F...
by
wp
[November 28, 2023, 08:07:11 pm]
Adding an icon to the exe...
by
bobby100
[November 28, 2023, 07:05:22 pm]
[solved] How to activate/...
by
Raumgleiter
[November 28, 2023, 06:07:24 pm]
Does anybody have example...
by
pascalbythree
[November 28, 2023, 06:01:21 pm]
Get Started / How'to with...
by
circular
[November 28, 2023, 05:08:32 pm]
Conscious Artificial Inte...
by
schuler
[November 28, 2023, 04:37:48 pm]
« previous
next »
Print
Pages: [
1
]
2
Author
Topic: [SOLVED] QRCode component (Read 1522 times)
Pe3s
Hero Member
Posts: 513
[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: 11445
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: 513
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: 11445
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: 513
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: 11445
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: 513
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: 11445
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
Full Member
Posts: 219
#PDK
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: 513
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: 513
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
Full Member
Posts: 219
#PDK
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: 513
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: 11445
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
Full Member
Posts: 219
#PDK
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