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






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



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(TplExcelFormEx2, plExcelFormEx2);
  Application.Run;
end.


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




Excel 2007 のブック


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