Форум: "Потрепаться";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизДавайте придумаем визуальный компонент. Найти похожие ветки
← →
Ш-К (2002-07-16 08:59) [0]Хочу написать компонент для отображения динамической (разумеется, и статической) информации. Что-то среднее между ListView, TreeView и StringGrid, только лучше полезнее, маштабируемее и с исходными текстами на радость всем (если хватит жизни, то и лучше ExpressQuantumGrid). :))))
Чтобы мог хранить дохрена элементов без тормозов. Принимать разные виды и формы. Интересны ваши идеи.
Компонент с исходными текстами и бесплатный. Поэтому, если кому-то нужно нечто подобное, то заказывайте на ваше усмотрение. Получите первыми.
Не чурайтесь - не каждый день такое предложение на халяву.
← →
Kaban (2002-07-16 09:01) [1]ты сделай хотябы все то, что перечислил, а потом посмотрим
← →
Anatoly Podgoretsky (2002-07-16 09:13) [2]Давайте
← →
Ш-К (2002-07-16 09:17) [3]Ну, может быть на счёт "лучше" я и загнул, но, во всяком случае что-то другое и кому-то нужное.
А писать уже написанное и " все то, что перечислил", чтобы Кабан посмотрел... идиотизм.
← →
Kaban (2002-07-16 09:20) [4]а чтобы какой-нибудь Вася посмотрел не идиотизм? Чем он лучше меня? Я то же хорошо смотреть умею.
← →
ФФФ (2002-07-16 09:32) [5]Не, на хер не нужно! Даже смотреть не будем, чего зря время терять. Тем более "не лучше", а всего лишь аналог. Да и символы переводить не стоит, а то на всех не хватит.
Вот если бы ты написал что-то среднее между MediaPlayer, Scroller, PageControl и RxLib, вот тогда бы мы посмотрели бы (может быть), а может быть, в крайнем случае, если бы чего другого получше не нашлось, то и скачали бы.
P.S.: А предложение действительно заманчивое: хочу написать не знаю чего, подкиньте идею как и делайте заказы - бесплатно ведь!
← →
Alx2 (2002-07-16 09:39) [6]А давайте купим воздушный шар? (c) Анекдот
← →
Ш-К (2002-07-16 09:47) [7]Kaban © (16.07.02 09:20)
Идиотизм в смысле "уже написанное", а не "чтобы Кабан". Мне все равно, кто будет смотреть.
Только, сдаётся мне, что никто ничего не предложит, и мне самому прийдётся придумывать, а потом самому смотреть.
ФФФ (16.07.02 09:32)
Ну, тебе может и не нужно, а кому-то нужно. Тебе вон Scroller нужен, кому-то шары, кому-то посмотреть. На всех же не угодишь.
← →
Kaban (2002-07-16 09:53) [8]Я так понимаю ты альтруист. Если тебе все равно, что писать может поможешь мне. Мне нужна программа моделирования течений жидкости и газа на основе квазигидродинамических и квазигазодинамических уравнений. Я, правда, прошлому альтруисту предлагал, но он почему-то не взялся.
← →
Alx2 (2002-07-16 09:56) [9]>Kaban © (16.07.02 09:53)
Учишься или работа такая интересная?
← →
Kaban (2002-07-16 09:59) [10]тема диссертации в магистратуре
← →
Alx2 (2002-07-16 10:10) [11]>Kaban © (16.07.02 09:59)
Магистратура?
К сожалению, я не слежу за нынешней системой образования. Нельзя ли подробнее, что есть магистратура? Диссертация потом также поступает в ВАК? Получает ли человек после окончания магистратуры ученую степень?
← →
Kaban (2002-07-16 10:16) [12]магистратура - это западная форма обучения
бакалавриат(4 года) + магистратура(2 года)
примерно равняется нашему высшему 5-летнему образованию
я правда свои 5 лет уже отучился и поступил в магистратуру по понятным причинам
← →
Ш-К (2002-07-16 10:16) [13]Kaban © (16.07.02 09:53)
Как-то случайно мне попался диплом одного араба на кафедре ГидроАэроМеханики РГУ, так вот там он писал, что всё то что тебе надо уже реализовал один умный мужик из штатов по фамилии Рейнольдс в 89 году. И там же было написано, что "квазигидродинамических" и "квазигазодинамических" это одно и тоже. Ну, может я чё и подзабыл/перепутал.
← →
Kaban (2002-07-16 10:32) [14]дело в том, что в 89 году реализовать подобные вычисления было большой проблемой, т.к. они требуют большой мощьности и объема оперативной памяти
← →
Ш-К (2002-07-16 10:57) [15]Есть алгоритмы для ЭВМ, которые были придуманы ещё Ньютоном и Гаусом.
Ну всё, хватит. Давайте по сабжу.
← →
Alx2 (2002-07-16 11:01) [16]>Есть алгоритмы для ЭВМ, которые были придуманы
>ещё Ньютоном и Гаусом.
Смысл, конечно, понятен. Но... imho они специально для ЭВМ ничего не придумывали :))
← →
Ш-К (2002-07-16 11:24) [17]Какая разница: придумывали - не придумывали?!!
По теме, что-нибудь предложите.
PS. Просто вместо ЭВМ тогда использовались юзера, которые по пол жизни тратили на составления таблиц логарифмов.
← →
Igor_thief (2002-07-16 11:37) [18]Не народ, вы че вовсе темы сабжа не читали? Тут речь зашла про написание мега компонента, а не про магистратуру. Лучше давайте посоображаем как сотворить предложенный компонент.
← →
Kaban (2002-07-16 11:38) [19]давайте
← →
Ш-К (2002-07-16 11:52) [20]Давайте без давайте.
Чё раскачиваться? Все свои.
← →
Alx2 (2002-07-16 11:58) [21]Ну, давайте.
Шаг 2-й. Анализ. (Шаг 1-й уже проехали, как как основные требования уже установлены: "круче", "лучше", "удобнее"...)
Итак, выясняем что делает компонент. То есть даем модель поведения компонента.
>Ш-К
Итак?
← →
Igor_thief (2002-07-16 11:59) [22]В предложении было сказано маштабируемее. А как это?
← →
Alx2 (2002-07-16 12:00) [23]>Igor_thief © (16.07.02 11:59)
Масштабируемость = модульное наращивание системы в рамках унифицированной архитектуры
← →
Kaban (2002-07-16 12:02) [24]Igor_thief © (16.07.02 11:59)
Так, в 18 лет уже высшее образование имеешь, а что такое масштабируемость не знаешь. Давайте думать дальше
← →
Igor_thief (2002-07-16 12:12) [25]>Alx2
Понял!
Как сделать stringrid из listview я приблизитедьно себе прикинул, но как сделать treeview?
← →
Igor_thief (2002-07-16 12:15) [26]>Kaban
Высшее начатое.
С какой целью будет использоваться компонент?
← →
Ш-К (2002-07-16 12:24) [27]Есть векторный редактор; писал пол года. Его хочу прикрутить к DesignTime. С этого и сабж. Но всё рисовать в редакторе - громоздко. Всё-таки не просто картинка должна получиться. Должно получиться что-то полнофункциональное. А поведение хочу услышать от вас.
>С какой целью будет использоваться компонент?
Под рукой будет иметься инструмент по настройке отображения, мониторинга и управления инфы: меняющейся, выпадающей, скролирующейся...
← →
Игорь Шевченко (2002-07-16 12:29) [28]Igor_thief © (16.07.02 12:12)
> Как сделать stringrid из listview я приблизитедьно себе
> прикинул, но как сделать treeview?
"Я придумал, как применить шины из полиаминного неструктурного волокна, но не могу понять, куда приделать реактор на субтепловых нейтронах. Миша, Мишок, как быть с реактором ?"
(с) А. и Б. Стругацкие "Понедельник начинается в субботу"
← →
Praco (2002-07-16 18:02) [29]"Что-то среднее между ListView, TreeView и StringGrid, только лучше полезнее, маштабируемее...Чтобы мог хранить дохрена элементов без тормозов. Принимать разные виды и формы."
Не напишешь, можешь не начинать. Если делать нечего, найди работу.
← →
Сатир (2002-07-16 18:23) [30]Всё гениальное: простО.
Сабж: сложно/запутано/громоздко, следовательно, не гениально.
Вывод: откажись/придумай альтернативу
Возражения: принимаются.
Удачи: желаю, но не по сабжу
← →
[NIKEL] (2002-07-16 18:54) [31]лучше не всё в одном(и тормозно наверняка) а раздельно и без тормозов , иначе не получится
лучше сделать что-то одно - но очень хорошое, людьми плохо воспринемаются комбайны...
← →
Ш-К (2002-07-16 19:31) [32]Praco © (16.07.02 18:02)
Вынужден тебя огорчить, большую часть уже написал. По службе как-раз и требовался лог сообщений, структура и дизайн каждого итема которого могла бы определяться пользователем и содержащийся в нём инфы. И самих сообщений компонент содержит для отображения десятки тысяч (96 тысяч на 486/32Мб без тормозов). ListView не подходит. Вот и пришлось писать своеручно.
Теперь чтобы модернизировать это дело до TreeView, StringGrid (или того, что я продлагал придумать и заказать) нужны просто примитивные алгоритмы прорисовки. Ну, само собой и срутктуры представления данных: графы, треи, св. списки...
Таких компонентов нет. Есть платные. Есть с переписанными обработчиками OnCustomDrawItem. А таких, как я описал со встроенным векторным редактором и возможностью добавления "бандов" как в репортах - нет.
← →
Ш-К (2002-07-16 19:45) [33]Сатир (16.07.02 18:23)
>...не гениально.
Я и не говорю, что гениально. Как раз таки и спрашиваю здесь, чтобы гениальное ты посоветовал.
[NIKEL] © (16.07.02 18:54)
Без тормозов - это одно из главных условий.
Это не комбаин, а конструктор лего. Юзер не выбирает из списка возможные стили, а сам моделирует. Это разве всё в одном?
← →
[NIKEL] (2002-07-16 21:54) [34]а разве сам VCL не является LEGO :) ?
← →
Ш-К (2002-07-16 22:17) [35][NIKEL] © (16.07.02 21:54)
>а разве сам VCL не является LEGO :) ?
Является.
Только представь, тебе нужна единица для отображения/модификации информации в виде симбиоза иконки, TLabel, TEdit, TMemo, TCheckBox, TComboBox. И не в DBGrid, а в более продвинутом виде, чем стандартные контролы. Этих единиц в моём компоненте скролируется несколько тысяч.
А ты, надо полагать, эти несколько тысяч будешь из VCL липить.
← →
Igorek (2002-07-16 23:57) [36]2 Ш-К
Ты толком не обьяснил, что хочешь, а надеешся на серьезные ответы. Если не можешь просто обьяснить, то скорее всего сам плохо представляешь. Подумай, сформулируй четче, тогда может и будет конструктивная беседа. В конце-концов ставить задачу - это тоже не так просто.
Рекомендую обдумать, что есть общего во всех тех вещах, которые ты хочешь обьединить и на основе этого начать строить концептуальную основу. А потом увидишь, что эта основа потянет, что сможет обеспечить. Может даже больше чем уже есть.
В принципе что-то в этом есть. Удачи.
---
"Я ему про Фому, а он мне про Ерему"
← →
Сергей Суровцев (2002-07-17 00:04) [37]Смесь бульдога с носорогом хомячку сродни немного.
С таким подходом можно и VCL переписать в один компонент,
удобно будет...
Лучше уж действительно шарики купить.
← →
Ш-К (2002-07-17 02:46) [38]Сергей Суровцев © (17.07.02 00:04)
>С таким подходом можно и VCL переписать в один компонент,
>удобно будет...
А по Репортам у тебя таких мыслей не возникает? Там тоже чуть ли не весь VCL перерисован. Так напиши авторам: чё это вы х****й страдаете, это же VCL!
Про компоненты и их замену я не говорил, просто привёл пример, когда их использование не желательно, и будет альтернатива в моём компоненте.
И я же просил: "Не чурайтесь". Конечно, подход редкий; никто не предлагает каждый день компенент по заказу. Мало того, что растерялись от неожиданности, так ещё и маякуете об этом сюда. Делайте, пожайлуста, это вне ветки. Я же не лезу в ваши диалоги с постами: "А мне это не надо. бе-бе-бе".
Igorek © (16.07.02 23:57)
>Ты толком не обьяснил, что хочешь...
Да всё я уже объяснил, просто за мишурой левой и главного не видно.
1. Есть набор информации - большой, например, выборка из БД. И чтобы отобразить её всю сразу и в структурном виде (в том, котором она популярнее для юзера) наличие стандартных контролов не всегда спасает.
Ваши предложения по поводу контролов не стандартных в отображении инфы.
2. Информация динамическая. А все стандартные контролы для статической. И как бы инфа не менялась, всё должно присходить гладко и красиво.
Ваши предложения по поводу "динамических" контролов..
3. Весь набор данных TList, итем которого описывает "завершённый" блок инфы. Программер може сам задавать структуру и вид итема, а так же юзать чужую.
Ваши предложения по поводу итемов (бандов, блоков...). И манипуляции ими.
← →
MJH (2002-07-17 03:25) [39]2Alx2 © (16.07.02 09:39)
>А давайте купим воздушный шар? (c) Анекдот
а ты купи слона ;]
← →
int64 (2002-07-17 13:55) [40]Если ты уже настолько продвинулся в соих изысканиях и трудах и имеешь свой редактор, то сделай подобие Flash (в исходниках, а не ActiveX). У MacroMedia всё основано на мультимедиа, живой графике и встроенных скриптах. А у тебя будет то, что ты описал.
И ещё, чтоб все субконтролы (то, что будет лежать на твоей компоненте) имели место для отображения на палитре компонент. Или, на худой конец, в отдельных файлах.
Я бы такие коды взял на доработку, чтобы сделать плагин браузера для отображения информации из XML. Или, может, сам напишешь такой просмотрщик? :)
← →
avr555 (2002-07-17 15:44) [41]А мне идея очень понравилась!!!
Как я понял будет набор контролов-примитивов и из них можно будет ваять интерфейс?
Если так, то это будет очень полезная штука. На данном этапе мне, например, нужно реализовать редактор SQL-запросов, конкретнее отображение логических выражений. Поэтому могу посильно поучаствовать в реализации задумки.
← →
Praco (2002-07-17 15:58) [42]"Praco © (16.07.02 18:02)
Вынужден тебя огорчить, большую часть уже написал."
Тогда пардон. Я было подумал, что ты - очередной новичек, не знающий чем себя занять.
Все равно не понятно, чего нужно. Компонент, показывающий информацию произвольной структуры? В произвольном виде(дерево, таблица или их помесь)? С возможностью выборки из базы? Нужен ли такой монстр.
Кажется то, что ты хочешь - это уже не компонент, а генератор отчетов или конструктор форм (как в Акцессе).
← →
Ш-К (2002-07-18 04:31) [43]int64 © (17.07.02 13:55)
>плагин браузера для отображения информации из XML
avr555 © (17.07.02 15:44)
>набор контролов-примитивов и из них можно будет ваять интерфейс
Praco © (17.07.02 15:58)
>С возможностью выборки из базы?...
>...генератор отчетов или конструктор форм
Не собираюсь я воять монстров. То, о чём вы говорите - вторично. Это как раз те случаи, для которых компонент я и создаю.
Есть же единицы инфрмации, кторые для своего отображения не вписываются в таблицы, списки и деревья. Графы, например.
Пока мой компонент может отображать только тупые списки, каждый итем которого кропотливо вырисован по инфе, которую отображает. А инфа не просто стринги и иконки.
Вот пример инфы итема:
Count: integer;
Caption: TCaption;
Text: TStrings;
BgPicture: TPicture;
Icon: TIcon;
...
Checed: Boolean;
DragAndDrup: Boolean;
Для этой структуры я определяю алгоритм прорисивки. Он, кстати, и задаётся в редакторе. А хранится в формате, похожем на метафайл. Ну, ещё приписую обработчики. Например, при клике в определённое место создаётся TEdit; можно менять стринг; при потере фокуса или по ентер едит убивается, а стринг подставляется в итем.
И всё, - тип этого итема сохраняется отдельным объектом (на самом деле рекордом, но это детали). Теперь в своём компоненте я могу добавить сколь угодно таких итемов (бандов, как я назвал) и по вертикали, и по горизонтали, и один за другим со смещением...
Пользователь во время разработки рисует типы бандов, не думая о скролингах, репайнтах и прочей мутотени в таких случаях. А потом в компоненте выбирает какой итем какому типу соответсвует. И как эти итемы между собой расположатся.
Но это всё сделано для отображения списков или таблиц. И я на этом остановился.
А итемы могут же ещё и взаимодействовать между собой. В деревьях, диаграммах или в графах. Или в той структуре, какой надо вам, о которой я понятия не имею, и о которой я хотел бы от вас услышать. Чтобы за счёт её расширить свой компонент.
Только сдаётся мне у программеров уже мозги искалечены - не могут представить, что их набор данных может лежать для отображения и редактирования не в ******** стандартных контролах.
>Все равно не понятно, чего нужно.
Нужны структуры отображения не стандартные. И не обязательно то, что вам надо. Просто идеи.
Нужны предложения взаимодействия итемов. Как статические, так и динамические связи.
Ну и по самим итемам какие-нибудь соображения.
PS. Я же не спрашиваю как всё это написать. По-моему вопросы более чем обыкновенны и прозрачны.
← →
ZZ (2002-07-18 06:46) [44]
Count: integer;
Caption: TCaption;
Text: TStrings;
BgPicture: TPicture;
Icon: TIcon;
...
Checed: Boolean;
DragAndDrup: Boolean;
Какое гиганское разнообразие и TCaption и TStrings , и TPicture с TIcon. А вместо ... наверное TBitmap, TJpeg ??
ЗЫ. А что такое Checed и DragAndDrup я не очень понял ? (это же была выдержка из исходников????)
← →
Ш-К (2002-07-18 07:53) [45]Каких ещё исходников! Просто набор полей. Первые, что в голову пришли.
Хотел показать, что пользователь сам может определять стуктуру.
Типа: Заголовок, под ним Текст, на обоях Картинка, в углу Пиктограмма и.т.д. Причём, рисоваться может и не в ректе, а как угодно. Ну, и всякие "служебные" поля, описывающие поведение (хот, перетаскивание мышью...)
У TListView, например, могут только стринги рисоваться. Плюс спецэфекты на OnDrawItem глючные. И всё.
ЗЫ. А подкавыривая тем, что разбираешься в азах устройства графических объектов, опускаешься до лаймера.
← →
ZZ (2002-07-18 09:04) [46]Не буду опускаться до уровня лаймера...
Просто если я установлю компонент с свойствами Checed, DragAndDr up и другими ... в общем он не долго просуществует на моем винте :)))
PS. покажи скриншот этого чуда (а то представить тяжело)
← →
GenBr (2002-07-18 12:24) [47]Ш-К
> Нужны структуры отображения не стандартные. И не обязательно
> то, что вам надо. Просто идеи.
А зачем вам нужна сразу же куча различных интерфейсов?
Вы ведь делаете для себя?
Если да, то делайте то что ВАМ нужно
Если нет, то я согласен с ZZ ©: вы выложите то, что вы уже сделали, и тогда разговор будет более предметным
← →
sergey32 (2002-07-18 12:39) [48]Мне тут достался проект с собственными компонентами.
Хотелось бы взглянуть в глаза этим разработчикам.
Для начала, чтобы их установить (а их 6-8 штук)
надо поставить RX и еще несколько библиотек с
компонентами. Потом поставить эти компоненты (описания последовательности нет), а они друг за друга цепляются,
и когда я наконец-то (после 2-х дней установки)
запустил проект, то обнаружил, что самая крутая компонента
(модификация IP фильтра) иногда глючит.
Вопрос: Нах...я надо было это делать?
← →
avr555 (2002-07-18 18:39) [49]
> Не собираюсь я воять монстров. То, о чём вы говорите - вторично.
> Это как раз те случаи, для которых компонент я и создаю.
>
> Есть же единицы инфрмации, кторые для своего отображения
> не вписываются в таблицы, списки и деревья. Графы, например.
> Пока мой компонент может отображать только тупые списки,
> каждый итем которого кропотливо вырисован по инфе, которую
> отображает. А инфа не просто стринги и иконки.
Судя по описанию, у тебя сейчас получилось нечто похожее на VirtualTree ( http://www.delphi-gems.com/VirtualTreeview/VT.html). Там все построено также.
← →
Igorek (2002-07-19 00:38) [50]2Ш-К
Мне это все больше начинает нравиться.
Мои предложения:
1) выбрать универсальный механизм хранения информации; мне кажеться что граф тут справиться с любой структурой - от списка и таблицы до произвольного дерева;
2) определить несколько типов структур, которые будут храниться:
а) массив N-ой размерности (N = 1 - список, 2 - таблица, 3 - куб и т.д.)
б) произвольное дерево (ациклический граф)
в) любой граф (в том числе и циклический)
г) другие типы структур (напр. шапка - набор полей - подвал (простой отчет))
3) для каждого типа структуры определить несколько вариантов отображения информации.
Например для таблицы:
а) таблица с сеткой - как StringGrid
б) набор строчек, где каждая строчка - склеенные значения ячеек в одном ряду в таблице
в) набор массивов строчек, каждый из которых состоит из значений ячеек в одном столбце; каждый масив показывать в отдельном ListBox"е
...
Одним словом по пункту 2 и особенно 3 есть простор для фантазии.
← →
Ш-К (2002-07-19 08:46) [51]ZZ © (18.07.02 09:04)
Попытка номер три:
Пользователь может сам выбирать структуру единицы информации (руками в программе), а также составлять алгоритмы отображения (мышкой в редакторе). А какие поля он внесёт в структуру и с какими названиями, не е*** никого.
GenBr © (18.07.02 12:24)
>А зачем вам нужна сразу же куча различных интерфейсов?
Не нужна. И про интерфейсы, как таковые, я ничего не говорил. Я даю пользователю инструмент создания итемов. Имхо, уже досаточно. А давать возможность проектировать ещё и структуру взаимодействиё итемов, а равно и интерфейс этой структуры задача не стоит. По крайней мере, сергодня. Это очень громоздко и другой уровень. Вот и нужно определить и выбрать что-то обобщённое и список заранее спроектированных структр. Чтобы продолжать работать с оглядкой на этот список.
Выкладывать ничего не собираюсь. Дело всеравно не благодарное. Чё смысла выкладывать сырые исходники, к томуже ещё не причёсанные для постороннего глаза. Просто, кто поможет в проектировании, может на их расчитывать. Тем более, что если я их выложу, то больше вопросов будет не по теме.
avr555 © (18.07.02 18:39)
>Судя по описанию, у тебя сейчас получилось нечто похожее на >VirtualTree
Как я понял, там всё основывается на проектировании внешнего вида. Такого добра, наверное, пол инета. И делать ещё смысла нет. А если вдруг станет важен дизайн, то в чём проблема: взял исходники, подработал напильником и всё - каждый тип банда подобие стиля.
Igorek © (19.07.02 00:38)
Ну вот, хоть какие-то реальные предложения.
С первым пунктом согласен. Вроде бы очевиден, но я что-то об этом не подумал. :) Особенно лучше, если структуру графа спрятать от пользователя подальше. Т.е. не выкладывать на передний план, а то пугать будет.
По остальному подумаю и отвечу. Это похоже на дело.
Мои благодарности.
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 0.009 c