2

Encodings オプションがあるため、現在は TOpenTextFileDialog を使用していますが、Vista では古いオープン ダイアログ スタイルを使用して表示されます。新しいスタイルのオープン ダイアログが欲しいのですが、カスタム文字列を入力できるエンコーディング コンボボックスが必要です。基本的に、メモ帳が Vista で表示する正確な開いているダイアログが必要です。もちろん、対応する保存ダイアログも必要です。

調査を行ったところ、OFN_ENABLETEMPLATE フラグにより​​、Vista の共通ダイアログが古いスタイルに戻るようです。残念ながら、これは TOpenTextFileDialog がウィンドウを変更してエンコーディング コンボボックスを追加できるようにするフラグでもあります (私が正しく理解している場合)。

Vista で必要なものを取得する方法について誰か提案がありますが、XP でも動作しますか? Windows 7 でも同じ問題が発生すると思います。D2009を使用しています。提案や助けをありがとう!

4

1 に答える 1

4

Vista では、ファイル ダイアログを処理する新しい方法が導入されました。詳細については、IFileDialogインターフェイスをグーグルで検索するか、このブログ投稿を参照してください。ご自身でおっしゃる通り、OFN_ENABLETEMPLATEフラグを使用すると、Vista の共通ダイアログが古いスタイルに戻ります。

Delphi 2007 および 2009では、Vista ダイアログコンポーネント カテゴリでTFileOpenDialogおよびを使用できます。アプリケーションを Vista より前の Windows バージョンと互換性を持たせるには、それらの を引き続き使用し、実行時に Vista 上で新しいダイアログを使用できるかどうかを確認する必要があります。TFileSaveDialogTOpenTextFileDialog

if Win32MajorVersion >= 6 then begin
  // use TFileOpenDialog
  // ...
end else begin
  // use TOpenTextFileDialog
  // ...
end;

これで、Vista ダイアログにカスタマイズを追加するだけで済みます。ブログの投稿では、ダイアログのハンドラーを追加してOnExecute(これが呼び出された時点でIFileDialogインターフェイスが既に設定されているため)、インターフェイスDialogのファイル ダイアログのメンバーをクエリし、IFileDialogCustomizeこれを使用してこれを行う方法を示しています。追加のコントロールを追加します。

于 2009-07-03T07:23:42.957 に答える