==========================================================================
QRコード表示コンポーネント TQRCode
QRCode Image Component Version 1.0
Copyright(C) 2005 〜 2011 seizo
==========================================================================
【 概要 】
太田純(Junn Ohta)さんによるパブリックドメインのコード、
QRコード生成プログラムサンプルコード Ver.0.1をもとに
QRコード表示コンポーネント TQRCode を作成しました。
このバージョンの TQRCode には、以下の制限事項があります。
・QRコードモデル2にのみ対応(モデル1には、非対応)
・拡張チャネル解釈(ECI)モードには、非対応
TQRCode は、TImage を継承していますので、TImage に QRコード表示機能
を追加したものという感覚で使用できます。LoadFromFile 等で画像を読み込ん
だ後、画像の任意の位置に QRコードを表示するといった事も可能です。
また、ビットマップ形式で描画する場合は、シンボルを90度単位で回転
させたり、回転と組み合わせて反転させて表示する事も可能です。
登録はコンポーネントのインストールで、QRCode.pas を選択して下さい。
【 プロパティ 】
このコンポーネント TQRCode で追加されたプロパティは、以下の通りです。
property Code: String;
シンボルを生成する対象となる文字列です。
バイナリデータを含め全てのデータを表現可能です。
(数字、英数字、8ビットバイト、漢字)
BinaryOperation が True の時、~ 〜 ~ という記述は、その間に
16進表記でデータが記述されているものと見なします。例えば、
'Hello~0D0A~world !!' という文字列は、改行をはさんだ
'Hello' と 'world !!' という文字列を表わします。
'~' 文字自身を表わす場合は、'~~' と記述します。
property Data[Index: Integer]: Byte;
シンボルデータにバイト単位でアクセスする為のプロパティです。
シンボルデータが、通常のテキストデータの場合、Code と Data
は、一対一に対応しています。
すなわち、Code[i] = Data[i - 1] (1 <= i <= Len)
ここで言うシンボルデータとは、テキストデータ・バイナリデータを
問わず、シンボルを生成する対象となるソースデータの事を指します。
Data は、TQRCode のディフォルトプロパテイです。
property Memory: PChar;
シンボルデータが、格納されている領域のポインタを保持するリード
オンリィのプロパティ
TQRCode は実際には、この領域のデータをQRコードとして表示して
います。Data と Memory は常に一対一に対応しています。
すなわち、Data[i] = Memory[i] (0 <= i <= Len - 1)
property Len: Integer;
Memory に格納されているシンボルデータのサイズを保持するリード
オンリィのプロパティ
property Binary: Boolean;
シンボルデータが、バイナリデータを含む場合に True にセットされる
リードオンリィのプロパティ
ここで言うバイナリデータとは、00H 〜 1FH 間の 0DH, 0AH, 09H 以外の
データの事を指します。
property BinaryOperation: Boolean;
Code プロパティ内の ~ 〜 ~ という記述をその間に16進表記でデータ
が記述されていると見なすかどうかを決定する為のプロパティ
False - Code の内容をそのまま通常のテキストと見なす。(ディフォルト)
True - ~ 〜 ~ 表記は、16進表記でデータが記述されていると見なす。
BinaryOperation が True の時に ~ 〜 ~ 内を16進表記としてデータに
変換できない時(エラー)、BinaryOperation は False にセットし直され
Code の内容は、そのまま通常のテキストデータと見なされます。
Binary が True にセットされた時、BinaryOperation も自動的に True
にセットされます。
BinaryOperation が True の時、'~~' という記述は、'~' 文字自身を
表わします。
~ 〜 ~ 間に16進表記でデータが記述されている文字列を以後、
「バイナリ表記文字列」と呼ぶ事とします。
property Mode: TQRMode;
シンボルデータをいくつかのシンボルに分割して表示する場合の表示モード
を指定します。Mode の値によって Count は、以下の様に変化しますので
注意が必要です。
qrSingle - 1
qrConnect - 2..16
qrPlus - 2..1024
TQRMode は、次の様に定義されています。
type
TQRMode = (qrSingle, qrConnect, qrPlus);
qrSingle - シングルモード(シンボルを1個だけ表示)
qrConnect - 連結モード(最大16個までのシンボルを連結構造で表示)
qrPlus - プラスモード(最大1024個までの独立したシンボルとして分割表示)
property Count: Integer;
シンボルデータをいくつかのシンボルに分割して表示する場合の表示個数
を指定します。Count の値によって Mode は、以下の様に変化しますので
注意が必要です。
1 - qrSingle(常にシングルモード)
2..16 - qrConnect or qrPlus(連結モードあるいはプラスモード)
17..1024 - qrPlus(常にプラスモード)
各モードでのシンボルの最大表示個数は、次の様に定義されています。
const
QR_CNN_MAX = 16; // 連結モードでのシンボルの最大表示個数
QR_PLS_MAX = 1024; // プラスモードでのシンボルの最大表示個数
property Column: Integer;
シンボルデータをいくつかのシンボルに分割して表示する場合に
1行当たりに表示するシンボルの最大個数を指定します。
Column の指定範囲は、1..QR_PLS_MAX (1..1024) です。
property Offset[Index: Integer]: Integer;
シンボルデータをいくつかのシンボルに分割して表示する場合の各データ
の Memory 内でのオフセット値を保持するリードオンリィのプロパティです。
0 <= Index <= Count で常に Offset[0] = 0, Offset[Count] = Lenです。
例えば、n 番目のデータは、
Memory[Offset[n - 1]] 〜 Memory[Offset[n] - 1] で
(Data[Offset[n - 1]] 〜 Data[Offset[n] - 1] と同じ)
そのサイズは、Offset[n] - Offset[n - 1] バイトとなります。
(ただし、Len = 0 の場合は、上記の様なデータエリア自体存在しません。)
property Parity: Integer;
連結モードの場合に使用するシンボルデータのパリティ値を保持する
リードオンリィのプロパティです。連結モード以外の場合、この値は
意味を持ちません。
property Numbering: TNumbering;
シンボルデータをいくつかのシンボルに分割して表示する場合に
コメント部分に付加して表示する順番号の表示方法を指定します。
TNumbering は、次の様に定義されています。
type
TNumbering = (nbrNone, nbrHead, nbrTail, nbrIfVoid);
nbrNone - 順番号を付加しない。
nbrHead - コメントの前の部分に順番号を付加する。
nbrTail - コメントの後の部分に順番号を付加する。
nbrIfVoid - コメントが空文字('')の場合のみ順番号を付加する。
property CommentUp: String;
個々のシンボルの上部に表示するコメント文字列
コメント文字列は余白の範囲内に表示されます。
property CommentUpLoc: TLocation;
個々のシンボル上部に表示するコメント文字列の表示方法を指定します。
TLocation は、次の様に定義されています。
type
TLocation = (locLeft, locCenter, locRight);
locLeft - 左詰で表示する
locCenter - 中央に表示する
locRight - 右詰で表示する
property CommentDown: String;
個々のシンボルの下部に表示するコメント文字列
コメント文字列は余白の範囲内に表示されます。
property CommentDownLoc: TLocation;
個々のシンボル下部に表示するコメント文字列の表示方法を指定します。
TLocation は、次の様に定義されています。
type
TLocation = (locLeft, locCenter, locRight);
locLeft - 左詰で表示する
locCenter - 中央に表示する
locRight - 右詰で表示する
property SymbolWidth: Integer;
クワイエットゾーンも含めた個々のシンボルの幅を保持するリードオンリイ
のプロパティ
property SymbolWidthS: Integer;
余白までも含めた個々のシンボルの幅を保持するリードオンリイのプロパティ
property SymbolWidthA: Integer;
シンボル領域全体の幅を保持するリードオンリイのプロパティです。
この大きさは、そのときの Count と Column の値によって決定されます。
property SymbolHeight: Integer;
クワイエットゾーンも含めた個々のシンボルの高さを保持するリードオンリイ
のプロパティ
property SymbolHeightS: Integer;
余白までも含めた個々のシンボルの高さを保持するリードオンリイのプロパティ
property SymbolHeightrA: Integer;
シンボル領域全体の高さを保持するリードオンリイのプロパティです。
- 1
- 2
- 3
- 4
- 5
前往页