Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2001年02月23日] [更新 2016年04月29日] タックシール印刷コンポーネント
   
タックシール印刷コンポーネント
テストプログラム StartLabel
動作確認等 Windows 7 U64(SP1) + Delphi XE(UP1) Pro







印刷開始ラベルを指定してプレビュー


印刷開始のラベルの位置を指定してから,印刷プレビューを行うようにしたテストプログラムです.Delphi に付属の DBDEMOS を使用しています.郵便番号の前に「〒」のマークを,また宛名の後ろに「様」の文字を追加しています.印刷関係クエリーは,以下の様に設定しています.
  • Query1 の DatabaseName プロパティを DBDEMOS にする
  • Query1 の SQL プロパティを以下のコードとする
  • 本コンポの DataSet プロパティを Query1 とする
  • 本コンポをダブルクリックして,印刷項目を下図の様に設定する
    (項目を追加して FieldName プロパティのリストから選択)
テストプログラムでは,ほとんど設計時にこれらの値を設定しています.


リスト1 
Query1 の SQL プロパティ
select CustNo,Company,Zip,Addr1,Phone from customer


図1
設計時画面
図2
印刷項目の設定
  • このテストでは各項目の印刷位置を項目エディタで設定
図3
実行結果
図4
ラベル

リスト2 
テストプログラムのコード
unit StartLabelUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, plPrev, plTackPrev, StdCtrls, ComCtrls, ExtCtrls,
  Buttons;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Query1: TQuery;
    Query1CustNo: TFloatField;
    Query1Company: TStringField;
    Query1Zip: TStringField;
    Query1Addr1: TStringField;
    Query1Phone: TStringField;
    Panel5: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    UpDown2: TUpDown;
    UpDown3: TUpDown;
    UpDown4: TUpDown;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    UpDown1: TUpDown;
    Panel1: TPanel;
    plTackPrev1: TplTackPrev;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//=============================================================================
//  フォーム表示開始時に入力用Editの最大値を設定
//
//  plTackPrev1のオブジェクトインスペクタでの設定は
//  StartRow := 2;
//  startCol := 2;
//=============================================================================
procedure TForm1.FormShow(Sender: TObject);
begin
  UpDown1.Max := plTackPrev1.LabelRowCnt;
  UpDown2.Max := plTackPrev1.LabelColCnt;

  Edit1.Text  := IntToStr(plTackPrev1.StartRow);
  Edit2.Text  := IntToStr(plTackPrev1.StartCol);
end;

//=============================================================================
//  クエリの結果をタックシールに印刷
//  印刷開始ラベル行と列位置はメインフォームのEditで入力しておく
//=============================================================================
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  //印刷開始ラベルを指定
  plTackPrev1.StartRow := StrToInt(Trim(Edit1.Text));
  plTackPrev1.StartCol := StrToInt(Trim(Edit2.Text));

  //印刷ずれの調整用変数をセット
  plTackPrev1.PrintOffsetX := StrToInt(Trim(Edit3.Text));
  plTackPrev1.PrintOffsetY := StrToInt(Trim(Edit4.Text));
  plTackPrev1.Title        := 'ヒサゴ GB1985の例';

  //プレビュー開始
  plTackPrev1.Preview;
end;

end.