Есть ли способ отключить подсказку для TOpenDialog в Delphi? - PullRequest
1 голос
/ 25 февраля 2009

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

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

Ответы [ 2 ]

2 голосов
/ 26 февраля 2009

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

[...]

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

uses ActiveX;

initialization
  OleInitialize(nil);

finalization
  OleUninitialize 
end.
1 голос
/ 25 февраля 2009

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

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

...