2011-11-03 12 views
5

W systemie Windows, gdy użytkownik znajduje się w Eksploratorze Windows i kliknie prawym przyciskiem myszy plik lub katalog, pojawi się menu kontekstowe Windows z wszystkimi działaniami, które można wykonać w odniesieniu do tego pliku lub katalogu.Otwórz okno dialogowe kontekstu pliku, domyślną akcję i tak dalej.

Dawno temu Brad Stowers napisał jednostkę ItemProp.pas, która zrobiła dokładnie to samo we własnej aplikacji Delphi. Ta jednostka działa świetnie za pośrednictwem Delphi 5, ale w przypadku D7 i powyżej generowanych jest wiele błędów.

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

Ok! Przyznaję! JESTEM leniwy i przeszedłem przez Google na zaktualizowaną jednostkę, a nawet taką jak ta, pracowałem przez kilka godzin starając się, aby ta jednostka była kompatybilna przynajmniej z D7, ale myślę, że gdzieś czegoś brakuje, ponieważ nie osiągnąłem sukcesu w żadnym przedsięwzięciu dotyczącym tego .

Więc ... moje pytanie brzmi, czy ktoś zaktualizował to urządzenie dla D7 i wyżej, czy istnieje jednostka lub komponent, który robi to, co robi ten kod?

Z góry dziękuję!

John

Odpowiedz

5

podejrzewam wszystko, co potrzebne jest do aktualizacji wersji kompilatora dyrektyw w DFS.inc

dodałem

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

do głównego pliku (ItemProp.pas), a skompilował OK na Delphi 2007, ale jeszcze nie próbowałem uruchomić kodu.

+0

JEESH! Widziałem coś podobnego w jednym z tych plików, które znalazłem i które zostały "dodane dla D5", ale przedstawiony kod usunął dołączony plik dfs.inc, plik $ I DFS.INC} został usunięty i oczywiście nie udało mu się skompilować. Powinienem był pomyśleć z wyprzedzeniem, ale tracę umiejętności programowania Delphi. DZIĘKUJĘ CI! – John

+0

@John: Dobrze, że znalazłeś znacznik wyboru i przyjąłeś odpowiedź Gerry'ego. Jest to część tego, co sprawia, że ​​SO działa. Czy zdawałeś sobie sprawę, że oprócz przyjęcia odpowiedzi możesz ją również przegłosować? –

+0

Dzięki Marjan. Próbowałem wczoraj wieczorem, ale powiedziałem, że potrzebuję więcej "punktów" lub czegoś. Ta AM pozwoliła mi ją przegłosować. – John

5

Zamiast tłumaczyć tego urządzenia można użyć zaktualizowany JEDI JCL library sprawdzić jednostkę JclShell, wewnątrz tej jednostki istnieją funkcję o nazwie DisplayContextMenu whcih pokazuje menu kontekstowego powłoki dla pliku.

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

Szukałem też JEDI, myśląc, że musieli mieć coś takiego. Z gazillion komponentów, jak zwykle tęskniłem za tym. Dziękuję wszystkim! – John

Powiązane problemy