| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Virtual Treeview заполнение и оформление |
| Автор: firs70 17.5.2007, 12:35 | ||
| Доброго времени суток. Решил сделать программку которая бы заходила в инет на сайт FileFactory и скачаивала от туда страничку со списком "залитых туда моими файликами" Код старинички следующий:
Специально привёл пример по 2 строки в каждой из "папок" что бы не было громоздко... Сделал я только заполнение строк имя файла, ссылка на файл, размер и количество скачек... Но, как видно из кода, там существуют "папки" в которых "лежат" файлы. Хотелось бы сделать что бы тотбражалась папка (с плюсиком/минусом), а под ней располагались файлы этой папки как дочерние элементы... Например: -2007-02-February |--SA34HA06.avi (и дальше ссылка, размер и кол-во скачек) |--SA34HA06.part10.rar (и дальше ссылка, размер и кол-во скачек) -2007-03-March |--P78207.part08.rar (и дальше ссылка, размер и кол-во скачек) |--P78207.part10.rar (и дальше ссылка, размер и кол-во скачек) -Default |--lub.kak.lub_52.part4.rar (и дальше ссылка, размер и кол-во скачек) |--lub.kak.lub_52.part3.rar (и дальше ссылка, размер и кол-во скачек) Хотелось бы что бы эта вот вся красота сама формировалась при загрузке, я читал статью в ней написаны примеры в которых описано как добавляются дочерние элементы в выделеном элементе (то есть на том на котором я сейчас стою). Здесь немного другая ситуация. Я конечно был бы очень благодарен если бы мне здесь привели полноценный пример, но и любая помощь будет не лишней. Заранее всем спасибо!!! |
| Автор: Sansa 17.5.2007, 13:47 |
| От здесь глянь http://forum.vingrad.ru/topic-97620/view-all.html |
| Автор: firs70 17.5.2007, 13:49 | ||
| Sansa, спасибо конечно Я же говорю что статью читал...
|
| Автор: aktuba 17.5.2007, 14:03 |
| firs70, Добавить элемент в нужный узел - VT.AddChild(Node); |
| Автор: firs70 17.5.2007, 14:16 |
| aktuba, ну пример напиши хоть малюсенький |
| Автор: firs70 17.5.2007, 15:51 |
| так вроде с добавлением папок и файлов в папки разобрался, вот теперь бы сделать так что бы файлы добавлялись какждый в свою папку (у меня парсер ищет отдельно имя файла, ссылку, размер, и скачки и при формировании я не могу разделить куда какие кидать ). Скорее всего надо парсер организовать как то по другому. подскажите хотя бы идею |
| Автор: Sansa 18.5.2007, 09:30 |
| Все зависит от того, какова структура исходного документа. Если гарантируется, что записи для всех файлов (расположенных в определенной папке) идут после записи для этой папки, и нигде больше в документе не встречаются, то при вставке в дерево узла папки его необходимо запоминать, и все узлы файлов, встреченных до следующей папки, добавлять как детей сохраненного узла папки. Если записи файлов не группированы по папкам, то при добавлении очередного файла необходимо пробегать по всему дереву и искать ветку нужной папки |
| Автор: firs70 18.5.2007, 11:07 | ||
| Sansa, да именно так. Идёт название папки потом содержащиеся в ней файлы, потом название другой папки и следом файлы 2-й папки... Вот код моего парсера, НО что то не работает посмотрите может поможите кто чем может.
|
| Автор: Sansa 18.5.2007, 11:49 |
| Можешь приатачить исходный текст html полностью? А то у тебя много тэгов порезано (незакрытые) |
| Автор: firs70 18.5.2007, 12:19 |
| конечно могу как файлик ибо код большой сам по себе... http://images.dala.by.ru/list%20for%20parser.txt |
| Автор: Sansa 18.5.2007, 15:54 |
| Subj |
| Автор: firs70 21.5.2007, 08:37 |
| Sansa, по моему парсеру если задавать одно из 4-х искомых (имя, ссылку, размер или скачки) работает как и в этом примере, впринципе разницы в работе нет!!! мне надо что бы добавлялись все 4 атрибута в строку. |
| Автор: firs70 21.5.2007, 11:19 | ||
Всё победил!!!
Теперь возникли вопросики такого плана: 1. как сделать что бы последняя папка была раскрыта (-) и видно были содержащиеся в ней файлы. 2. хотелось бы ещё сделать копирование ссылок по пр. кнопке мыши ВЫДЕЛЕННЫЕ файлы (меню пр. кнопки и выделение нужных файлов реализовать смогу), необходим только код который бы копировал в буфер обмена переменные 2-го столбца ВЫДЕЛЕННЫХ строк. Ну а добавление картинки (папки) надеюсь сам догоню, в статье что то подобное было... Всем заранее спасибо!!! |
| Автор: Sansa 21.5.2007, 11:57 | ||
В моем примере поправь:
|
| Автор: firs70 21.5.2007, 13:14 |
| а как привязать к моему? я немного не понял как реализовано "раскрытие" последней папки? поподробнее можно пояснить? плизззз |
| Автор: Sansa 21.5.2007, 15:50 |
| VirtualStringTree1.RootNode.LastChild - последний "ребенок" корневого узла (у тебя это папка) VirtualStringTree1.Expanded[<Узел>] - проверка/установка "раскрытости" узла. Если True - узел раскрыт, иначе нет |
| Автор: firs70 22.5.2007, 09:10 |
| вот спасибо, сразу всё понял и всё получилось. только вот раскрывается список и вверху таблички папка которая раскрыта, а хотелось бы что бы и предыдущие папки были видны. вот так: =========== +1-я папка +2-я папка -3-я папка |---файл |---файл =========== возможно такое? или я опять невозможное захотел? |
| Автор: Sansa 22.5.2007, 16:57 |
| А если их много и они вытеснят раскрытую? |
| Автор: aktuba 22.5.2007, 23:06 |
| FullExpand - ну почитай ты хоть немного справку или статью про VT... |
| Автор: firs70 23.5.2007, 08:42 | ||||
ничего страшного, пусть вытесняют. Главное что бы показывались все папки сначала...
ну вот ругаешься на меня, а у меня уже мозги закипают... |
| Автор: aktuba 23.5.2007, 08:59 | ||
Да я не ругаюсь, просто ты задаешь вопросы, на которые есть ответы в хелпе и в статье про VT... Чтобы развернуть узел - FullExpand(Node). В результате, узел Node и все его подузлы будут развернуты... |
| Автор: firs70 30.5.2007, 14:14 |
| Всем спасибо. Тема закрыта. Сам с половиной разобрался, а другую "добрые люди" помогли разобрать и здесь и в "реальном мире" |
| Автор: aktuba 30.5.2007, 14:28 | ||
Сейчас снова обидишься... Да не надо тебе разбираться - задачу у тебя простейшая... Тебе надо было просто посидеть часок над документацией... |