Есть ли способ отключить подсказку для TOpenDialog в Delphi?

У меня есть TOpenDialog компонент, который я создаю во время выполнения, и я хочу отключить подсказку, которая всплывает над файлами при его использовании. Я не написал никакого кода для этого, кроме создания объекта, выполнения объекта и извлечения имени файла, а затем освобождения экземпляра.

Могу ли я делать то, что хочу? Если да, то как мне это сделать?

2 ответа

Решение

Я погуглил "подсказка при срыве opendialog", и первый удар дал мне это. Решение их проблемы (и, вероятно, вашей) заключается в следующем:

[...]

Вам нужно только добавить эту модификацию в первую форму вашего заявления:

uses ActiveX;

initialization
  OleInitialize(nil);

finalization
  OleUninitialize 
end.

Так как это обычный диалог Windows, вам, возможно, придется подключиться к диалоговому процессу и подключиться к нему вручную, чтобы попытаться обработать сообщения всплывающей подсказки. Вы можете посмотреть здесь, как настроить общие диалоги; http://msdn.microsoft.com/en-us/library/ms646951.aspx. Вы также можете посмотреть на создание собственного потомка TOpenDialog и переопределить защищенный метод WndProc, чтобы получить доступ к диалоговым сообщениям и уведомлениям. Я подозреваю, что вам также нужно сделать несколько более глубокий перехват и начать заниматься оболочкой проводника. Список файлов в этом диалоговом окне фактически является экземпляром частей оболочки Windows Explorer.

Другой вопрос: чего вы пытаетесь добиться, скрывая эту информацию от пользователя? Может быть, есть какое-то другое решение для того, что вы пытаетесь сделать, вместо того, чтобы отключить некоторые встроенные функции?

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