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 がインストールしてある環境では、互換モードで開くことになります。 |
|