The component is used to create the Micro QR Code barcode symbols. It's defined in the pMicroQRCode unit.

Micro QR CodeMicro QR Code is a very small QR Code that fits applications that require a smaller space and use smaller amounts of data, such as ID of printed circuit boards and electronics parts, etc. The efficiency of data encoding has been increased with the use of only one position detection pattern.

Micro QR Code is a two-dimensional matrix symbology. It is not capable of storing much data. However, because it can store data for each symbol size more efficiently than QR Code, the size of Micro QR Code symbols does not significantly increase, even though the amount of data is increased.

The Micro QR Code was created by Toyota subsidiary Denso-Wave in 1994.

Error checking and correcting (ECC)

There are three user-selectable levels of error correction, as shown in following table, offering the capability of recovery from the amounts of damage in the table:

Values of ECCLevel propertyECC levelsRecevory capacities (%) (approx.)

You can use the ECCLevel property to specify the error correction code level for a Micro QR Code symbol. It can be one of these values: elLowest, elMedium, and elQuality, corresponding to the error checking and correcting levels L, M, and Q. These values are defined in the pMicroQRCode unit.

If the ECCLevelUpgrade property is set to true, the highest error correction code level that can be accommodated by current symbol size will by used for creating more robust symbols. Note, the new level is always no lower than the level specified by the ECCLevel property, and the symbol size will not be increased, it may be determined depending on the length of barcode text, and the error correction code level specified by the ECCLevel property (see also the "Symbol sizes" section below). In other words, only the remaining capacity in current symbol size will be used to upgrade the error correction code level. The property CurrentECCLevel can be used to get the factual error correction code level.

Note, for version 1 Micro QR Code symbols, the error checking and correcting capacity is limited to error detection only. See also the "Symbol sizes" section below.

Symbol sizes

There are four sizes of Micro QR Code symbol, referred to as version 1 to 4, in increasing order of data capacity. You can use the MinVersion and the MaxVersion properties to specifiy the minimum and maximum sizes for a Micro QR Code symbol. They can be one of values from 1 to 4 (defined in the pMicroQRCode unit), corresponding to the versions 1 to 4. The smallest symbol size that accommodates the barcode text will be automatically selected between minimum and maximum symbol sizes. The CurrentVersion property can be used to get the factual symbol size.

The symbol sizes and the maximum data capacity of each version are listed in following table:

VersionSymbol size (modules)ECC levelData capacities
Numeric modeAlphanumeric modeByte modeKanji mode
111 * 11L5---
213 * 13L106--
315 * 15L231496
417 * 17L3521159

If the barcode text does not fill the maximum data capacity of the Micro QR Code symbol, remaining data capacity of the symbol will be filled by using PAD characters. If the barcode text is so long that it cannot be encoded using the maximum symbol size specified by the MaxVersion property, an OnInvalidLength or OnInvalidDataLength (only for Delphi/C++ Builder 2009 or later) event will occur.

Quiet zones

The minimum quiet zone is equal to 2 modules on all four sides. So the minimum values of LeadingQuietZone, TrailingQuietZone, TopQuietZone, and BottomQuietZone properties are equal to 2.

Character set

All 8-bit values can be encoded. The default interpretation shall be:

Encoding modes

Micro QR Code has four encoding modes as Numeric mode, Alphanumeric mode, Kanji mode and Byte mode respectively in decreasing order of encoding density. All 256 8-bits value are encoded by switching automatically between all 4 (the AllowKanjiMode property is set to true) or 3 (the Kanji mode will not be used if the AllowKanjiMode property is set to false) encoding modes. The character sets in each mode are listed in the following:

The EncodePolicy property indicates how to use these encoding mode by the component. This property can be one of these values (defined in the pMicroQRCode unit):


(*): The Data property, OnInvalidDataLength and OnInvalidDataChar events are available only for the Delphi/C++ Builder 2009 or later.