Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年05月12日] [更新 2010年09月06日] ワード操作フォームEx
ワード操作フォームEx
前作ワード操作フォームとの違い
動作確認等 -







変更内容


基本的な仕様を変更したため、バージョンアップではなく、フォームのクラス名の後に Ex を付けて新作としました。移行への参考にしてください。
  • TWebBrowser の使用をやめた
    IE のバージョンの違いによる動作仕様の違いがあるため、TWebBrowser 上に表示する方式を中止しました。特に IE 7 では、ブラウザとエクスプローラの機能が分離したため、TWebBrowser 上には表示できません。レジストリを設定すれば可能となりますが、他のアプリケーションにも影響を及ぼす可能性があります。また、レジストリの操作には管理者権限が必要となるため、クライアント端末への導入が困難となります。
    そこで、新しいワード操作フォームでは、Form 上に配置した PanelLeft (TPanel) 上に表示するように変更しました。

    Windows Internet Explorer 7 で 2007 Microsoft Office プログラムのドキュメントを表示すると新しいウィンドウが開く

  • Ini ファイルと拙作コンポーネントの使用を中止
    拙作コンポーネントと Ini ファイルの操作コードが含まれていましたが、これらの「余計なお世話」を中止しました。したがって、これらに関係するプロパティ等もなくなりました。
    必要に応じて、他のコンポーネント類をご利用ください。

  • 全てのプロパティとメソッド類に wdf をつけた
    ワード操作フォームExのプロパティとメソッドあることを明確にするために、先頭 (プリフィックス) に wdf をつけました。また、前作と同じ機能のプロパティとメソッドで名前が一部変更となっているものがあります。

  • テストプログラムを整備してEXEを添付
    テストプログラムの全てに実行ファイル (EXE) を添付し、導入前に検討または、動作が確認できるようにしました。

  • 添付の DLL が実行環境にも必要 (Ver.9.10 で不要にした)




TWordApplication と CreateOleObject と DLL


このワード操作フォームEx は Delphi の TWordApplication を使用しています。これには理由があります。Delphi のコンポーネントは複数のインスタンスを作成することができます。例えばボタン、これは TButton ですが、フォームにいくつでも配置できます。TWordApplication も同じです。一方CreateOleObject で生成したインスタンスはシステム上に 1 つしか存在できません。[タイプライブラリの取り込み] でコンポーネントラッパーを作成するにはこの意味もあります。

DLL を使用するバージョンにした際、作者のコーディングのミスでこの利点がなくなってしまいました。いつか修正しようと考えていたのですが (たいした修正ではないのですが)、2010年7月9日に拙作「テンキーロック」の質問が掲示板に質問があり、確認したところ、改めて Vista 以降でのグローバルフックの動作仕様を確認しました。そこで、サンプルプログラム集のいくつかのコードの確認と見直しをすると同時に、この機会にワード操作フォームEx を DLL を使用しないコードに変更することにしました。