Delphi 2007でのVistaサポート
Delphi 2007には、Windows Vistaをサポートする機能が搭載されています。VCLがVistaの新機能をカプセル化しています。
Vistaで追加された新しいダイアログボックス(タスクダイアログ、ファイルダイアログ)を表示するコンポーネントが搭載されています。
- TTaskDialog
- TFileOpenDialog
- TFileSaveDialog
また、フォーム(ウィンドウ)にグラス効果を設定するために、GlassFrameプロパティが追加されているほか、従来のOSとの互換性の中で、Vistaで新機能を使うための機能が用意されています。
TaskMessageDlgは、Windows XPなどの従来のOSでは、MessageDlgという従来のメッセージウィンドウを、Vistaでは、新しいTaskDialogをメッセージ表示用に使用します。この機能を使えば、OSごとにコードを書き換える必要なく、最新のUI機能を利用できます。
また、UseLatestCommonDialogsというグローバル変数が用意されており、以下のダイアログを使用する際に、Windows Vistaで動作している場合、最新のVistaダイアログを表示するようになります。
- TOpenDialog
- TSaveDialog
- TOpenPictureDialog
- TSavePictureDialog
- MessageDlg
このグローバル変数のデフォルトはFalseです。Trueに設定すると動作が有効になります。
一方、Vista固有の機能を使用している場合、Vista以外のOSで実行した場合には例外が発生するようにできます。EPlatformVersionExceptionはこのための例外で、TTaskDialog、TFileOpenDialog、TFileSaveDialogをVista以外のOSで使用すると発生します。
DelphiでのVistaサポートの手順
既存のDelphiアプリケーションをWindows Vistaに対応させるには、次のような手順を踏みます。
- アプリケーションをテストし、問題を確認する
- アプリケーションを標準ユーザー/管理者/その複合形態で検証する
- アプリケーションマニフェストを追加する
- 必要に応じて機能/ユーザーインターフェースを再設計する
- 再びテスト
- 必要に応じてアプリケーションに署名する
Windows Vistaではアプリケーションにとって大変重要な箇所の仕様変更がなされているために、大掛かりな書き換えが必要なケースがあります。しかし、DelphiではVCLコンポーネントによってVistaとVista以前のOSでの互換性を保つことができるので、セキュリティなどの重要な変更箇所に集中することができます。
- ビデオ - Delphi 2007 for Win32によるWindows Vista対応
- 第4回デベロッパーキャンプ - 資料ダウンロード