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 プロパティのリストから選択)
テストプログラムでは,ほとんど設計時にこれらの値を設定しています. |
select CustNo,Company,Zip,Addr1,Phone from customer
 |
図1
設計時画面 |
 |
図2
印刷項目の設定
- このテストでは各項目の印刷位置を項目エディタで設定
|
 |
図3
実行結果 |
 |
図4
ラベル |
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.
|