Стандартный диалог не всплывает

У меня есть форма с TSaveDialog. При вызове функции Execute она не появляется при запуске из IDE. Это всплывающее окно при запуске в автономном режиме. Протестировав его, я обнаружил, что все диалоги TSave/TOpen не работают. Не работает означает, что выполнение возвращает False без всплывающего окна (см. обновленный пример кода: всегда выскакивает сообщение "False" без предшествующего диалога). Другие диалоги (шрифт / цвет / и т. Д.) Работают.

procedure TForm1.Button1Click(Sender: TObject);
begin
   if OpenPictureDialog1.Execute
      then ShowMessage ('True')
      else ShowMessage ('False');
end;

При запуске без отладки диалоговое окно не появляется. Также не имеет значения, выбрана ли версия Release или Debug.

Видимо IDE делает что-то странное. В форме есть два компонента TSaveDialog, и оба отображают одинаковое поведение.

Есть идеи, что не так?

Обновление 1 с использованием Delphi XE в Windows 7. Другие проекты, использующие TSaveDialogs, работают нормально.

Обновление 2 Обнаружено, что оригинальный вопрос о TSaveDialog применяется ко всем диалогам TSave/TOpen. Вопрос был отредактирован, чтобы включить это знание.

Обновление 3 Я нашел эту ссылку аналогичной ошибки. Однако я проверил реестр, но не смог найти исполняемый файл, как уже упоминалось. И совет по изменению совместимости с XP не относится к imho, потому что TSaveDialog отлично работает вне IDE.

1 ответ

Если вы используете XE2, вам следует убедиться, что у вас нет записей в "Переопределениях пользователей" блока "Параметры проекта". "Включить системные переменные" не работает, и без него в блоке среды находятся только переопределенные пользователем переменные среды, при которых запускается EXE-файл, но для диалога открытия / сохранения требуются некоторые системные переменные, такие как "SystemDrive" и "SystemRoot".

В качестве альтернативы вы можете установить пакет исправлений IDE, который исправляет параметр "Включить системные переменные".

Другие вопросы по тегам