Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
プリンタ設定コンポーネント
プリンタ設定コンポーネント
履  歴



履歴


  • 1999年04月25日 Ver 1.0
  • ともかく動作し、著者が日常使用する範囲では利用可能なものが完成したので公開。
  • 1999年08月30日 Ver. 2.1
  • ドライバのバージョンが違うと、プロパティの一部を反映しないプリンタがあった。そこでドライババージョンの比較結果を返す論理型プロパティを追加した。
  • そのため、プロパティの保存と読出しの方式を変更した。またプロパティの設定のコードを変更した。
  • 上記に伴い、ドライバのバージョン番号取得のプロパティを追加した。
  • 設計時のプリンタの有無を返す論理型プロパティを追加した。
  • 設計時の動作が速くなるように、少しコードを書き直した。
  • コンポーネントのアイコンを変更した。
  • 設定の待ち時間のカーソルを砂時計にした。
  • マウスの右ボタンクリックのメニューからプロパティ設定ダイアログを開くようにした。
  • テストプログラムの内容を一部変更した。
  • 2000年09月24日 Ver. 3.0
  • Delphi 5 における「ファイルがみつかりません:'Dsgnintf'」のエラー対処。プロパティエデタ関係を別ファイルにした。
  • メソッ ドGetPrinterInfo を公開メソッドとして、現在のプリンタ情報を取得能にした。
  • Windows 2000 では、取得したプリンタ名にポート名が付かない。これに対応しコードに修正た。
  • ドライババージョンと設計時プリンタの有無のプロパティを廃止した。これは開発環境と実行環境が異なる OS の場合には意味がないことが判明(気が付いた)。
  • テストプログラムを見直し、名称も変更した。また、実行時のプロパティの保存と読出し方法を紹介すテストプログラムを追加した。
  • 2001年10月12日 Ver. 4.0
  • Delphi 6 で、DEVMODE の保存読出しの際誤動作が発生したため、String 型に変換して保存と読出しを行う式更た。これで Delphi 6 対応となった。
  • 上記の変更で、設計時のプリンタ選択動作が速くなった(最初からこの方法にべきだったか)。
  • 内部でのプリンタ名の比較を、ポート名を除いた名称で行うようにした。
  • テストプログラムを追加した。
  • このオンラインヘルプの構成を修正した。少しは見やすくなったかも知れない。
  • 2002年03月06日 Ver. 4.1
  • 実行時にユーザ定義用紙を作成し、設定するメソッドと、それを削除するメッドを追加。
  • 上記メソッドのテストプログラムを追加。
  • 2002年03月08日 Ver. 4.2
  • ユーザ定義用紙の作成に成功した場合でも False を返すことがあるのを修正。
  • 2002年03月09日 Ver. 4.3 日替わりバージョン第3弾
  • 設計時のプロパティのいくつかを取得可能にした。
  • Windows NT, 2000 におけるユーザ定義用紙の設定コードを一部変更。
  • 2002年10月10日 Ver. 4.4
  • Delphi 7で 動作確認を行い、unsafe の警告表示が現れないように修正した。
    unsafe (安全でない...) の意味は Delphi 7 のインストール先の Reademe.txt を参照。
  • Windows XP での動作を確認し、テストプログラムをXPテーマ対応にし、参考用に manifestrc ファイルを添付
  • 開発環境テストは Windows 2000 と XP のみとした。
  • 2003年03月12日 Ver. 4.5
  • コンパイルオプションの間違いを修正。
  • 2003年04月05日 Ver. 4.6
  • プリンタ名一覧のテストプログラムを変更。
  • manifest,rc ファイルの添付を中止。
  • 2003年04月26日 Ver. 4.7
  • プリンタ(ドライバ)がインストールされていない時は何もしないようにした。
  • 設計時と実行時のプリンタ名比較コードを修正。
  • プリンタ番号取得のコードを修正。
  • 設計時と実行時のプリンタ名プロパティの設定コードを修正。
  • 2003年04月27日 Ver. 4.8
  • プリンタの DevMode 構造体の読出しコードを修正。
  • プリンタ名の取得をポート名なしとした。
  • Acrobat 関係のプリンタ名を判別するコードを変更。
  • 開発環境によっては [範囲エラー] 表示が現れる場合があるのを修正。
  • 2003年06月07日 Ver. 4.9
  • コンポーネントのプロパティ読出し時にアクセス違反が発生する場合があるを修正。
  • 2004年02月14日 Ver. 5.0
  • プリンタ名のリストを取得するプロパティ追加。
  • 用紙サイズ名のリストを取得するプロパティ追加。
  • ビン名称のリストを取得するプロパティ追加。
  • 用紙サイズ設定メソッド追加。
  • ビン名称設定メソッド追加。
  • 印刷の向きを設定するメソッド追加。
  • 上記のテストプログラムを追加 (または修正)。
  • プリンタの設定ダイアログを操作するサンプルプログラムを追加。
  • 2004年05月02日 Ver. 5.1
  • [アクセス違反] [読込み違反] の発生現象を修正 (したつもり)。
  • 用紙の向きをサポートしていないプリンタで同上の現象が発生するのを修正。
  • 2004年05月09日 Ver. 5.2
  • メモリリークが発生していたのを修正。
  • 2004年05月28日 Ver. 5.3
  • プリンタがインストールされていない環境で実行した時の動作を修正。
  • プリンタの設定と取得のコードを一部修正。
  • プリンタ名取得のプロパティエディタを修正。
  • PrintersCount (インストールされているプリンタ数) プロパティを追加。
  • OnDialogClose と OnPrinterChange イベントの追加。
  • テストプログラムの見直し。
  • 2004年08月19日 Ver. 6.0
  • 確実な動作と安定化のためにコードを全面的に修正した。
  • ほとんどのプロパティを読書き両用とした。
  • 設定内容が [プリンタの設定] ダイアログの表示に反映されない場合があるのを修正。
  • ShowDialog を論理値を返す関数にした。
  • テストプログラムの修正。
  • 2004年08月21日 Ver. 6.01
  • 多くのプリンタドライバで、ユーザ定義用紙の作成設定後、[プリンタの設定] ダイアログのサイズ欄に反映されない現象を修正 (Windows NT, 2000, XP)。
  • 上記の修正を確認するためにテストプログラムを修正。
  • 2004年08月22日 Ver. 6.02
  • [プリンタの設定] ダイアログを表示するメソッド ShowSetupDialog を追加。
  • コンポーネントの読書き用のメソッドを追加。
  • 上記のメソッドのテストのためにテストプログラム PrinterSetupDlg を修正。
  • 2004年11月16日 Ver. 6.03
  • 設計時のプリンタがない場合、あるいはストリームからプリンタの設定内容の読込みに失敗した時に、デフォルトのプリンタに設定するコードを修正。
  • 2004年11月20日 Ver. 6.04
  • 現在の設定内容がプロパティの設定ダイアログを表示した時に反映されない現象を修正 (Ver 6.0 に UP した時にテストで外していたコードを忘れていた!!)。
  • 個別のプロパティ設定後、他のプロパティが変更されてしまう現象を修正 (複数のプリンタ設定コンポーネントを使用している場合)。
  • 2004年12月30日 Ver. 6.05
  • Delphi 2005 (Win32) 対応。
  • プロパティのダイアログ表示コードを一部修正。
  • 2005年01月29日 Ver. 6.06
  • [範囲チェック] のプロジェクトで発生するエラー対処。
    コンパイルオプションの付け忘れでした (陳謝)。
  • 2006年10月20日 Ver. 7.00
  • プロパティ設定等で共通に使用していたメソッドのコードを整理して機能ごとのメソッドに分散させた。
  • プリンタ名とプリンタ番号の書込みと読出しコードを修正。
  • プロパティの書込み読出しと再現コードの修正。
  • ユーザ定義用紙関係コードの修正。
  • コンポーネント保存のコードを修正。
  • ユーザ定義用紙名が正しく取得できない場合があったのを修正。
  • GetPrinterInfo のコードの修正。
  • 外部コードによる設定の場合でも、同じプリンタを別々の設定内容で保持できるようにした (用紙サイズ関係の寸法取得などを除く)。
  • [プリンタの設定] ダイアログの設定失敗時は強制的に再設定するようにした。
  • Win 95, Win NT4 でのテストプログラムの動作確認は省略した。
  • 2008年07月15日 Ver. 7.01
  • Windowx XP (SP2) + Delphi 7 Pro で動作再確認とコードの整備のみ。
  • テストプログラムのEXEファイルを同梱。
  • Vista や Delphi 2007 での動作確認は、コンポ類の整備後の予定。
  • 2009年03月03日 Ver. 7.02
  • いくつかの関数の戻り値が設定していなかったのを修正
  • Windows Vista + Delphi 2007-R2 で動作確認
  • テストプログラムの一部を修正
  • 2009年03月18日 
  • [その他・履歴] に掲載していた[プリンタ情報の保存と読出し]をサンプルプログラム集に移動
  • 2009年10月13日 Ver. 7.04
  • 異なるプリンタを設定した場合に、前のプリンタの用紙向き、用紙サイズ、ビン番号の設定がより反映するようにした。
  • 内部でのプリンタの判定をプリンタ番号ではなくプリンタ名で行うようにした。
    (プリンタ番号だとプリンタを削除した場合に変わってしまう可能性があるため)
  • ビン装置名の設定で例外が発生する現象を修正。
  • テストプログラムの Others をサンプルプログラム集に移動。
  • Windows 9X 関係のコードを削除。
  • 2009年10月28日 Ver. 9.00
  • 初めての Delphi 2009, 2010 (Unicode) 対応版
  • 2009年10月30日 Ver. 9.01
  • コードとコメントを少し整備。この作業の結果、Delphi 2007 以前では利用不可となった。
  • 2009年11月04日 Ver. 9.02
  • Delphi 5-Delphi 2010 まで使用可能なコードに修正
  • オブジェクトインスペクタのダブルクリックでプロパティの設定を可能にした。
  • 2011年04月21日
  • Delphi XE で動作確認
  • 2011年09月26日 Ver. 9.03
  • GetPrinterList 関数内の Sort メソッドの実行位置が不正だったのを修正
  • Delphi XE2 で動作確認