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






以下は,現在確認している現象です.他にもあるかも知れませんが,利用された方からの情報があり次第,掲載する予定です.



Vista + Delphi 2007-R2 + Word 2007 の IDE 上での開発


IDE 上で実行すると,ワードの文書が正常に表示できない場合がありましたが,Ver.1.04 で修正しました.その副作用で以下の現象を確認しています.
  • 他のアプリが最前面の時,文書面クリックでワードが最前面にならないことがある.これは,現在のところ Vista 上の Delphi 2007 で開発した場合に発生する.
  • 前のバージョンまではすぐに文書表示となったが,通常のワード同様,まず文書なしのワードの画面が現れ,次に文書が表示されるようになった.
一つ目は,アプリケーションウィンドウ関係の動作と思われますが,掲示板等の質問を読む限り,利用者に修正コーディングを要求するのは無理があると考え,これは仕様とします.




Application.MainFormOnTaskbar の値


Delphi 2007 以降ではプロジェクトファイルに Application.MainFormOnTaskbar というプロパティが追加されています.これはアプリケーションウィンドウの設定ですが,複数のフォームを使用するアプリケーションではこの設定によって,ダイアログやフォームの Z オーダが正しく機能しないことがあるようです.表示したダイアログがメインフォームの背面になったりすることがあります.
この現象は主に Delphi 2007 + Vista で発生するようです.現在のところ,Windows XP ではこの現象の発生を確認していません.
Vista で開発する場合,以下のように,プロジェクトファイルの該当値を状況に応じて True または Fasle にして動作を確認してください.


リスト1
ワード操作フォームEx をメインフォームとして使用する場合は True でいいようだ
begin
  Application.Initialize;
  {$IF CompilerVersion > 18.49}
  Application.MainFormOnTaskbar := True;
  {$IFEND}
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TplWordFormEx2, plWordFormEx2);
  Application.Run;
end.


リスト2
メインフォームからワード操作フォームExを表示する場合は False
begin
  Application.Initialize;
  {$IF CompilerVersion > 18.49}
  Application.MainFormOnTaskbar := False;
  {$IFEND}
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TplWordFormEx2, plWordFormEx2);
  Application.Run;
end.




Word 2007 の文書ファイル


Word 2007 標準の文書ファイル形式と,それまでのワード文書の相互変換機能はありません.
Word 2007 よりも前の文書は,Word 2007 がインストールしてある環境では,互換モードで開くことになります.