|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Аналог* проводника windows
Задача: есть массив PathDir с адресами директорий. Нужен аналог проводника windows, который отображает одновременно содержимое всех директорий и позволяет манипулировать их содержимым аналогично проводнику в windows. Для избежания неприятностей в случае, когда в двух разных директориях расположены файлы или директории с одинаковыми названиями, можно к каждому названию добавить префикс, например, порядковый номер в массиве PathDir.
Например: есть директория "c:\DirA" с вложенной директорией "DirA1" и файлом "A.txt", а так же директория "c:\DirB" с вложенной директорией "DirB1" и файлом "B.txt". Используя данный проводник пользователь видит содержимое "c:\DirA" и "c:\DirB", как если бы они находились в одной папке, например "C:\Dir", а именно: "1-DirA1", "2-DirB1", "1-A.txt", "2-B.txt". В случае, если пользователь заходит в директорию "1-DirA1", то он соответственно видит содержимое "DirA1", а при попытке открыть "1-A.txt" - запускается программа, ассоциированная в windows с расширением "txt", например, блокнот, в которую загружается "A.txt". В общем-то как-то так... Убил далеко не один день/ночь... Нужна помощь. За готовое решение готов отблагодарить - пиво/сок/деньги. |
#2
|
||||
|
||||
Используйте ListView + TreeView.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
Можно динамически для каждой папки создать свой Shelllistview
|
#4
|
|||
|
|||
Маньяки.
Пишется все достаточно просто. Только надо понять как это должно отображаться. Как я понял, должно быть видно все когда пользователь находится в корне списка. А вот что надо отображать, если пользователь вошел в одну из папок? |
#5
|
||||
|
||||
В отношении TreeView и ListView - это я уже догадался - который день над этим бьюсь.
Дабы лишние вопросы не возникали по сути самой задачи, прилагаю структуру того, что есть в действительности и чего хотелось бы. Слева на картинке - то, что есть, а справа- то, что должен видить пользователь в случае, если массив DirPath=('D:\Dir1', 'D:\Dir2'). Примечание: 1. названия файлов и папок могут быть любые 2. нумерация в примере введена только для того, чтобы ясно было какой файл/папка из какой директории. |
#6
|
|||
|
|||
Как же можно, который день бьетесь, а кодом не поделились
Вобще идея заменить проводник интересная, но не в таком виде как на скрине |
#7
|
||||
|
||||
Цитата:
2. Представленный скрин - это не "проводник" который нужен мне, а просто образец структуры того, что есть и того, что нужно. Внешний вид рабочей версии "проводника" должен быть очень схож с виндосовским |
#8
|
||||
|
||||
А не проще диск D: подключить как папку в диске C: ?
Есть еще такая вещь как символические ссылки в NTFS, но с ними могут быть сюрпризы неприятные. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 28.09.2011 в 14:06. |
#9
|
|||
|
|||
Как я понял автор хочет чтобы сами файлы были в одном окне
Я сам подумываю о таком, но это не будет похоже на проводник Самый примитивный вариант: PHP код:
можно сделать круче, если пройтись по нужным папкам и создать на все файлы ярлыки во временную папку, а её открыть в проводнике, но тогда проблема их сгруппировать |
#10
|
||||
|
||||
Напиши в ICQ в подписи. Решение не предоставлю (ибо на Delphi больше не пишу), но алгоритм и пару подсказок дам, и помогу при написании (если что)
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#11
|
||||
|
||||
Можно сделать обыкновенный ListView, который будет рисовать файлы и папки. Просто делаешь картинки, загружаешь в ImageList, ставишь в Caption элемента название папки/файла, при двойном тыке открываешь файл (че-то типа shellexecute вроде).
jmp $ ; Happy End! The Cake Is A Lie. |
#12
|
||||
|
||||
Цитата:
Осталось дело за малым: 1. Загрузить в ImageList значки для зарегистрированных в Windows расширений 2. Перебрать содержимое PathDir с целью заполнить ListView содержимым необходимых папок 3. Организовать запуск/открытие файлов и папок. |
#13
|
|||
|
|||
за 1000 готов написать готовую программу.
|
#14
|
||||
|
||||
Вариант с сетевым диском и его аналоги - не вариант, поскольку содержимое массива PathDir постоянно меняется
|
#15
|
||||
|
||||
Цитата:
|