2011-11-03 109 views
5

在Windows中,當Windows在Windows資源管理器中並右鍵單擊某個文件或目錄時,會出現一個Windows上下文菜單,其中包含有關該文件或目錄的所有操作。打開文件的上下文對話框,默認操作等

回到當天,Brad Stowers編寫了一個ItemProp.pas單元,它在自己的Delphi應用程序中完成了同樣的事情。這個單元在Delphi 5中運行良好,但是對於D7和更高版本,會引發很多錯誤。

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

好吧!我承認!我很懶,爲了更新的單位,甚至像這樣的一個Google已經工作了幾個小時,試圖使這個單位至少D7兼容,但我想我失去了某個地方,因爲我沒有成功地在這方面的任何努力。

所以......我的問題是,有沒有人更新過這個單位的D7和以上或做一個單位或組件存在,做這個代碼呢?

在此先感謝!

約翰

回答

5

我懷疑一切需要的是DFS.inc

我加

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

到主文件(ItemProp.pas)更新版本的編譯器指令,並它在Delphi 2007上編譯好,但我還沒有嘗試過運行代碼。

+0

JEESH!我在其中一個搜索到的文件中看到類似的東西,它是「爲D5添加的」,但提供的代碼中已刪除了包含的dfs.inc,{$ I DFS.INC}已被刪除,當然它未能編譯。我應該想到,但我正在失去我的Delphi編程技能。謝謝! – John

+0

@John:很高興看到您找到了複選標記並接受了Gerry的回答。這是SO工作的一部分。你是否意識到,除了接受答案之外,你也可以贊成它? –

+0

謝謝Marjan。我昨晚試了一下,但它說我需要更多'積分'或其他東西。這個AM讓我可以加入它。 – John

5

而不是翻譯這個單位,你可以使用更新的JEDI JCL library,檢查JclShell單位,在本單位內存在一個函數DisplayContextMenu whcih顯示文件的外殼上下文菜單。

function DisplayContextMenu(const Handle: HWND; const FileName: string; 
    Pos: TPoint): Boolean; 
+0

我搜查了JEDI也發現他們必須有這樣的東西。隨着gazillion組件,我像往常一樣錯過了。感謝大家! – John