2011-11-03 6 views
5

In Windows quando uno è in Esplora risorse e fa clic con il pulsante destro su un file o una directory, viene visualizzato un menu di scelta rapida di Windows con tutte le azioni che è possibile eseguire su questo file o directory.Apre la finestra di dialogo di un file, l'azione predefinita ed ecc.

Nel corso della giornata, Brad Stowers ha scritto un'unità ItemProp.pas che ha fatto esattamente la stessa cosa all'interno della propria applicazione Delphi. Questa unità funziona alla grande con Delphi 5, ma per D7 e versioni successive vengono lanciati molti errori.

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

Va bene! Lo ammetto! IO SONO pigro e Googled per un'unità aggiornata e anche uno come questo, ha lavorato per un paio d'ore cercando di rendere questa unità almeno compatibile con D7, ma suppongo che mi manchi qualcosa da qualche parte perché non ho avuto successo in nessuna impresa per quanto riguarda questo .

Quindi ... la mia domanda è, qualcuno ha aggiornato questa unità per D7 e versioni successive OPPURE esiste un'unità o un componente che fa ciò che fa questo codice?

Grazie in anticipo!

John

risposta

5

Ho il sospetto tutto ciò che è necessario è quello di aggiornare le direttive versione del compilatore in DFS.inc

ho aggiunto

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

al file principale (ItemProp.pas), e ha compilato OK su Delphi 2007, ma non ho ancora provato a eseguire il codice.

+0

JEESH! Ho visto qualcosa di simile a questo in uno dei file su google che ho trovato ed è stato "aggiunto per D5" ma il codice presentato ha rimosso la dfs.inc inclusa, {$ I DFS.INC} è stato rimosso e ovviamente non è riuscito a compilare. Avrei dovuto pensare in anticipo, ma sto perdendo le mie capacità di programmazione Delphi. GRAZIE! – John

+0

@John: È bello vedere che hai trovato il segno di spunta e hai accettato la risposta di Gerry. Fa parte di ciò che rende SO lavoro. Ti sei reso conto che oltre ad accettare la risposta puoi anche farla andare avanti? –

+0

Grazie Marjan. Ho provato ieri sera ma ha detto che avevo bisogno di più "punti" o qualcosa del genere. Questo AM mi ha permesso di svenderlo. – John

5

Invece di tradurre questa unità è possibile utilizzare l'JEDI JCL library aggiornato, controllare l'unità JclShell, all'interno di questa unità esiste una funzione denominata DisplayContextMenu che mostra il menu di scelta rapida della shell per un file.

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

Ho cercato anche JEDI pensando di dover avere qualcosa di simile. Con i componenti di un gazillion, mi mancava come al solito. Grazie a tutti! – John

Problemi correlati