Sample code for 30+ languages & platforms
Delphi DLL Requires Chilkat v11.7.0+

Get the QR Code Capabilities of the Chilkat Version in Use

See more QR Code Examples

Demonstrates the capabilities operation, which describes what the installed version of Chilkat can do: the range of QR versions, the error-correction levels, the operations, the image formats and the limits. A program can check for a feature here instead of testing for a Chilkat version number. The request can be an empty JSON object.

Chilkat Delphi DLL Downloads

Delphi DLL
var
success: Boolean;
json: HCkJsonObject;
fmt: HCkFormats;
jsonOut: HCkJsonObject;
i: Integer;
n: Integer;

begin
success := False;

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

json := CkJsonObject_Create();
fmt := CkFormats_Create();
jsonOut := CkJsonObject_Create();
success := CkFormats_QrCode(fmt,'capabilities',json,jsonOut);
if (success = False) then
  begin
    Memo1.Lines.Add(CkFormats__lastErrorText(fmt));
    Exit;
  end;

Memo1.Lines.Add('Chilkat version: ' + CkJsonObject__stringOf(jsonOut,'productVersion'));
Memo1.Lines.Add('symbology: ' + CkJsonObject__stringOf(jsonOut,'symbologies[0].id'));
Memo1.Lines.Add('QR versions: ' + IntToStr(CkJsonObject_IntOf(jsonOut,'symbologies[0].encoding.version.min')) + ' to ' + IntToStr(CkJsonObject_IntOf(jsonOut,'symbologies[0].encoding.version.max')));
Memo1.Lines.Add('structured append, most symbols: ' + IntToStr(CkJsonObject_IntOf(jsonOut,'symbologies[0].structuredAppend.maxSymbols')));

n := CkJsonObject_SizeOfArray(jsonOut,'symbologies[0].encoding.errorCorrection');
for i := 0 to n - 1 do
  begin
    CkJsonObject_putI(jsonOut,i);
    Memo1.Lines.Add('error correction: ' + CkJsonObject__stringOf(jsonOut,'symbologies[0].encoding.errorCorrection[i]'));
  end;

//  The operations this version implements.
n := CkJsonObject_SizeOfArray(jsonOut,'operations');
for i := 0 to n - 1 do
  begin
    CkJsonObject_putI(jsonOut,i);
    if (CkJsonObject_BoolOf(jsonOut,'operations[i].available') = True) then
      begin
        Memo1.Lines.Add('operation: ' + CkJsonObject__stringOf(jsonOut,'operations[i].name'));
      end;
  end;

n := CkJsonObject_SizeOfArray(jsonOut,'imageFormats.output');
for i := 0 to n - 1 do
  begin
    CkJsonObject_putI(jsonOut,i);
    Memo1.Lines.Add('image format: ' + CkJsonObject__stringOf(jsonOut,'imageFormats.output[i]'));
  end;

Memo1.Lines.Add('default timeout: ' + IntToStr(CkJsonObject_IntOf(jsonOut,'limits.timeoutMs.default')) + ' ms');
Memo1.Lines.Add('default largest image: ' + IntToStr(CkJsonObject_IntOf(jsonOut,'limits.maxPixels.default')) + ' pixels');

//  Sample output:

//  Chilkat version: 11.7.0
//  symbology: qr
//  QR versions: 1 to 40
//  structured append, most symbols: 16
//  error correction: auto
//  error correction: L
//  error correction: M
//  error correction: Q
//  error correction: H
//  operation: generate
//  operation: measure
//  operation: validate
//  operation: capabilities
//  image format: png
//  image format: svg
//  default timeout: 10000 ms
//  default largest image: 16777216 pixels

CkJsonObject_Dispose(json);
CkFormats_Dispose(fmt);
CkJsonObject_Dispose(jsonOut);