========================================================================== LightReport2 対応バーコード表示コンポーネント TLRBarImage Barcode Image Component for LightReport2 Version 0.1 Copyright(C) 2010-2011 DEKO M&I seizo ========================================================================== 【 概要 】 DEKOさんのバーコード生成ユニット ver0.70 (BCODE_07.LZH) (ITF部分についてはM&Iさん)をもとに LightReport2 対応バーコード表示 コンポーネント TLRBarImage を作成しました。 TLRBarImage で表示可能なバーコードの種類は以下の12種類です。 ・JAN(EAN)/短縮 ・UPC-A/UPC-E ・CODE-39 ・NW-7(CODABAR) ・ITF(Interleav 2of5) ・CTF(Code 2of5 | Industrial 2of5) ・IATA(IATA 2of5) ・MATRIX(Matrix 2of5) ・NEC(NEC 2of5 | COOP 2of5) ・カスタマーバーコード ・CODE-128 ・CODE-93 TLRBarImage は、TLRImage を継承していますので、TLRImage にバーコード表示 機能を追加したものという感覚で使用できます。LoadFromFile 等で画像を読み 込んだ後、画像の任意の位置にバーコードを表示するといった事も可能です。 また、ビットマップ形式で描画する場合は、シンボルを90度単位で回転させたり、 回転と組み合わせて反転させて表示する事も可能です。 登録はコンポーネントのインストールで、LRBarImg.pas を選択して下さい。 【 プロパティ 】 このコンポーネント TLRBarImage で追加されたプロパティは、以下の通りです。 property BarType: TBarTypes; バーコードの種類を指定します。 TBarTypes は、次の様に定義されています。 type TBarTypes = (cbarJAN, cbarUPC, cbarCODE39, cbarNW7, cbarITF, cbarCTF, cbarIATA, cbarMATRIX, cbarNEC, cbarCUSTOMER, cbarCODE128, cbarCODE93); property Code: String; バーコードを生成するための文字列です。チェックデジットは入力する必要は ありません。自動生成します。ただし UPC-E の場合、先頭の文字は、0 に 固定されています。 JAN - 数値のみ(0〜9)。文字列長で通常/短縮を判別。(12桁/7桁) UPC - 数値のみ(0〜9)。文字列長でA/Eを判別。(11桁/7桁) CODE-39 - 0〜9、A〜Z、幾つかの記号(ソース参照) NW-7 - 0〜9、幾つかの記号(ソース参照) ITF - 数値のみ(0〜9) CTF - 数値のみ(0〜9) IATA - 数値のみ(0〜9) MATRIX - 数値のみ(0〜9) NEC - 数値のみ(0〜9) CUSTOMER - 0〜9、A〜Z及び- (郵便番号7桁 + 住所表示番号13桁) CODE-128 - 英数字及び記号 CODE-93 - 0〜9、A〜Z、幾つかの記号(ソース参照) 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 StartChar: Char; スタートキャラクタに使用するキャラクタ JAN - 使用しない UPC - 使用しない CODE-39 - '*'固定 NW-7 - 'A'〜'D' ITF - 使用しない CTF - 使用しない IATA - 使用しない MATRIX - 使用しない NEC - 使用しない CUSTOMER - 使用しない CODE-128 - 'A'〜'C'(キャラクタセット) CODE-93 - '('固定 property StopChar: Char; ストップキャラクタに使用するキャラクタ JAN - 使用しない UPC - 使用しない CODE-39 - '*'固定 NW-7 - 'A'〜'D' ITF - 使用しない CTF - 使用しない IATA - 使用しない MATRIX - 使用しない NEC - 使用しない CUSTOMER - 使用しない CODE-128 - 使用しない CODE-93 - ')'固定 property CD: Boolean; チェックディジットの有無 JAN - 必ず使用する UPC - 必ず使用する CODE-39 - True=使用、False=使用しない NW-7 - True=使用、False=使用しない ITF - True=使用、False=使用しない CTF - True=使用、False=使用しない IATA - 必ず使用する MATRIX - True=使用、False=使用しない NEC - True=使用、False=使用しない CUSTOMER - 必ず使用する CODE-128 - 必ず使用する CODE-93 - 必ず使用する(常に2個付加) property CDC: String; キャラクタペースのチェックデジットの値を保持するリード オンリイのプロパティ。チェックデジットが存在しない場合の値は、 ''(ナル文字)です。 property CDN: Integer; 数値ペースのチェックデジットの値を保持するリードオンリイの プロパティ。チェックデジットが存在しない場合の値は、-1 です。 CODE-93 の場合は、2個のチェックデジットを4桁の10進数で表現 します。1番目のチェックデジットは、(CDN mod 100) で、2番目の チェックデジットは、(CDN div 100) で得られます。 property Scale: TScale; 表示するバーコードの倍率を指定します。 TScale は、次の様に定義されています。 type TSCale = 1..10; property Angle: Integer; BarPicture が、picBMP か picJPEG の場合は、バーコードを90度単位で 回転させて表示する事が出来ます。Angle は、0, 90, 180, 270 いずれか の値を取ります。 property Reverse: Boolean; BarPicture が、picBMP か picJPEG の場合は、バーコードを反転させて 表示する事が出来ます。この反転は、回転と組み合わせての反転が可能です。 すなわち90度回転させた状態のものをさらに反転もさせるという様な事が 可能です。 property Symbol: String; バーコード文字列にチェックデジットやスタート・ストップキャラクタ等 を加えた最終的なシンボル文字列 property SymbolDisp: Boolean; バーコード下部にシンボル文字列を表示するかどうかのスイッチ True=表示、False=表示しない property BarFont: TFont; シンボル文字列やコメントのフォントを指定します。 property Transparent: Boolean; バーコードの背景色を透過色にするかどうかのスイッチ True=透過色にする、False=背景色で描く property BarColor: TColor; 描画するバーコードの色 property BackColor: TColor; 描画するバーコードの背景色 property BarWidth: Integer; 描画されたバーコードの幅を保持するリードオンリイのプロパティ 描画前にバーコードの幅を指定する事は出来ません。バーコードの幅 に影響を与えるのはバーコードの倍率 Scale です。 property BarHeight: Integer; 描画するバーコードの高さを指定します。Customerバーコードの 場合は、リードオンリイのプロパティとして機能しますので、 描画前にバーコードの高さを指定する事は出来ません。 property BarLeft: Integer; 描画するバーコードの Canvas 上の 左上の X 座標を指定します。 property BarTop: Integer; 描画するバーコードの Canvas 上の 左上の Y 座標を指定します。 property BarSpaceUp: Integer; 描画するバーコードの上方向の余白のサイズを指定します。 property BarSpaceDown: Integer; 描画するバーコードの下方向の余白のサイズを指定します。 property BarSpaceLeft: Integer; 描画するバーコードの左方向の余白のサイズを指定します。 property BarSpaceRight: Integer; 描画するバーコードの右方向の余白のサイズを指定します。 property Match: Boolean; バーコード描画時にコントロールのサイズをバーコードのサイズに 合わせるかどうかを指定します。コントロール上にバーコードのみ を表示する場合は、このプロパティを True にして下さい。 property BarPicture: TPictures; バーコードの描画方法を指定します。 TPictures は、次の様に定義されています。 type TPictures = (picBMP, picJPEG, picEMF, picWMF); picBMP - ビットマップ形式で描画 picJPEG - JPEG 形式で描画 picEMF - EMF形式で描画 picWMF - EMF形式で描画 property ElementRatio: TElementRatio; CODE39, NW7, ITF, CTF, IATA, MATRIX, NEC の場合にワイドバーとナローバー 及びワイドスペースとナロースペースの比率を 10 : 20 〜 10 : 30 すなわち、 1 対 2 から 1 対 3 の間で変化させます。ただし CTF, IATA は、ワイドスペース がありませんので、ワイドバーとナローバーの比率のみが対象となります。 TElementRatio は、次の様に定義されています。 type TElementRatio = 20..30; property BarEnabled: Boolean; バーコード表示を可能にするかどうかのスイッチ True=バーコード表示をする、False=バーコード表示を禁止する property BarDebug: Boolean; 与えられた Code プロパティが表示可能なものかどうかチェックする場合に使う スイッチです。このプロパティを True にすると、実際のバーコード表示は行な わず、Code が表示可能なものかどうかチェックして BarDisped プロパティの値 のみをセットします。 True=デバッグモードにする、False=デバッグモードを解除する property BarDisped: Boolean; バーコードの描画に成功した時に True セットされるリードオンリイの プロパティです。False にセットされるのは、主にバーコード生成文字列 (Code プロパティ)が正しく入力されていない場合です。 property BarFrame: TFrameSize; バーコードの周囲に描くフレーム(外枠)のサイズを指定します。 TFrameSize は、次の様に定義されています。 type TFrameSize = 0..100; ※Match プロパティとTransparent プロパティを同時に True にする事 は出来ません。 両プロパティは、互いに排他的関係にあります。(ソース参照) ※BarPictureプロパティは、Match プロパティが True の場合のみ picEMF 及び picWMF に設定する事が可能です。(ソース参照) ※BarPictureプロパティが、picEMF, picWMF いずれの場合でもコントロール への表示は、EMF形式で行なわれます。コピー方法の違いを指定するために これらの定数が設けられています。(ソース参照) 【 使用方法 】 複数のプロパティを設定する場合、一つ設定する度にバーコードを再表示する ルーチンを実行します。この様な事を避ける為には BarEnabled プロパティを 先頭で False に設定し、他の全てのプロパティを設定し終えたところで最後に BarEnabledプロパティを True にして下さい。 【 具体例1 】Transparent, Match 両プロパティともに False の場合 (既存の画像の上にバーコードを上描きします。) ・ ・ LRBarImage1.BarEnabled := False; // バーコード表示を一時的に禁止します。 LRBarImage1.Picture.LoadFromFile(FileName); // 画像をロード LRBarImage1.BarType := cbarJAN; // JAN コードを選択 LRBarImage1.Scale := 2; // 倍率を2に指定 LRBarImage1.SymbolDisp := True; // シンボル文字列を下部に表示する。 LRBarImage1.Transparent := False; LRBarImage1.Match := False; LRBarImage1.BarColor := clBlack; // バーコードの色を黒色に指定 LRBarImage1.BackColor := clWhite; // バーコードの背景色を白色に指定 LRBarImage1.BarHeight := 105; // バーコードの高さを指定 LRBarImage1.BarLeft := 0; // バーコードの表示位置を指定(X座標) LRBarImage1.BarTop := 0; // バーコードの表示位置を指定(Y座標) LRBarImage1.BarSpaceUp := 10; // バーコードの上方向の余白のサイズを指定 LRBarImage1.BarSpaceDown := 0; // バーコードの下方向の余白のサイズを指定 LRBarImage1.BarSpaceLeft := 10; // バーコードの左方向の余白のサイズを指定 LRBarImage1.BarSpaceRight := 10; // バーコードの右方向の余白のサイズを指定 LRBarImage1.Code := '4940125'; // Code プロパティに文字列をセット LRBarImage1.BarEnabled := True; // この時点でバーコードを表示します。 // 描画に成功した場合は、BarDisped プロパティが True にセットされます。 // そして BarWidth に実際に描画されたバーコードの幅がセットされます。 ・ ・ ※この具体例1の様にすると既存の画像の上にバーコードを上描きします。 【 具体例2 】Transparent = True の場合 (バーコードの背景色を透過色にする場合) ・ ・ LRBarImage1.BarEnabled := False; // バーコード表示を一時的に禁止します。 LRBarImage1.Picture.LoadFromFile(FileName); // 画像をロード LRBarImage1.BarType := cbarJAN; // JAN コードを選択 LRBarImage1.Scale := 2; // 倍率を2に指定 LRBarImage1.SymbolDisp := True; // シンボル文字列を下部に表示する。 LRBarImage1.Transparent := True; // 背景色を透過色にする。 LRBarImage1.BarColor := clBlack; // バーコードの色を黒色に指定 LRBarImage1.BarHeight := 105; // バーコードの高さを指定 LRBarImage1.BarLeft := 0; // バーコードの表示位置を指定(X座標) LRBarImage1.BarTop := 0; // バーコードの表示位置を指定(Y座標) LRBarImage1.BarSpaceUp := 10; // バーコードの上方向の余白のサイズを指定 LRBarImage1.BarSpaceDown := 0; // バーコードの下方向の余白のサイズを指定 LRBarImage1.BarSpaceLeft := 10; // バーコードの左方向の余白のサイズを指定 LRBarImage1.BarSpaceRight := 10; // バーコードの右方向の余白のサイズを指定 LRBarImage1.Code := '4940125'; // Code プロパティに文字列をセット LRBarImage1.BarEnabled := True; // この時点でバーコードを表示します。 // 描画に成功した場合は、BarDisped プロパティが True にセットされます。 // そして BarWidth に実際に描画されたバーコードの幅がセットされます。 ・ ・ ※この具体例2の様にすると既存の画像の上にバーコードを描きます。 (バーコードの背景色は、透過色になります。) ※Transparent プロパティを True にすると同時に Match プロパティは、 False になりますので Match プロパティをセットする必要はありません。 両プロパティは、互いに排他的関係にあります。(ソース参照) 【 具体例3 】Match = True の場合 (バーコードのみ表示して、コントロールのサイズを バーコードのサイズに合わせる場合) ・ ・ LRBarImage1.BarEnabled := False; // バーコード表示を一時的に禁止します。 LRBarImage1.BarType := cbarJAN; // JAN コードを選択 LRBarImage1.Scale := 2; // 倍率を2に指定 LRBarImage1.SymbolDisp := True; // シンボル文字列を下部に表示する。 LRBarImage1.Match := True; // バーコードのサイズに合わせて表示する。 LRBarImage1.BarPicture := picEMF; // メタファイル(EMF)表示を選択 LRBarImage1.BarColor := clBlack; // バーコードの色を黒色に指定 LRBarImage1.BackColor := clWhite; // バーコードの背景色を白色に指定 LRBarImage1.BarHeight := 105; // バーコードの高さを指定 LRBarImage1.BarLeft := 0; // バーコードの表示位置を指定(X座標) LRBarImage1.BarTop := 0; // バーコードの表示位置を指定(Y座標) LRBarImage1.BarSpaceUp := 10; // バーコードの上方向の余白のサイズを指定 LRBarImage1.BarSpaceDown := 0; // バーコードの下方向の余白のサイズを指定 LRBarImage1.BarSpaceLeft := 10; // バーコードの左方向の余白のサイズを指定 LRBarImage1.BarSpaceRight := 10; // バーコードの右方向の余白のサイズを指定 LRBarImage1.Code := '4940125'; // Code プロパティに文字列をセット LRBarImage1.BarEnabled := True; // この時点でバーコードを表示します。 // 描画に成功した場合は、BarDisped プロパティが True にセットされます。 // そして BarWidth に実際に描画されたバーコードの幅がセットされます。 ・ ・ ※この具体例3の様にするとバーコード描画時にコントロールのサイズを バーコードのサイズに合わせます。コントロール上にバーコードのみを 表示する場合は、この様にして下さい。 ※Match プロパティを True にすると同時に Transparent プロパティは、 False になりますので Transparent プロパティをセットする必要は ありません。両プロパティは、互いに排他的関係にあります。(ソース参照) ※Match プロパティが True の場合のみメタファィル形式での描画を選択 出来ます。(picEMF 及び picWMF) これ以外の場合は、ビットマップ 形式のみの描画となります。 【 資料(CODE-128キャラクタ表) 】 以下は、バーコード生成ユニット ver0.70(BCODE_07.LZH) の README.TXT よりの抜粋です。 CODE-128 では、バーコード文字列(Code プロパティ)の入力に3通りの表記 を選べるようになっています。スタートキャラクタ(StartChar プロパティ) の値('A', 'B', 'C' の何れか)を指定して以下の何れかのキャラクタセット を選択して下さい。 ------------------------------------------------------------------ A B C ------------------------- SP SP <00> ! ! <01> " " <02> # # <03> $ $ <04> % % <05> & & <06> ' ' <07> ( ( <08> ) ) <09> * * <10> + + <11> , , <12> - - <13> . . <14> / / <15> 0 0 <16> 1 1 <17> 2 2 <18> 3 3 <19> 4 4 <20> 5 5 <21> 6 6 <22> 7 7 <23> 8 8 <24> 9 9 <25> : : <26> ; ; <27> < < <28> = = <29> > > <30> ? ? <31> @ @ <32> A A <33> B B <34> C C <35> D D <36> E E <37> F F <38> G G <39> H H <40> I I <41> J J <42> K K <43> L L <44> M M <45> N N <46> O O <47> P P <48> Q Q <49> R R <50> S S <51> T T <52> U U <53> V V <54> W W <55> X X <56> Y Y <57> Z Z <58> [ [ <59> \ \ <60> ] ] <61> ^ ^ <62> _ _ <63> ' <64> a <65> b <66> c <67> d <68> e <69> f <70> g <71> h <72> i <73> j <74> k <75> l <76> m <77> n <78> o <79> p <80> q <81> r <82> s <83> t <84> u <85> v <86> w <87> x <88> y <89> z <90> { <91> | <92> } <93> ~ <94> <95> <96> <97> <98> <99> ※「SP」は半角スペースです。。 ※「<」及び「>」はそれぞれ「<<」、「>>」と表記します。 ※特殊キャラクタは「<キャラクタ>」と表記します。 Ex.1 コードセットAで「FNC1 BEL ABC>DEFG LF」の場合、 「ABC>>DEFG」となります。 Ex.2 コードセットCで「1234567890」の場合、 「<12><34><56><78><90>」となります。 ※CODE-128で「UCC/EAN-128」を表す事もできます。 【 資料(CODE-39アスキーコード組合せ表) 】 CODE-39では、 使用文字種 = 「0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%」 の43文字ですが、このうち「$/+%」の4文字は制御キャラクタで、この 4文字と他の文字を組み合わせて以下の様にフルアスキーを表わす事が 出来ます。 ASCII CODE-39 ASCII CODE-39 ASCII CODE-39 ASCII CODE-39 ---------------- ---------------- ---------------- ---------------- %U SP SP @ %V ` %W $A ! /A A A a +A $B " /B B B b +B $C # /C C C c +C $D $ /D D D d +D $E % /E E E e +E $F & /F F F f +F $G ' /G G G g +G $H ( /H H H h +H $I ) /I I I i +I $J * /J J J j +J $K + /K K K k +K $L , /L L L l +L $M - - M M m +M $N . . N N n +N $O / /O O O o +O $P 0 0 P P p +P $Q 1 1 Q Q q +Q $R 2 2 R R r +R $S 3 3 S S s +S $T 4 4 T T t +T $U 5 5 U U u +U $V 6 6 V V v +V $W 7 7 W W w +W $X 8 8 X X x +X $Y 9 9 Y Y y +Y $Z : /Z Z Z z +Z %A ; %F [ %K { %P %B < %G \ %L | %Q %C = %H ] %M } %R %D > %I ^ %N ~ %S %E ? %J _ %O %T ※「SP」は半角スペースです。 ※ 特殊キャラクタは「<キャラクタ>」と表記します。 ※ %X, %Y, %Z も を表わします。 Ex.1 CODE-39で「Delphi」を表わす場合「D+E+L+P+H+I」と入力します。 【 資料(CODE-93アスキーコード組合せ表) 】 CODE-93では、 使用文字種 = 「0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%<$><%><+>」 の47個ですが、このうち「<$><%><+>」の4個は制御キャラクタで、 このこの4個の制御キャラクタと他の文字キャラクタを組み合わせて 以下の様にフルアスキーを表わす事が出来ます。 ASCII CODE-93 ASCII CODE-93 ASCII CODE-93 ASCII CODE-93 ---------------- ---------------- ---------------- ---------------- <%>U SP SP @ <%>V ' <%>W <$>A ! A A A a <+>A <$>B " B B B b <+>B <$>C # C C C c <+>C <$>D $ $ D D d <+>D <$>E % % E E e <+>E <$>F & F F F f <+>F <$>G ' G G G g <+>G <$>H ( H H H h <+>H <$>I ) I I I i <+>I <$>J * J J J j <+>J <$>K + + K K k <+>K <$>L , L L L l <+>L <$>M - - M M m <+>M <$>N . . N N n <+>N <$>O / / O O o <+>O <$>P 0 0 P P p <+>P <$>Q 1 1 Q Q q <+>Q <$>R 2 2 R R r <+>R <$>S 3 3 S S s <+>S <$>T 4 4 T T t <+>T <$>U 5 5 U U u <+>U <$>V 6 6 V V v <+>V <$>W 7 7 W W w <+>W <$>X 8 8 X X x <+>X <$>Y 9 9 Y Y y <+>Y <$>Z : Z Z Z z <+>Z <%>A ; <%>F [ <%>K { <%>P <%>B < <%>G \ <%>L | <%>Q <%>C = <%>H ] <%>M } <%>R <%>D > <%>I ^ <%>N ~ <%>S <%>E ? <%>J _ <%>O <%>T ※「SP」は半角スペースです。 ※ 特殊キャラクタは「<キャラクタ>」と表記します。 ※ <%>X, <%>Y, <%>Z も を表わします。 Ex.1 CODE-93で「Delphi」を表わす場合「D<+>E<+>L<+>P<+>H<+>I」と入力します。 【 テクニカル情報 】 ここでは、TLRBarImage 使用上の技術的な面を解説します。 1)ITF だけでなく全てのバーコードでフレーム(外枠)を描くことが出来ます。 これは賛否両論、色々とあると思いますが、バーコードを描いてからその上 にフレームを描くというアプローチをあえて取っています。その為に上下左右 の余白のサイズ(BarSpaceUp, BarSpaceDown, BarSpaceLeft, BarSpaceRight) を十分に取らないとバーコードの端がフレームに隠れてしまう場合があります。 2)バーコードの上下にコメントを描くことが出来る様ます。フレームの場合と 同様、上下左右の余白のサイズを十分に取らないとバーコードの上下が コメントに隠れたり、コメントが一部しか表示されないといった場合が あります。 3)デバッグ用として BarDebug プロパティがあります。BarDebug プロパティを 使うと与えられた Code プロパティが表示可能なものかどうか実際の表示前に チェックする事が可能です。 4)Angle プロパティ このプロパティを使うとバーコードを90度単位で回転させて表示する事が 出来ますが、回転の前後で BarlLeft, BarTop, BarWidth, BarHeight の 各プロパティ値は、変化しませんのでご注意下さい。たとえ回転させても これらのプロパティは、回転前の値を保持し続ける様な仕様にしてあります。 【 謝辞 】 このプログラムの主要部分は、DEKOさんのバーコード生成ユニット ver0.70(BCODE_07.LZH) (ITF部分についてはM&Iさん)に依存しています。 メタファイル関係では、M&Iさんのコードを使用させて頂き、また多大の ご協力を頂いています。 コンポーネント化は、seizo が行ないました。 DEKOさん、M&Iさん、有難うございました。 【 著作権 】 このプログラムの著作権は、DEKOさん、M&Iさん、そして seizo の三者が 有します。 【 ソフトウェア種別 】 このプログラムはフリーソフトウェアです。以下の事項を御承諾頂ければ、 自由にコピー、使用、配布を行なって頂いて構いません。 ◎このプログラムを使用した上でのいかなる損害、損失にも当方は一切 責任を負いません。このプログラムの使用は、使用者の責任において 行なって下さい。 ◎このプログラムを配布される場合は、このドキュメントファイルも含め 全てのファイルをオリジナルの状態で配布して下さい。 【 その他 】 まだまだ、改良の余地はたくさんあると思います。バグや感想、「ここは、 こうした方が良いのではないか?」等のご意見がありましたらメールで 御連絡下さい。特に、このプログラムの主要部分は、DEKOさんのユニット に依存していますので、DEKOさんのホームページを御覧頂ければ大変参考 になると思います。 ◎DEKOさんの連絡先 e-mail : ht_deko@nifty.com Home Page : http://ht-deko.minim.ne.jp ◎M&Iさんの連絡先 e-mail : masahiro.inoue@nifty.ne.jp Home Page : http://member.nifty.ne.jp/m-and-i/ ◎seizoの連絡先 e-mail : seizo@mars.dti.ne.jp TQRBarImage やその他の関連ソフト等をここで紹介しています。 http://www.vector.co.jp/vpack/browse/person/an003597.html seizo NIFTY : SGQ02732 e-mail : seizo@mars.dti.ne.jp