:: Visual Foxpro, Foxpro for DOS
Re: самописное TreeView
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Даже в небольшом дереве, в видимой части потребуется порядка 100 объектов. И перемещать их, менять размеры, наполнение - это достаточно печально будет... А если ещё и рассматривать вариант "подвигать" отображение вверх-вниз/вправо-влево ползунком, то будет ещё более печально... Кстати, с ползунками единственный более-менее адекватный вариант это нарисовать ВСЁ что нужно прокручивать в "большой" контейнер (пусть там и будет за тысячу контролов всего), а потом его уже перемещать внутри "маленького". Просто дергать Left/Top для сотни и более контролов - убожество тормозное будет.

Если и "рисовать дерево", то именно "рисовать картинку" - при том активно пользуясь повторным использованием "уже прорисованного". А потом в Paint просто выводить из буфера готовую картинку (или её часть).
Это довольно геморройно даже на каком си делать, а на фоксе - и подавно - плюс тормоза интерпретации - то что на сишном коде выполнится за 1мс, на фоксе потребует 10 а то и все 100мс - и "плавное рисование" превратится в очень неприятное дёрганье.
Фоксовый грид таки "рисуется" как цельная картинка сишным кодом, а не создаётся при помощи 100 или более текстбоксов, лайнов/шейпов и т.п.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Что-то делать, чтобы потом увидеть, что у Xandy лучше...
Я это прошел! Улучшить? Да, для себя, под свою среду, свои классы грида.
Грид - штука хорошая, но и шизанутая. На нюансах событий и не только можно много времени испортить.
Кому не жалко, там меня нет.
У автора темы старый вариант (стиль) с +/- на раскрытии объектов.
По-моему, Xandy потом выкладывал новую версию по какой-то ветке. Проверить это - облом, не хочу.

Я даже сделал у себя поддержку 2-х стилей. А потом убрал.
Если есть "новый стиль" в более поздних виндах, чего мне заморачиваться?
Igor Korolyov
вместо отказа от активикса стоит отказаться лишь от его регистрации в системе
Активикс тут отдыхает, Xandy встроил FalseTree в фоксовский грид! Какой активикс повторит?
В любую колонку! Хотя у меня это первая или вторая, не больше.
Оно должно быть слева.
ИК никогда эту штуку не видел!
Но его замечание правильное по сути, нормально все, вне претензий и без обид.
Реально, решение Тарасова (Киев), т.е Xandy, является существенным расширением VFP.
На форуме Codeplex по VFPX это решение было бы "бомба"!



Исправлено 5 раз(а). Последнее : Ydin, 17.07.17 17:38
Ratings: 0 negative/0 positive
Re: самописное TreeView
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Видел я это дерево. Коллеги даже использовали. Как по мне - ну "программирование на грани фола". Как с теми же ассемблерными вставками от Леонида - на посмотреть - да, прикольно, и даже "круто". Встраивать же в продакшн - я бы не стал. И так порой фокс "на ровном месте" падает. А самолично городить "горы" чтобы ещё с десяток мест для весёлого краха возникло... Зачем, если есть способ проще
И диаграмма Ганта на основе грида - из той же оперы. "По бедности", можно, конечно, взять, но лучше что-то другое подыскать (вплоть до другого инструмента программирования А там уж всяких рисованных контролов - хватает).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Igor Korolyov
Видел я это дерево. Коллеги даже использовали. Как по мне - ну "программирование на грани фола". Как с теми же ассемблерными вставками от Леонида - на посмотреть - да, прикольно, и даже "круто". Встраивать же в продакшн - я бы не стал. И так порой фокс "на ровном месте" падает. А самолично городить "горы" чтобы ещё с десяток мест для весёлого краха возникло... Зачем, если есть способ проще "По бедности", можно, конечно, взять, но лучше что-то другое подыскать (вплоть до другого инструмента программирования А там уж всяких рисованных контролов - хватает).
Встраивать в продакшн - я давно вставил. Не знаю сколько лет, но давно. Адаптировал под свой Фреймворк. Не падало ни разу! У нас FalseTree не используют только ленивые, правда такие есть!
Цитата:
А там уж всяких рисованных контролов - хватает
Я это прошел - для Фокса все, что я нашел - это ничего хорошего, для другого инструмента программирования - это проблема другого инструмента программирования.
А так, всего бояться - риск умереть девственником, кстати, вообще, может, оправданный риск.
Но, здесь по тексту риск по другой шкале, т.к. не касается основных инстинктов (их 7) www.liveinternet.ru



Исправлено 2 раз(а). Последнее : Ydin, 17.07.17 18:38
Ratings: 0 negative/0 positive
Re: самописное TreeView
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Ydin
Что-то делать, чтобы потом увидеть, что у Xandy лучше...

А он что Бог?! Кстати я уже и доказывал тут как-то пару раз, что тоже таки не лаптем щи не хлебаю. ;) Думаю, мог бы доказать и с этим. Человеческое завсегда постичь можно. Аки и превзойти в том или ином. Было б желание велико. [sm128]
Разве что, при отсутствии вообще в принципе какой-то необходимости такого самописного контрола для меня, что сейчас, что в отдаленной перспективе, и при наличии при этом каких-то своих периодически висящих задач, пока что на такое сподвижествование ... как бы не тянет. Поэтому собственно и предложил самому автору попытаться - раз уж у него в наличии какая-никакая нужда. [sm128]
Хотя, если уж он так легко сдался - нужда возможно не такая и сильная, и вполне возможно подойдут, как более простое решение, и какие-то обходные варианты. Ему виднее, как говорится.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: самописное TreeView
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Криспа, набросать примерчик ПРОСТО вручную прокручиваемого контрола под твою идею (менять положение/размер внутренних элементов, плюс динамически добавлять/убирать их) и заполнив его парой сотен элементов лицезреть описываемые тормоза - много времени не требуется
Реализация дерева по сути и есть такие действия - вместо смещения "всех" нужно будет смещать "часть" элементов и на освободившееся место помещать новые (а потом убирать и снова смещать "нижележащие").
Для оценки скорости "рисования контролами" в фоксе вовсе не обязательно всю логику реализовывать.
При том что такого рода "прокручиваемые контролы" можно уже и готовые найти


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Crispy
Ydin
Что-то делать, чтобы потом увидеть, что у Xandy лучше...

А он что Бог?! Кстати я уже и доказывал тут как-то пару раз, что тоже таки не лаптем щи не хлебаю. ;) Думаю, мог бы доказать и с этим. Человеческое завсегда постичь можно. Аки и превзойти в том или ином. Было б желание велико. [sm128]
Разве что, при отсутствии вообще в принципе какой-то необходимости такого самописного контрола для меня, что сейчас, что в отдаленной перспективе, и при наличии при этом каких-то своих периодически висящих задач, пока что на такое сподвижествование ... как бы не тянет. Поэтому собственно и предложил самому автору попытаться - раз уж у него в наличии какая-никакая нужда. [sm128]
Хотя, если уж он так легко сдался - нужда возможно не такая и сильная, и вполне возможно подойдут, как более простое решение, и какие-то обходные варианты. Ему виднее, как говорится.
Когда еще не пахал никто поле, т.е. целина, то агроному флаг в руки.
Если 100500 поколений этим полем занималось, то кто-то (скажем, Иванов) может полезно посоветовать.

И можно обойтись без агронома.
Или не обойтись.
Если агроном скажет, а что Иванов, он что Бог? А насколько компетентен Бог никто не знает. И агроном, может и лучше Иванова подскажет, а может нет...
Агроному нужна работа, а Иванов - он просто на шару из опыта.
Короче, математически это некорректно поставленная задача dic.academic.ruНЕКОРРЕКТНЫЕ
А в остальном (если оно есть) я согласен с Вами. Точно верю, что "не лаптем щи не хлебаю" (т.е. только лаптем?), "что, при отсутствии вообще в принципе какой-то необходимости"," ... как бы не тянет".
Это такая легкая ирония, без зла абсолютно



Исправлено 6 раз(а). Последнее : Ydin, 17.07.17 20:06
Ratings: 0 negative/0 positive
Re: самописное TreeView
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Igor Korolyov
Видел я это дерево. ...Как с теми же ассемблерными вставками от Леонида - ...
Все-таки значительно разные вещи.
В решении Xandy все-таки родные для Фокса контролы и манипуляции с объектами и курсорами..
Про ресурсы и возможность выпадания конечно нужно помнить. Но, тем не менее, достойное решение.
Я как Саша (Ydin) тоже пытался два варианта использовать, даже небольшой дискус тут с Андреем имел, но ... Чего ужа там до красоты, когда речь об ресурсах.
На днях вот даже пришлось суб-класс написать для отображение в вышепомянутом tree-in-grid структуры каталога с динамической подгрузкой веток.

2AndyNigmatec
Ну и вернувшись к началу. С админами надо беседовать. Пряники и бита. И уметь обосновать или... Расскажешь нам чем страшны активиксы выпущенные более десятка лет назад и не имевшие компрометации.
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Сначала допиливал под себя, потом по ходу допиливал, но это нормально. Тем более, что в основном свое допиливание допиливал.
Плохого осадка в конце - никакого.
А вот хорошего - немеренно! Вот первое, что попалось.
[attachment 28001 yu.png]



Исправлено 4 раз(а). Последнее : Ydin, 17.07.17 20:40
Ratings: 0 negative/0 positive
Re: самописное TreeView
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Что-то Саша ты с отступом загрубил. Стрелка под папкой вышестоящего уровня более логична по моему.
[attachment 28002 xol-tree-in-grid.png]
Ratings: 0 negative/0 positive
Re: самописное TreeView
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Родные то они родные, да нестандартное использование. Одна куча контролов внутри колонки чего стоит - и чем больше уровней тем их там больше и больше... Плюс изначально кривая работа скролбара в гриде с "фильтрованным" источником (а значит и в данном дереве на основе грида).
Надобность "особым образом" готовить данные под него, плюс если нужны картинки, или хотя-бы чекбоксы около узлов как в активиксе - тоже, называется, попробуй допили. В общем прилично и ограничений и сложностей чтобы считать это решение идеальным - это даже если не заморачиваться на стабильность работы всей этой "динамической конструкции"...

А по поводу активикса - я ж говорю, один раз заморочиться на изучение RegFreeCom и забыть про все эти "регистрации", "админские права для установки" и прочие сложности в "закрытой" ОСи. Злым одминам, кстати, можно вообще не говорить о том что де ocx используется


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Саша разберется, а как c MS? Это у них не так. В новых виндах.
И это FalseTree...



Исправлено 1 раз(а). Последнее : Ydin, 17.07.17 21:28
Ratings: 0 negative/0 positive
Re: самописное TreeView
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Ydin
Саша разберется, а как c MS? Это у них не так. В новых виндах.
И это FalseTree...
Может быть. Хоть и не верю.
Именно в самой системе? Или речь про treeview и дефолтное свойство Indentation?
Ratings: 0 negative/0 positive
Re: самописное TreeView
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Igor Korolyov
Надобность "особым образом" готовить данные под него, плюс если нужны картинки, или хотя-бы чекбоксы около узлов как в активиксе - тоже, называется, попробуй допили.
...RegFreeCom и забыть про все эти "регистрации", "админские права для установки"

Ну допустим treeview тоже не просто заполнить. Особенно ежели сразу всё.
Раскрасить чтобы - код писать ...
Третьего состояния чекбокс в узле не умеет отображать. Отмечать всю входящую ветку не умеет.
Две и более колонок в принципе.
А falsetree умеет.

[attachment 28003 xol-tree-in-grid.png]

Насчет регистрации и пр..
Ну я тупо Installshield 5.0 юзаю. И сборку отдаю.
Не спора для я это сказал.
Может и скажешь чем чревато и когда встречу грабли.
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Да, я даже не знаю, как ответить.
Меня там у юзера понимают, что мне еще?
Там кто-то моложе меня или им это понятно как-то, не знаю...
Но это проходит. А проходит то, что нарисовал Тарасов. Не я.
А я это вставил давно в реально работающие программы.
И никогда не было проблем. И мне странно, что у программистов они могут быть - про логичность стрелки
Это вообще не ко мне - к "Саше"



Исправлено 1 раз(а). Последнее : Ydin, 17.07.17 22:07
Ratings: 0 negative/0 positive
Re: самописное TreeView
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Проблемы есть всегда - просто большинство решается так или иначе. На некоторые тупо "забивают", особенно если "обход" будет в 100 раз дороже.
Я ж не к тому что MSComCtl имеет идеальное дерево - нет, там своих косяков и прибабахов хватает Тут одни, там другие. Если у меня есть код решающий их для MSComCtl дерева, то мне проще с ним. Если у тебя код решающий их для FalseTree - тебе проще с ним Одно точно - заменить в живой проге одно на другое - геморрой не стоящий того в 99% случаев Проще ж с одминами проблему порешать так или иначе, нежели переписывать весь "деревянный" кусок программы.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Да, это FalseTree и это решение.
Решение это в решениях Форума, может, сырое, а они такие и д. быть.
Короче, думайте, как хотите. А я так, как я сам, отказавшись от TreeView, думаю.
Убрал, но очень хотел.
А сказал, что это лучшее решение по дереву (TreeView), и Xandy его выложил, и только от Вас зависит как его допилить под себя.
Но там все для этого есть.
И все!



Исправлено 3 раз(а). Последнее : Ydin, 17.07.17 22:54
Ratings: 0 negative/0 positive
Re: самописное TreeView
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Ydin
И мне странно, что у программистов они могут быть - про логичность стрелки
Это вообще не ко мне - к "Саше"
Вон оно как.
Ну извиняйте, Александр.
Ratings: 0 negative/0 positive
Re: самописное TreeView
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Да, не фиг извиняться, проехали, просто в мои 67 мне проще, чтобы меня называли здесь Александр или Ydin
Но и так не обидно тоже. Это я погорячился
Все это не в тему и я из нее выхожу



Исправлено 1 раз(а). Последнее : Ydin, 17.07.17 23:06
Ratings: 0 negative/0 positive
Re: самописное TreeView
AndyNigmatec
Автор

Сообщений: 1573
Откуда: Волгоград
Дата регистрации: 28.06.2015
Уезжал тут на неск.дней, вернулся, смотрю - народ обсуждает

Вкратце, в итоге себе оставил именно свое решение (у меня малые данные - неск.десятков записей), мне нужно было добиться именно того вида и поведения что и "було ранее" - что и сделал ... мож несколько топорно, но во-первых - почти самостоятельно, во-вторых добавил себе функционалу какого хотел (типа инкрементного поиска по трем словам), в третьих - таки принял решение все же убрать эти несчастные пару активиксов из проги (переделка там смешная). Попутно выяснил что в случАе чего (то бишь больших данных) чего как юзать )))
Всем большое спасибо за участие!

теперь для Crispy:
Crispy
Вторая твоя непонятность и похоже ошибка - нафига тебе там столько таймеров?!
- тама он всего один - для инкрементного поиска
по-первому замечанию -
Crispy
Во-первых у тебя нарушен первый принцип отображения.
- тут вся загвоздка в показе нижних ветвей - нельзя знать какие ветки (какого уровня) рисовать вниз не просчитав все целиком. Это можно обойти использую новый вид отображения - аля вин7 (т.е. без ветвей), но мне был нужОн именно старый ))))
А так, на небольших данных - меня все устроило, события на разные клики со ссылкой на ноду есть, контрол скролируется (даж дропом) хотя и без скролбаров (я счел лишним их лепить), данные предварительно проверяются на валидность самим контролом, можно их заливать как кодом каждую так и сразу подсовывая курсор, поиск есть ... вопчем на след. неделе думаю проверю в "боевых" условиях.



Исправлено 3 раз(а). Последнее : AndyNigmatec, 18.07.17 20:00
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 21 (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика