Re: самописное TreeView | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Даже в небольшом дереве, в видимой части потребуется порядка 100 объектов. И перемещать их, менять размеры, наполнение - это достаточно печально будет... А если ещё и рассматривать вариант "подвигать" отображение вверх-вниз/вправо-влево ползунком, то будет ещё более печально... Кстати, с ползунками единственный более-менее адекватный вариант это нарисовать ВСЁ что нужно прокручивать в "большой" контейнер (пусть там и будет за тысячу контролов всего), а потом его уже перемещать внутри "маленького". Просто дергать Left/Top для сотни и более контролов - убожество тормозное будет.
Если и "рисовать дерево", то именно "рисовать картинку" - при том активно пользуясь повторным использованием "уже прорисованного". А потом в Paint просто выводить из буфера готовую картинку (или её часть). Это довольно геморройно даже на каком си делать, а на фоксе - и подавно - плюс тормоза интерпретации - то что на сишном коде выполнится за 1мс, на фоксе потребует 10 а то и все 100мс - и "плавное рисование" превратится в очень неприятное дёрганье. Фоксовый грид таки "рисуется" как цельная картинка сишным кодом, а не создаётся при помощи 100 или более текстбоксов, лайнов/шейпов и т.п. ------------------ WBR, Igor |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Что-то делать, чтобы потом увидеть, что у Xandy лучше...
Я это прошел! Улучшить? Да, для себя, под свою среду, свои классы грида. Грид - штука хорошая, но и шизанутая. На нюансах событий и не только можно много времени испортить. Кому не жалко, там меня нет. У автора темы старый вариант (стиль) с +/- на раскрытии объектов. По-моему, Xandy потом выкладывал новую версию по какой-то ветке. Проверить это - облом, не хочу. Я даже сделал у себя поддержку 2-х стилей. А потом убрал. Если есть "новый стиль" в более поздних виндах, чего мне заморачиваться? Активикс тут отдыхает, Xandy встроил FalseTree в фоксовский грид! Какой активикс повторит? В любую колонку! Хотя у меня это первая или вторая, не больше. Оно должно быть слева. ИК никогда эту штуку не видел! Но его замечание правильное по сути, нормально все, вне претензий и без обид. Реально, решение Тарасова (Киев), т.е Xandy, является существенным расширением VFP. На форуме Codeplex по VFPX это решение было бы "бомба"! Исправлено 5 раз(а). Последнее : Ydin, 17.07.17 17:38 |
Re: самописное TreeView | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Видел я это дерево. Коллеги даже использовали. Как по мне - ну "программирование на грани фола". Как с теми же ассемблерными вставками от Леонида - на посмотреть - да, прикольно, и даже "круто". Встраивать же в продакшн - я бы не стал. И так порой фокс "на ровном месте" падает. А самолично городить "горы" чтобы ещё с десяток мест для весёлого краха возникло... Зачем, если есть способ проще
И диаграмма Ганта на основе грида - из той же оперы. "По бедности", можно, конечно, взять, но лучше что-то другое подыскать (вплоть до другого инструмента программирования А там уж всяких рисованных контролов - хватает). ------------------ WBR, Igor |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Встраивать в продакшн - я давно вставил. Не знаю сколько лет, но давно. Адаптировал под свой Фреймворк. Не падало ни разу! У нас FalseTree не используют только ленивые, правда такие есть! Цитата:Я это прошел - для Фокса все, что я нашел - это ничего хорошего, для другого инструмента программирования - это проблема другого инструмента программирования. А так, всего бояться - риск умереть девственником, кстати, вообще, может, оправданный риск. Но, здесь по тексту риск по другой шкале, т.к. не касается основных инстинктов (их 7) www.liveinternet.ru Исправлено 2 раз(а). Последнее : Ydin, 17.07.17 18:38 |
Re: самописное TreeView | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
А он что Бог?! Кстати я уже и доказывал тут как-то пару раз, что тоже таки не лаптем щи не хлебаю. ;) Думаю, мог бы доказать и с этим. Человеческое завсегда постичь можно. Аки и превзойти в том или ином. Было б желание велико. Разве что, при отсутствии вообще в принципе какой-то необходимости такого самописного контрола для меня, что сейчас, что в отдаленной перспективе, и при наличии при этом каких-то своих периодически висящих задач, пока что на такое сподвижествование ... как бы не тянет. Поэтому собственно и предложил самому автору попытаться - раз уж у него в наличии какая-никакая нужда. Хотя, если уж он так легко сдался - нужда возможно не такая и сильная, и вполне возможно подойдут, как более простое решение, и какие-то обходные варианты. Ему виднее, как говорится. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: самописное TreeView | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Криспа, набросать примерчик ПРОСТО вручную прокручиваемого контрола под твою идею (менять положение/размер внутренних элементов, плюс динамически добавлять/убирать их) и заполнив его парой сотен элементов лицезреть описываемые тормоза - много времени не требуется
Реализация дерева по сути и есть такие действия - вместо смещения "всех" нужно будет смещать "часть" элементов и на освободившееся место помещать новые (а потом убирать и снова смещать "нижележащие"). Для оценки скорости "рисования контролами" в фоксе вовсе не обязательно всю логику реализовывать. При том что такого рода "прокручиваемые контролы" можно уже и готовые найти ------------------ WBR, Igor |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Когда еще не пахал никто поле, т.е. целина, то агроному флаг в руки. Если 100500 поколений этим полем занималось, то кто-то (скажем, Иванов) может полезно посоветовать. И можно обойтись без агронома. Или не обойтись. Если агроном скажет, а что Иванов, он что Бог? А насколько компетентен Бог никто не знает. И агроном, может и лучше Иванова подскажет, а может нет... Агроному нужна работа, а Иванов - он просто на шару из опыта. Короче, математически это некорректно поставленная задача dic.academic.ruНЕКОРРЕКТНЫЕ А в остальном (если оно есть) я согласен с Вами. Точно верю, что "не лаптем щи не хлебаю" (т.е. только лаптем?), "что, при отсутствии вообще в принципе какой-то необходимости"," ... как бы не тянет". Это такая легкая ирония, без зла абсолютно Исправлено 6 раз(а). Последнее : Ydin, 17.07.17 20:06 |
Re: самописное TreeView | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Все-таки значительно разные вещи. В решении Xandy все-таки родные для Фокса контролы и манипуляции с объектами и курсорами.. Про ресурсы и возможность выпадания конечно нужно помнить. Но, тем не менее, достойное решение. Я как Саша (Ydin) тоже пытался два варианта использовать, даже небольшой дискус тут с Андреем имел, но ... Чего ужа там до красоты, когда речь об ресурсах. На днях вот даже пришлось суб-класс написать для отображение в вышепомянутом tree-in-grid структуры каталога с динамической подгрузкой веток. 2AndyNigmatec Ну и вернувшись к началу. С админами надо беседовать. Пряники и бита. И уметь обосновать или... Расскажешь нам чем страшны активиксы выпущенные более десятка лет назад и не имевшие компрометации. |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Сначала допиливал под себя, потом по ходу допиливал, но это нормально. Тем более, что в основном свое допиливание допиливал.
Плохого осадка в конце - никакого. А вот хорошего - немеренно! Вот первое, что попалось. [attachment 28001 yu.png] Исправлено 4 раз(а). Последнее : Ydin, 17.07.17 20:40 |
Re: самописное TreeView | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Что-то Саша ты с отступом загрубил. Стрелка под папкой вышестоящего уровня более логична по моему.
[attachment 28002 xol-tree-in-grid.png] |
Re: самописное TreeView | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Родные то они родные, да нестандартное использование. Одна куча контролов внутри колонки чего стоит - и чем больше уровней тем их там больше и больше... Плюс изначально кривая работа скролбара в гриде с "фильтрованным" источником (а значит и в данном дереве на основе грида).
Надобность "особым образом" готовить данные под него, плюс если нужны картинки, или хотя-бы чекбоксы около узлов как в активиксе - тоже, называется, попробуй допили. В общем прилично и ограничений и сложностей чтобы считать это решение идеальным - это даже если не заморачиваться на стабильность работы всей этой "динамической конструкции"... А по поводу активикса - я ж говорю, один раз заморочиться на изучение RegFreeCom и забыть про все эти "регистрации", "админские права для установки" и прочие сложности в "закрытой" ОСи. Злым одминам, кстати, можно вообще не говорить о том что де ocx используется ------------------ WBR, Igor |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Саша разберется, а как c MS? Это у них не так. В новых виндах.
И это FalseTree... Исправлено 1 раз(а). Последнее : Ydin, 17.07.17 21:28 |
Re: самописное TreeView | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Может быть. Хоть и не верю. Именно в самой системе? Или речь про treeview и дефолтное свойство Indentation? |
Re: самописное TreeView | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну допустим treeview тоже не просто заполнить. Особенно ежели сразу всё. Раскрасить чтобы - код писать ... Третьего состояния чекбокс в узле не умеет отображать. Отмечать всю входящую ветку не умеет. Две и более колонок в принципе. А falsetree умеет. [attachment 28003 xol-tree-in-grid.png] Насчет регистрации и пр.. Ну я тупо Installshield 5.0 юзаю. И сборку отдаю. Не спора для я это сказал. Может и скажешь чем чревато и когда встречу грабли. |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Да, я даже не знаю, как ответить.
Меня там у юзера понимают, что мне еще? Там кто-то моложе меня или им это понятно как-то, не знаю... Но это проходит. А проходит то, что нарисовал Тарасов. Не я. А я это вставил давно в реально работающие программы. И никогда не было проблем. И мне странно, что у программистов они могут быть - про логичность стрелки Это вообще не ко мне - к "Саше" Исправлено 1 раз(а). Последнее : Ydin, 17.07.17 22:07 |
Re: самописное TreeView | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Проблемы есть всегда - просто большинство решается так или иначе. На некоторые тупо "забивают", особенно если "обход" будет в 100 раз дороже.
Я ж не к тому что MSComCtl имеет идеальное дерево - нет, там своих косяков и прибабахов хватает Тут одни, там другие. Если у меня есть код решающий их для MSComCtl дерева, то мне проще с ним. Если у тебя код решающий их для FalseTree - тебе проще с ним Одно точно - заменить в живой проге одно на другое - геморрой не стоящий того в 99% случаев Проще ж с одминами проблему порешать так или иначе, нежели переписывать весь "деревянный" кусок программы. ------------------ WBR, Igor |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Да, это FalseTree и это решение.
Решение это в решениях Форума, может, сырое, а они такие и д. быть. Короче, думайте, как хотите. А я так, как я сам, отказавшись от TreeView, думаю. Убрал, но очень хотел. А сказал, что это лучшее решение по дереву (TreeView), и Xandy его выложил, и только от Вас зависит как его допилить под себя. Но там все для этого есть. И все! Исправлено 3 раз(а). Последнее : Ydin, 17.07.17 22:54 |
Re: самописное TreeView | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Вон оно как. Ну извиняйте, Александр. |
Re: самописное TreeView | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Да, не фиг извиняться, проехали, просто в мои 67 мне проще, чтобы меня называли здесь Александр или Ydin
Но и так не обидно тоже. Это я погорячился Все это не в тему и я из нее выхожу Исправлено 1 раз(а). Последнее : Ydin, 17.07.17 23:06 |
Re: самописное TreeView | |
---|---|
AndyNigmatec Автор Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Уезжал тут на неск.дней, вернулся, смотрю - народ обсуждает
Вкратце, в итоге себе оставил именно свое решение (у меня малые данные - неск.десятков записей), мне нужно было добиться именно того вида и поведения что и "було ранее" - что и сделал ... мож несколько топорно, но во-первых - почти самостоятельно, во-вторых добавил себе функционалу какого хотел (типа инкрементного поиска по трем словам), в третьих - таки принял решение все же убрать эти несчастные пару активиксов из проги (переделка там смешная). Попутно выяснил что в случАе чего (то бишь больших данных) чего как юзать ))) Всем большое спасибо за участие! теперь для Crispy: - тама он всего один - для инкрементного поиска по-первому замечанию - - тут вся загвоздка в показе нижних ветвей - нельзя знать какие ветки (какого уровня) рисовать вниз не просчитав все целиком. Это можно обойти использую новый вид отображения - аля вин7 (т.е. без ветвей), но мне был нужОн именно старый )))) А так, на небольших данных - меня все устроило, события на разные клики со ссылкой на ноду есть, контрол скролируется (даж дропом) хотя и без скролбаров (я счел лишним их лепить), данные предварительно проверяются на валидность самим контролом, можно их заливать как кодом каждую так и сразу подсовывая курсор, поиск есть ... вопчем на след. неделе думаю проверю в "боевых" условиях. Исправлено 3 раз(а). Последнее : AndyNigmatec, 18.07.17 20:00 |
© 2000-2024 Fox Club  |