Witam korzystam w delphi z komponentu ShellListView, przez który wybieram sobie plik jpeg do wyświetlenia. Klikając 2 razy na ten komponent w polu Use Path wpisałem po prostu nazw folderu bez dysku no "Nowy Folder". W obrębie mojego komputera gdziekolwiek przeniose folder z całym projektem (w którym też znajduje się folder z obrazkami) ShellListView działa poprawnie. A jak przeniosę cały projekt na inny komputer to wywala błąd i muszę zmienić ścieżkę i podać nazwę dysku i całą dokładną ścieżkę. Czy da się jakoś zrobić aby ShellListView czytal z katalogu w którym jest projekt niezależnie na którym komputerze?
- Rejestracja:ponad 13 lat
- Ostatnio:prawie 11 lat
- Postów:41

- Rejestracja:ponad 13 lat
- Ostatnio:około 3 godziny
- Lokalizacja:Tuchów
- Postów:12171
rafal92909 napisał(a)
Klikając 2 razy na ten komponent w polu Use Path wpisałem po prostu nazw folderu bez dysku no "Nowy Folder".
U mnie nie ma możliwości wpisania na sztywno takiej nazwy, bo kompilator generuje błąd:
mimo tego, że projekt jest zapisany na dysku i katalog Nowy folder
istnieje;
rafal92909 napisał(a)
W obrębie mojego komputera gdziekolwiek przeniose folder z całym projektem (w którym też znajduje się folder z obrazkami) ShellListView działa poprawnie. A jak przeniosę cały projekt na inny komputer to wywala błąd i muszę zmienić ścieżkę i podać nazwę dysku i całą dokładną ścieżkę.
Nie mam pojęcia dlaczego tak jest, ale jest gdzieś na pewno taki jeden trybik co nie trybi;
rafal92909 napisał(a)
Czy da się jakoś zrobić aby ShellListView czytal z katalogu w którym jest projekt niezależnie na którym komputerze?
Jest i to wiele sposobów; Można to zrobić z poziomu kodu; Załóżmy, że właściwość komponentu ShellListView.Root
będzie ustawiona na standardową wartość rfDesktop
; Teraz podczas tworzenia formularza wykorzystasz prostą instrukcję, która odczyta nazwę katalogu, w którym znajduje się aplikacja po czym doda do niej nazwę interesującego Cię katalogu w ten sposób:
ShellListView1.Root := ExtractFilePath(Application.ExeName) + 'Nowy folder';
jeżeli nie chcesz mieć łańcucha zakończonego backslesh'em, lub:
ShellListView1.Root := ExtractFilePath(Application.ExeName) + 'Nowy folder\';
jeśli ma być nim zakończony (jak będziesz wolał, tak zrobisz (oba łańcuchy są poprawne));
- ErrStgPth.png (7 KB) - ściągnięć: 136

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.