Откройте контекстное диалоговое окно файла, действие по умолчанию и т. Д. - PullRequest
5 голосов
/ 03 ноября 2011

В Windows, когда пользователь находится в проводнике Windows и щелкает правой кнопкой мыши файл или каталог, появляется контекстное меню Windows со всеми действиями, которые можно выполнить с этим файлом или каталогом.

В свое время Брэд Стоуерс написал блок ItemProp.pas, который делал то же самое в своем собственном приложении Delphi. Это устройство прекрасно работает через Delphi 5, но для D7 и выше выдается много ошибок.

http://www.koders.com/delphi/fid7ABE724EBD5F2123FF824AFD45151D2A087C5E6C.aspx?s=network

Хорошо! Я признаю это! Я ленив и у меня есть Googled для обновленного устройства, и даже такого, как этот, я потратил пару часов, пытаясь сделать это устройство, по крайней мере, совместимым с D7, но я предполагаю, что где-то что-то упустил, так как я не добился успеха в этом деле .

Итак ... мой вопрос: кто-нибудь обновил этот модуль для D7 и выше ИЛИ существует ли модуль или компонент, который делает то, что делает этот код?

Заранее спасибо!

John

Ответы [ 2 ]

5 голосов
/ 03 ноября 2011

Вместо перевода этого модуля вы можете использовать обновленную библиотеку JEDI JCL , проверить модуль JclShell , внутри этого модуля есть функция с именем DisplayContextMenu, которая показывает контекст оболочки меню для файла.

function DisplayContextMenu(const Handle: HWND; const FileName: string;
  Pos: TPoint): Boolean;
5 голосов
/ 03 ноября 2011

Я подозреваю, что все, что нужно, это обновить директивы версии компилятора в DFS.inc

Я добавил

{$DEFINE DFS_DELPHI}
{$DEFINE DFS_COMPILER_4_UP}
{$DEFINE DFS_NO_COM_CLEANUP}
{$DEFINE DFS_COMPILER_3_UP}

к основному файлу (ItemProp.pas), и он скомпилирован нормально в Delphi 2007, но я еще не пробовал запускать код.

...