Страницы: 1 2 След.
RSS
TreeView NEW . Для ненаглядной UserForm
 
Люблю я TreeView, чего и всем желаю

Здравствуйте
На товарищеский суд:

Контрол TreeViewNEWи его друзья

Последнее обновление:  04-01-2019
Изменено: Сергей Кр - 04.01.2019 23:08:23
 
Величайшая  благодарность  и поклон до земли   Сергею [Skif-F]  за личную  помощь  при работе над проектом.
Без его понятийной  и моральной поддержки не бывать  бы никаким  TreeviewNEW

файл "Справка-Пример" из сообщения удален СергеемКр
Изменено: Сергей Кр - 30.06.2018 20:42:45
 
Куча малопонятного кода, - это, конечно, хорошо.
Но показали бы пример использования, - типа, ткнул на кнопку, - увидел результат

А то в одном файле модули класса, в другом - всё кроме модулей класса.
Я не поленился, - перекинул 4 модуля класса в файл Help, - ничего не произошло.
Попробовал макросы какие-то запускать - ничего не происходит. Ладно догадался я добавить строку Userform1.Show - думаете, все остальные тоже догадаются?

Я искал подобное решение, нашел на одном из зарубежных сайтов, - но так и не применил
Ваше, вроде, выглядит посимпатичнее в плане интерфейса
 
Доброе время суток.
Да, ладно вам ворчать Игорь, хорошее решение. По правой клавише в контекстном меню вызывается пример наполнения. Начинающий всё равно не освоит, под визуальный дизайн не расчитано. Сергей Кр, спасибо большое!
 
Сергей Кр, спасибо! Тоже себе в норку утащил.
З.Ы. А, в принципе, можно его скомпилировать в OCX или DLL?  
Согласие есть продукт при полном непротивлении сторон
 
Справка-Пример была организована именно таким [не самым примитивным]  образом, чтобы  сразу максимально  показать возможности  TreeViewNEW.
Изменено: Сергей Кр - 30.06.2018 21:44:32
 
Цитата
Sanja написал:  А, в принципе, можно его скомпилировать в OCX или DLL?
Не знаю - я не программист. Необходимо мнение специалистов
Изменено: Сергей Кр - 08.07.2016 20:24:57
 
Соoбщение анулировано СергеемКр. Неактуально.
Изменено: Сергей Кр - 05.09.2017 10:14:15
 
Сообщение анулировано СергeемКр. Неактуально
Изменено: Сергей Кр - 05.09.2017 10:11:23
 
Сообщение aнулировано СергeемКр. Неактуально
Изменено: Сергей Кр - 05.09.2017 10:14:58
 
Открыл файл - и что дальше? Где описание того, что надо делать? Код - полная лапша. Переменные удивляют "myPalka" - моя палка?
There is no knowledge that is not power
 
На самом деле, я буду рад любым сообщениям. Потому что они, хоть и ненадолго, но поддержат тему "на плаву". В ожидании тех людей, кто входил в ближний бой с  TreeVew(VB6)  и кому контрол Treeview действительно нужен. Их мнение мне, конечно, очень дорого.

Все познается в мучениях. В мучениях с TreeVew(VB6)
Изменено: Сергей Кр - 16.07.2016 13:11:32
 
Для уважаемого SuperCat
1. А что мне тогда сказать людям, которые уже нашли в себе силы и желание и  разобрались  в деталях происходящего?
2. Напишите свой код. У Вас получится. Только в мой, при этом, пожалуйста, не подглядывайте. Чтоб все по-честному. Мне-то  в о о б щ е  некуда было подглядывать.
Изменено: Сергей Кр - 16.07.2016 13:12:02
 
Цитата
Мне-то  в о о б щ е  некуда было подглядывать.
неужели?
а я давно видел в интернете подобное решение (с такими же иконками) от спецов по 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.
Подскажите, где берегут флаги Советских Республик -> изменим примеры картинок -> перережим пуповину вражеских технологий
Изменено: Сергей Кр - 16.07.2016 13:20:12
 
Цитата
Сергей Кр написал: Подскажите, где берегут флаги Советских Республик
Во вложении.Могу и гербы подогнать.
Изменено: Doober - 10.07.2016 11:39:31
 
Спасибо Вам, Doober, за примеры и за хорошую идею:

Зачем каждый раз пузатить UserForm/Книгу увесистыми IPictureDisp. Пусть ImageList (в том числе) ест их прямо из папки:
TreeView1.ImageListNEW = "C:\Users\for example John\Desktop\Flag"  ' Путь папки с картинками

Спасибо за принцип решения:  пример от Игоря  и пример от ДмитрияThe_Prist

только файлы в папке должны быть съедобными (".jpg" или ".bmp"):
Изменено: Сергей Кр - 30.06.2018 20:18:55
 
Приложение к посту #15

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
К чему этот мусор?
Изменено: SuperCat - 18.07.2016 22:22:35
There is no knowledge that is not power
 
Ответ на Посту#24.

Не относил подобную задачу к первостепенным, но, раз спрос может быть,  добавил решение в TreeviewNEW
Изменено: Сергей Кр - 04.01.2019 23:10:47
 
Изменения:
все Картинки входят своим ОРИГИНАЛЬНЫМ размером
можно устанавливать Картинки РАЗНЫХ размеров. В т.ч. могут быть разными по размеру [.Image] и [.ExpandedImage]
В отличии от Treeview(VB6), у которого все Картинки масштабируются к размеру первой входящей.

Что гармонично-развитее.
Лучше один раз увидеть. Вновь:
Изменено: Сергей Кр - 30.06.2018 20:15:44
 
что это и какая от этого польза? ничего не понял, прочитав всю тему..
 
Для детей - детские глаза.
Для отрочества - Путевка в жизнь. Документальная и полностью дотационная.
Для взрослого и сознательного - количество выпускаемой денежной массы равно количеству овеществленного труда {а не выдуманным 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) для РАЗНЫХ объектов
Написал выше.
 
Сообщение aнулировано СергеемКр. Неактуально

Изменено: Сергей Кр - 30.06.2018 18:13:29
 
Крутить Scroll Колесом Мышки - для контрола Treeview как нельзя кстати

Код автора  переделан под автоматическую работу с Классами TreeViewNEW.
ВАЖНО
. В Вашей версии  системы опция может не работать (вылетает с  Error  в  строке  с  функцией AddressOf . Просто закомментируйте эту строку - опция  работать не будет, но и Error вылетать не  будет
Изменено: Сергей Кр - 30.06.2018 17:40:51
 
Концепция меняется:
Контрол TreeViewNEW можно также использовать:

ВАРИАНТ №1.  Контрол TreeViewNEW  - комфортная  СМОТРЕЛКА данных
Наипростейший базовый вариант. По свойствам и методам - ровно коротышка TreeView(VB6). И без затей.
Три модуля класса .Вставляются в саму рабоче-текущую Книгу.
Без интерфейса (Implements Statement)
Изменено: Сергей Кр - 04.01.2019 23:14:59
 
Добавлена СПРАВКА в формате .chm

Из Справки: Картинку узла можно устанавливать как Picture  (As IPictureDisp)  или как ImageMso (idMso As String)
Добавлен файл-список всех ImageMso
Изменено: Сергей Кр - 04.01.2019 23:18:47
 
Непредвиденные ситуации могут существовать. Работа по выявлению неумолимо ведется.
Файлы МОЛЧАЛИВО обновляются.
Принципиальные изменения будут отмечены в теме.
Просьба сверять и использовать последние (по дате создания) версии файлов.

Мы обязаны спасти мир от саблезубого поросенка
Treeview(VB6)
 
Цитата
Сергей Кр написал: последние (по дате создания) версии файлов
пост #17 ??
Изменено: JeyCi - 08.07.2018 12:23:20
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1 2 След.
Наверх