Величайшая благодарность и поклон до земли Сергею [Skif-F] за личную помощь при работе над проектом. Без его понятийной и моральной поддержки не бывать бы никаким TreeviewNEW
файл "Справка-Пример" из сообщения удален СергеемКр
Куча малопонятного кода, - это, конечно, хорошо. Но показали бы пример использования, - типа, ткнул на кнопку, - увидел результат
А то в одном файле модули класса, в другом - всё кроме модулей класса. Я не поленился, - перекинул 4 модуля класса в файл Help, - ничего не произошло. Попробовал макросы какие-то запускать - ничего не происходит. Ладно догадался я добавить строку Userform1.Show - думаете, все остальные тоже догадаются?
Я искал подобное решение, нашел на одном из зарубежных сайтов, - но так и не применил Ваше, вроде, выглядит посимпатичнее в плане интерфейса
Доброе время суток. Да, ладно вам ворчать Игорь, хорошее решение. По правой клавише в контекстном меню вызывается пример наполнения. Начинающий всё равно не освоит, под визуальный дизайн не расчитано. Сергей Кр, спасибо большое!
На самом деле, я буду рад любым сообщениям. Потому что они, хоть и ненадолго, но поддержат тему "на плаву". В ожидании тех людей, кто входил в ближний бой с TreeVew(VB6) и кому контрол Treeview действительно нужен. Их мнение мне, конечно, очень дорого.
Все познается в мучениях. В мучениях с TreeVew(VB6)
Для уважаемого SuperCat 1. А что мне тогда сказать людям, которые уже нашли в себе силы и желание и разобрались в деталях происходящего? 2. Напишите свой код. У Вас получится. Только в мой, при этом, пожалуйста, не подглядывайте. Чтоб все по-честному. Мне-то в о о б щ е некуда было подглядывать.
неужели? а я давно видел в интернете подобное решение (с такими же иконками) от спецов по Excel где очень все понятно описано, сделан нормальный пример http://www.jkp-ads.com/Articles/treeview.asp
Код
' Authors: JKP Application Development Services, info@jkp-ads.com, http://www.jkp-ads.com
' Peter Thornton, pmbthornton@gmail.com
'
' (c)2013-2015, all rights reserved to the authors
Ну уж н е т. В Справке-Примере описано, но раз сходу шашки наголо :
Да. Мир кишит призраками Treeview. Но мало крови, видимо, они успели попить. Пользователи вовремя сообразили ретушироваться. И правильно:
Если достаточно Treeview как "смотрелка" данных - то сразу корреспондирую в объятья предшественников А вот если необходим Treeview - о б р а б о т ч и к данных, то:
при нежном сравнении всех известных вариантов, обращу Ваше внимание (именно как специалиста) на три к р а е у г о л ь н ы х камня в устройстве любого Treeview:
1. (Не)наличие требованиясторонних библиотек. На это устремлены все вопрошающие взоры 2. преткновенное понятиеNodes. Агитка (в конце сообщения): 3. принцип счетаIndex'ов узлов: 3.1- но не только при первичном формировании узлов (для этого и "смотрелки" достаточно), - но и приобработке уже сформированнных данных (т.е. при изменении состава узлов - вставке новых, удалении, перемещении и т.п.) 3.2 -получение (куда-либо) измененных данных именно в том порядке, в каком напроектировали. Для этого все-таки придется решить эту задачку . Иначе - 'виг-вам', а не получение измененных данных в том порядке, в каком обработали. 3.3 А решение очевидное - счет Index'ов узлов в с е г д а (при любом изменении дерева) должен быть п о р я д к о в ы м сверху-вниз. И во всех коллекциях - тоже. Очевидное, да уклонистски-игнорируемое всеми Спецами Excel (по технически-программным причинам)
Фавориты забега: Treeview(VB6) / побеспокоенные зарубежные товарищи п.1 "-" / "+" п.2 "+" / "-" п.3 "-" / "-" Только при положительном решении комплексно всех трех проблем - возможны все остальные навороты Treeview - о б р а б о т ч и к а данных.
И, желательно, без Public-хлама (- такие прыщики внутренних 'технических' процедур, светящиеся в Пользовательсом Контексном меню Свойств) А визуальный дизайн при этом - двестидвадцатьпятая ватанакиселе. Для кучи. По-хихикать.
При исполнении таких желаний - есть вероятность полюбить контрол Treeview. Хоть мой, хоть свой, хоть 'того парня' П о ч и т а й т е справки к Treeview. Эти-другие. Не спешите с огнестрельными выводами. У Treeview(VB6), к примеру, наизамечательнейшая справка.
OFF Картинки я, как Вы метко подметили, позаимствовал. Но Вы метко н е заметили, что данные картинки не являются никакой составляющей устройства ихнего Treeview. Служат лишь примером набора картинок (или чего-угодно). Позаимствовал и все. И никакой понятийно-связующей нити у меня с ихним проектом нет. Наоборот - конфликтующие п р и н ц и п и а л ь н ы е противоположности. Наш ответный удар. Еще я позаимствовал пример картинки "Колобок" . Понятия не имею у кого. Rem Визуальное перечисление однородных по смыслу картинок (например: флагов) - идеально демострирует свойство TreeView1.ImageList. Подскажите, где берегут флаги Советских Республик -> изменим примеры картинок -> перережим пуповину вражеских технологий
Спасибо Вам, Doober, за примеры и за хорошую идею:
Зачем каждый раз пузатить UserForm/Книгу увесистыми IPictureDisp.Пусть ImageList (в том числе) ест их прямо из папки: TreeView1.ImageListNEW = "C:\Users\for example John\Desktop\Flag" ' Путь папки с картинками
TreeviewNEW- это тот жеTreeview(VB6)[структурно и понятийно], но без вышеобозначенных проблем с максимальным (для данного котрола) набором средств для обработки данных. Какие сам вспомнил
Чтобы не голословить; Прошу всех желающих присылать в эту тему текущие задачки с проблемами применения контрола Treeview. Буду демострировать и решать Так и проверим состоятельность темы В эфире могу быть по выходным
Подскажите, а как понять использование интерфейса (tvwInterface) для РАЗНЫХ объектов: NodeNEW (объект) и NodesNEW (коллекция)? Какое-то извращение. Пример из NodeNEW:
Код
Private Property Get tvwInterface_TreeViewNewControls() As Collection: End Property
Private Property Set tvwInterface_ImageListNEWListImages(RHS As Collection): End Property
Private Property Get tvwInterface_ImageListNEWListImages() As Collection: End Property
Изменения: все Картинки входят своим ОРИГИНАЛЬНЫМ размером можно устанавливать Картинки РАЗНЫХ размеров. В т.ч. могут быть разными по размеру [.Image] и [.ExpandedImage] В отличии от Treeview(VB6), у которого все Картинки масштабируются к размеру первой входящей.
Что гармонично-развитее. Лучше один раз увидеть. Вновь:
Для детей - детские глаза. Для отрочества -Путевка в жизнь. Документальная и полностью дотационная. Для взрослого и сознательного - количество выпускаемой денежной массы равно количеству овеществленного труда {а не выдуманным currency boardr}. Отсуда, глядишь, и мирное небо над головой. В том числе и над собственной. Главное - за детей спокойно.
Или Вы про Treeview? Шибко не переживайте. Это- простоконтрол для VBA. Для народного хозяйства проку немного. Даже государственного языка не ведает.
yozhik написал: что это и какая от этого польза? ничего не понял, прочитав всю тему.
Это элемент управления "Дерево" (TreeView), предназначенный для вставки на UserForm. Автор называет его TreeViewNEW. Предназначен в качестве замены стандартному TreeView, поставляемому (подключаемому) библиотеками "msComctl.ocx, MSComctlLib, Microsoft Windows Common Controls 6.0 (SP6)".
Зачем надо. 1. Вышеуказанные стандартные библиотеки имеют свойство глючить при работе с VBA - то им версия не нравится, то ещё какие причины найдут. 2. Можно сделать что-то, что отсутствует в стандартных библиотеках, а вот в наш проект надо!
Состоит из 4 модулей класса: - TreeViewNEW - само дерево. Добавляется в модуль UserForm: Public WithEvents ИмяНашегоДерева As TreeViewNEW - NodeNEW - класс, описывающий один узел - NodesNew - коллекция узлов - tvwInterface - "внутренняя шина передачи данных". Предназначен для сокрытия от пользователя всех лишних методов и свойств, чтобы пользователь работал с привычным интерфейсом TreeView.
Цитата
SuperCat написал: Подскажите, а как понять использование интерфейса (tvwInterface) для РАЗНЫХ объектов
Код автора переделан под автоматическую работу с Классами TreeViewNEW. ВАЖНО. В Вашей версии системы опция может не работать (вылетает с Error в строке с функцией AddressOf . Просто закомментируйте эту строку - опция работать не будет, но и Error вылетать не будет
Концепция меняется: Контрол TreeViewNEW можно также использовать:
ВАРИАНТ №1. Контрол TreeViewNEW - комфортная СМОТРЕЛКА данных Наипростейший базовый вариант. По свойствам и методам - ровно коротышка TreeView(VB6). И без затей. Три модуля класса .Вставляются в саму рабоче-текущую Книгу. Без интерфейса (Implements Statement)
Непредвиденные ситуации могут существовать. Работа по выявлению неумолимо ведется. Файлы МОЛЧАЛИВО обновляются. Принципиальные изменения будут отмечены в теме. Просьба сверять и использовать последние (по дате создания) версии файлов.
Мы обязаны спасти мир от саблезубого поросенка Treeview(VB6)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)