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
Animated GIF's and Lazaru...
by
Khrys
[
Today
at 06:49:15 am]
Bug in string concatenati...
by
Remy Lebeau
[
Today
at 06:33:49 am]
Any support for Perpendic...
by
SandyG
[
Today
at 05:34:10 am]
Interesting article about...
by
Curt Carpenter
[
Today
at 04:49:18 am]
Dymo label writers
by
tdb
[
Today
at 03:08:19 am]
uMain.pas(150,29) Error: ...
by
dseligo
[
Today
at 01:53:00 am]
TvsComPort on MacOS Sierr...
by
Jurassic Pork
[
Today
at 01:48:33 am]
Adding interfaces to any ...
by
ASerge
[
Today
at 01:40:33 am]
Starting a program with h...
by
jeremiah
[
Today
at 12:58:26 am]
fphttpclient https/tls on...
by
fireboxsoft
[
Today
at 12:38:12 am]
Q: Debug a plugin DLL: 'h...
by
Martin_fr
[
Today
at 12:32:43 am]
The Silver Coder on YouTu...
by
silvercoder70
[December 12, 2024, 11:42:06 pm]
crash db navigator with L...
by
wp
[December 12, 2024, 11:07:46 pm]
Common File Dialogs Have ...
by
dsiders
[December 12, 2024, 11:02:19 pm]
[Solved] Crosshair error ...
by
wp
[December 12, 2024, 10:45:16 pm]
Datatypes Interoperabilit...
by
BSaidus
[December 12, 2024, 09:36:52 pm]
Component Installation
by
msch
[December 12, 2024, 09:31:43 pm]
Who catches the Linux sig...
by
PascalDragon
[December 12, 2024, 09:10:40 pm]
Bot moderator for large g...
by
Renat.Su
[December 12, 2024, 09:09:31 pm]
FPC port to 9front
by
PascalDragon
[December 12, 2024, 09:00:02 pm]
Wiki, a dead link in page...
by
d7_2_laz
[December 12, 2024, 08:47:40 pm]
lazarus 4.0 RC1 error
by
Martin_fr
[December 12, 2024, 08:06:35 pm]
Help Needed With FPHTTPCl...
by
AaronCatolico1
[December 12, 2024, 06:46:06 pm]
Draw Transparent Fill Rec...
by
LBox
[December 12, 2024, 06:43:14 pm]
I have created dll in gol...
by
Packs
[December 12, 2024, 05:52:32 pm]
« previous
next »
Print
Pages: [
1
]
2
Author
Topic: [SOLVED] QRCode component (Read 2489 times)
Pe3s
Hero Member
Posts: 573
[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: 573
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: 573
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: 573
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: 614
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: 573
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: 573
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: 614
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: 573
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: 614
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