Эта проблема возникает только для приложений, которые ранее были разработаны под Delphi 7 и перенесены в Delphi 2007, запущенных на WinXP.Topendialog, не отображающий расширения файлов
Я пробовал целую вечность, чтобы решить эту проблему без везения.
Насколько мне известно, Topendialog - это оболочка диалогового окна Win32, и он должен наследовать параметры папки Windows, которые в моем случае установлены для отображения расширений файлов всех файлов.
Теперь, если я создаю новое приложение и бросаю на него Topendialog, то при его запуске он отображает расширения файлов, как ожидалось.
Если я опустил тот же диалог в существующее приложение и запустил его, он не будет показывать расширения файлов.
Если факт, если я напишу строку имени файла в свойстве имени файла перед вызовом диалога a la 'Myfile.txt', когда отображается диалоговое окно, имя файла отображается как «Myfile», расширение не отображается, и ни один из них не отображается делать любые файлы в списке.
Есть ли у кого-нибудь еще такое поведение?
У кого-нибудь есть обходные пути?
Редактировать: Изображения, загруженные в список различий между Topendialog на новый проект и существующий проект.
Я не уверен, что это может быть связано, но ... «D7, перенесенный на D2007», может намекнуть на разницу в отношении тем Windows. У вас есть манифест в вашем приложении (через XPMan или «Включить темы времени исполнения» в параметрах проекта)? –
Что произойдет, если вы сбросите 'TOpenDialog' на вновь созданной форме в вашем существующем приложении? Что произойдет, если вы создадите объект «TOpenDialog» во время выполнения? – splash
@ Andy k: Было бы полезно, если бы вы разместили скриншоты, иллюстрирующие проблему. (Открытые диалоги могут выглядеть несколько иначе, в зависимости от множества факторов. Это может помочь определить проблему, которая, честно говоря, звучит очень странно для меня ...) –