[Delphi] Menadzer Plikow

0

Witam,
Jako zadanie zaliczeniowe z programowania muszę wykonać Menadżer Pliko w Delphi. Program ma być wykonany mniej więcej na wzór popularnego Total Commandera, czyli zawierać takie opcje jak kopiuj, wytnij, otwórz, przenieś, zmiana atrybutów plików/katalogów itp. itd. Swój projekt oparłem o komponent ListView. Mam problem jednak z wykonaniem podstawowych funkcji - kopiuj, wklej itd. Program niby wykonuje te polecenia, jednak po odświeżeniu lokalizacji okazuje się, że położenie pliku zupełnie się nie zmieniło.

Zamieszcze link do programu, ponieważ wklejony kod byłby bardzo długi i moim zdaniem mało przejrzysty.

Link do programu: http://www.sendspace.com/file/b60504

Z góry dziękuje za pomoc!

0

Przydługiego kodu nie chce mi się pobierać i analizowac, odpowiem to co do tej pory
wszystkim ktorzy pisali tutaj, że muszą napisać coś na wzór totalCommandera, więc
najlepiej pobierz sobie źródło z poniższej strony i przeanalizuj w jaki sposób jest tam
wykonane kopiowanie, przenoszenie i usuwanie plików. Resztę funkcjonalności dorób,
bo wiadomo że i tak samodzielnie w krótkim czasie drugiego TC raczej nie stworzysz.
http://download.4programmers.net/Ekspertcmd.zip

0

olesio nie wiem czy dobrze przejrzałeś program, który jak sam napisałeś wszystkim podajesz jako wzór, ale wydaje mi się, że nie. Nie ma tam procedury na żadną z operacji - kopiuj, otworz itd. itp. Sam znalazłem go już wcześniej i się na nim wzorowałem, ale nie wiem jak wykonać w/w operacje, a w internecie nie potrafie znaleźć pomocy, dlatego szukam jej na tym forum. Jak widać bezskutecznie.

0

No ja pomagam tak jak potrafię, kopiowanie plików na pewno jest, a nie wiem
co masz na myśli przez otwieranie, możesz do otwieranie używać ShellExecute.

0

Ty pokaż po prostu kod odpowiedialny za kopiowanie

0

Procedury za kopiowanie, przenoszenie, usuwanie oraz otwieranie zaznaczonego w listview pliku wygladają tak:

ListViewLeft.CopySelection(ListViewRight);

ListViewLeft.MoveSelection(ListViewRight);

ListviewLeft.DeleteSelected;

ShellExecute(Handle,'open',PChar(ListViewLeft.Selected),nil,nil,SW_SHOWMAXIMIZED);

Dałby ktoś rade to poprawić ? Sam nie moge dać sobie z tym poradzic. Byłbym wdzieczny gdyby ktoś napisał mi gotową chociaz jedna operacje dla wzoru.

0

Uparciuszek z Ciebie. Przykładowy kod tworzenia listy plików oraz katalogów, a nastepnie ich kopiowanie
masz podany w źródłach tego ExkpertCommandera, co podałem. A ten kod co wkleileś, to niby gdzie tu
według Ciebie jest kopiowany plik? Ja widzę tylko kopiowanie zaznaczonych elementów i na końcu, masz
bezsensowanie wywołany ShellExecute, bo jak już masz nazwę pliku z rozszerzeniem w kolumnie numer
jeden (czyli o indeksie zero - Caption) to powinno być raczej tak ListView.Selected.Caption; Gotowca, a
przynajmniej ode mnie nie dostaniesz, bo doradziłem już Tobie co masz zrobić. Przeanalizuj sobie kod w
EkspertCommanderze dla przycisku bKopiuj, ja tego TotalCommandera sobie nieco zmodyfikowałem, a
więc u mnie kod jest inny, ale wystarczy przeanalizować to, co masz w oryginalnym źrodle - a później,
o ile nazw modułów nie zmieniłeś to w ważna jest procedura kopiujPliki w module operacje, a ta zaś z
tego co widzę odwołuje się do procedury kopiuj w tym samym module. Przeanalizować, pozmieniać w
taki sposób aby działało na Twoim programie lub dostosować swój program tak aby pokazywał w tych
ListView dane tak jak EkspertCommander i dopasować wszystko aby działało. Masz gotowe przykłady
dzieki analizie kodu EkspertCommandera, a jak nie dajesz sobie rady i potrzebujesz gotowca, wtedy
wybacz, na mnie nie licz, za dużo już gotowców za ludzi się napisało tutaj na forum. Zawsze możesz
w dziale Offtopic - Praca, zlecić komuś napisanie - oczywiście odpłatnie - takiego programu albo też
ewentualnie zmiane Twojego kodu, chociaż z tego co pokazałeś powyżej wnioskuję, że za dużo to u
siebie konkretnie napisanego nie masz, bo Twój kod, a przynajmniej to co pokazałeś, nie tworzy w
ogóle listy plików oraz katalogów i ich nie kopiuje - tylko operuje coś na samych ListView, no i tyle.

0

Możesz zamieścić jeszcze raz kod, bo ten co zamieściłeś na sendspace nie da się juz pobrac.

1 użytkowników online, w tym zalogowanych: 0, gości: 1