Vistaでエンコーディングコンボボックスを開くダイアログファイル
-
21-08-2019 - |
質問
これはエンコーディングオプションを持っていると私は現在TOpenTextFileDialogを使用しますが、Vistaで、それは古いオープンダイアログのスタイルを使用して表示されます。私は新しいスタイルのオープンダイアログが好き、私はカスタム文字列を入力することができエンコーディングコンボボックスと思います。基本的に私は、メモ帳はVistaで示し正確なオープンダイアログをしたいです。もちろん、私も同様に保存ダイアログ対応する必要があります。
私はいくつかの研究を行ってきた、OFN_ENABLETEMPLATEフラグが戻って古いスタイルにフォールVistaのコモンダイアログを起こしているようです。残念ながら、それはまた、(私が正しく物事を理解している場合。)TOpenTextFileDialogは、エンコーディングのコンボボックスを追加するためのウィンドウを修正する
することができますフラグです誰もが私はVistaで欲しいものを取得する方法についての提案を持っていますが、まだそれはXPの下で働くのか?私は、Windows 7は、同じ問題を持っていることを前提としています。私はD2009を使用しています。任意の提案をありがとうか助けて!
解決
、詳細についてはIFileDialog
インタフェースのためのGoogleや<のhref = "http://akirabbq.wordpress.com/2009/02/06を見てみましょう/混乱-と-展望 - 共通ファイル・ダイアログ/」のrel = "nofollowをnoreferrer">このブログ記事で。あなた自身を言うように、OFN_ENABLETEMPLATE
フラグを使用すると、古いスタイルにフォールバックするためにVistaのコモンダイアログを引き起こします。
のDelphi 2007と2009を使用すると、のVistaのダイアログのコンポーネントカテゴリにTFileOpenDialog
とTFileSaveDialog
を使用することができます。 Vista以前のWindowsバージョンを使用してアプリケーション互換性を持たせるために、あなたはそれらのためTOpenTextFileDialog
を使用し続けると、あなたはVista上で、新しいダイアログを使用できるかどうかを実行時に確認する必要があります:
if Win32MajorVersion >= 6 then begin
// use TFileOpenDialog
// ...
end else begin
// use TOpenTextFileDialog
// ...
end;
これであなただけのVistaのダイアログにカスタマイズを追加する必要があります。 ブログ記事には方法を示しています(このためには、OnExecute
インタフェースがすでに設定されていると呼ばれた時点で)、ダイアログのIFileDialog
のハンドラを追加しDialog
インタフェースのためのファイルダイアログのIFileDialogCustomize
メンバーを照会し、追加するには、これを使用することにより、これを行うには追加のコントロールます。