Delphi Programming / Object Pascal
[掲載 2000年09月24日] [更新 2016年04月20日] プリンタ設定コンポーネント |
プリンタ設定コンポーネント
テストプログラム PrinterSetupDlg |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE(UP1) Pro |
設計時と同じプリンタが設置していない環境など,将来プリンタが変更となる可能性がある場合には,実行時にプロパティを設定して保存できると便利です.
このテストプログラムでは,[プリンタの設定ダイアログ] から設定した内容をそっくりそのままファイルに保存します.そして,この内容を読込んでプロパティを再設定します. |
|
図1
設計画面
- プロジェクト PrinterSetupDlg を起動
|
|
図2
設計時のプロパティ設定
- 適当なプリンタを選択する
- プリンタのプロパティダイアログを表示する
- プロパティをいろいろ設定
- [F9] でコンパイル実行する
|
|
図3
実行
- [プリンタの設定] ダイアログ表示
- 起動時の設定であることを確認
|
|
図4
実行時にプロパティを変更
- プロパティを変更してみる.
例えば,印刷の向きを [横] にして [OK] でダイアログを閉じる
- プログラムを一度終了し再実行
- [プリンタのプロパティ] をクリック
- 前回設定のプロパティが再現されているのを確認
|
|
図5
プリンタ設定値のファイル
- plSetPrinterDefault.plv は起動時のプロパティ
- plSetPrinter1.plv はプロパティを保存したファイル
|
unit PrinterSetupDlgUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, plSetPrinter, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
plSetPrinter1: TplSetPrinter;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private 宣言 }
FDefaultFileName : string;
LRepFileName : string;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//=============================================================================
// フォーム作成時の処理
//
// (1)起動時の設定を保存
// (2)前回保存した設定を読出
//=============================================================================
procedure TForm1.FormCreate(Sender: TObject);
begin
FDefaultFileName := plSetPrinter1.Name + 'Default.plv';
LRepFileName := plSetPrinter1.Name + '.plv';
//起動時の値を保存
plSetPrinter1.SaveToFile(FDefaultFileName);
//ファイルが存在する場合には読出し
plSetPrinter1.LoadFromFile(LRepFileName);
end;
//=============================================================================
// BitBtn1クリックでプリンタ設定ダイアログを表示
// 設定した内容をファイルに保存する.
//=============================================================================
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
//[OK]ボタン押下で設定値を保存
if plSetPrinter1.ShowSetupDialog then begin
plSetPrinter1.SaveToFile(LRepFileName);
end;
end;
//=============================================================================
// 起動時の設定に戻す
//=============================================================================
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if plSetPrinter1.LoadFromFile(FDefaultFileName) then begin
ShowMessage('起動時のプロパティに戻しました');
end;
end;
//=============================================================================
// 保存した設定を再度読込む
//=============================================================================
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if plSetPrinter1.LoadFromFile(LRepFileName) then begin
ShowMessage('保存した設定にしました');
end;
end;
end.
コンポーネントをファイルストリームや ini ファイル,または,レジストリに記録する際,実際に保存対象となるのは published で定義した読書き可能なプロパティだけです.
published なプロパティは,オブジェクト・インスペクタで設定可能なプロパティのことです.
したがって,単に [プリンタの設定] ダイアログをコンポーネントとして保存しても,用紙サイズ等の情報を保存することはできません.プリンタ設定コンポーネントでは,内部で,プリンタの設定情報を読書き可能なプロパティとしています.
|
|